Date: Sep 24, 2013 11:20 AM
Author: Steven Lord
Subject: Re: Questions about "eigs"?
"Gergö " <email@example.com> wrote in message
> 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
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.
To contact Technical Support use the Contact Us link on