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