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

"Gergö " <> wrote in message
> 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
To contact Technical Support use the Contact Us link on