Specify eigenvector for eigs

7 次查看(过去 30 天)
Jack A.M.
Jack A.M. 2020-8-22
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.

回答(1 个)

Vladimir Sovkov
Vladimir Sovkov 2020-8-22
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 个评论
Jack A.M.
Jack A.M. 2020-8-24
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 2020-8-24
It did not speed anything up, because that is not the purpose of being able to provide a starting vector. It should not help.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by