eigs() runs faster for more eigenvalues of the same matrix
Show older comments
I'm a bit confused: running eigs() for 3..20 largest eingevalues/vectors of a ~3000x3000 sparse real symmetric matrix causes the following run times (in seconds, on Linux):
1.03 1.42 1.02 1.16 1.11 1.81 3.01 3.13 3.73 3.12 2.89 2.03 1.36 1.32 1.27 1.22 1.07 0.97 1.23
That is, solving for 9..14 eingepairs is more difficult, but the same eigenpairs (may be a tiny bit less accurate) can be obtained by computing the first 15 or 20 eigenvalues...
I'm running eigs with the following options:
opts.issym = 1;
opts.isreal = 1;
opts.disp = 0;
opts.maxit = 10000;
opts.tol = 2.2204e-16;
[V, v] = eigs(adj, k, 'la', opts);
The large max number of iterations is to get rid of possible NaN values in the solution.
Accepted Answer
More Answers (1)
Andrew Knyazev
on 12 Aug 2018
Edited: Walter Roberson
on 12 Aug 2018
1 vote
Please check https://www.mathworks.com/matlabcentral/fileexchange/48-lobpcg-m that has probably faster and more predictable convergence, compared to EIGS
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!