Specify eigenvector for eigs

10 views (last 30 days)
Jack A.M.
Jack A.M. on 22 Aug 2020
Commented: John D'Errico on 24 Aug 2020
Is there a way I can speed up the eigenvalue computation time by feeding the function eigs a "guess" eigenvector? I am dealing with large, sparse matrices such that everytime I run the eigenvalue problem, the eigenvector chosen based on smallest eigenvalue changes slightly compared to the last time. As far as I know, in an iterative method, using some sort of a "guess" as an input would make the code more efficient. So perhaps, using the previous eigenvector as a guess would make the generalized eigenvalue problem more efficient.

Answers (1)

Vladimir Sovkov
Vladimir Sovkov on 22 Aug 2020
Matlab documentation:
'StartVector' — Initial starting vector
random vector (default) | vector
Initial starting vector, specified as the comma-separated pair consisting of 'StartVector' and a numeric vector.
The primary reason to specify a different random starting vector is when you want to control the random number stream used to generate the vector.
Note
eigs selects the starting vectors in a reproducible manner using a private random number stream. Changing the random number seed does not affect the starting vector.
Example: d = eigs(A,k,sigma,'StartVector',randn(m,1)) uses a random starting vector that draws values from the global random number stream.
Data Types: double
  2 Comments
Jack A.M.
Jack A.M. on 24 Aug 2020
Thanks Vladimir. I tried introducing the eigenvector as the starting vector, however, that did not speed up the computation time.
John D'Errico
John D'Errico on 24 Aug 2020
It did not speed anything up, because that is not the purpose of being able to provide a starting vector. It should not help.

Sign in to comment.

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!