Date: Sep 24, 2013 11:20 AM
Author: Steven Lord
Subject: Re: Questions about "eigs"?



"Gergö " <schmidtg@stud.uni-hannover.de> wrote in message
news:l1s450$ddp$1@newscl01ah.mathworks.com...
> Hello,
>
> I am writing to you regarding two questions which arose when we were using
> Matlab's "eigs" function.
>
> Question 1: How can it be achieved that "eigs" returns unnormalized
> vektors? It normalize the vectors, at least when all eigenvalues are
> computed.


In the situation where you ask for all or almost all the eigenvalues, EIGS
calls EIG. If you ask for fewer eigenvalues, EIGS does not.

> Question 2: It seems that if "eigs" returns the k largest eigenvalues and
> the corresponding vectors; and if we vary k: the sign of the eigenvectors
> sometimes changes in dependency of k. Why is that the case?


If v is an eigenvector of A with eigenvalue d, we know that A*v = d*v. If c
is a nonzero scalar, A*(c*v) = c*(A*v) = c*(d*v) = d*(c*v) so c*v is also an
eigenvector of A with eigenvalue d. Let c = -1.

Calling EIGS multiple times, if you don't specify opts.v0, uses a random v0.
That random v0 plus a change to the value of k may affect the signs of the
eigenvectors or the values in the eigenvectors slightly due to taking a
different path through the code; as long as A*V is "close to" V*D then the
results are a valid set of eigenvalues and eigenvectors.

--
Steve Lord
slord@mathworks.com
To contact Technical Support use the Contact Us link on
http://www.mathworks.com