- Increase sigma if an error or warning about the matrix being close to singular is displayed.
- Decrease sigma if the returned eigenvalue is too far away from zero (some small round-off error is to be expected).
Using eigs with singular matrix
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alexander Holmes
am 5 Feb. 2020
Beantwortet: Christine Tobler
am 5 Feb. 2020
I want to calculate the eigenvector corresponding to the 0 eigenvalue of a large, sparse singular matrix. However, if I try eigs(A,1,'smallestabs'), MATLAB has an issue due to it being singular. For smaller matrices, eig works fine, but I need something that will owrk with larger matrices. Is there any way I can get eigs to work with this?
0 Kommentare
Akzeptierte Antwort
Christine Tobler
am 5 Feb. 2020
The 'smallestabs' option in eigs depends on solving several linear systems with the matrix A that's being passed in. If A is singular, that's not possible.
The best option is probably to instead pass in a very small sigma: eigs(A, 1, sigma). For example, you could set sigma=1e-2, this depends on A. Now eigs will compute the eigenvalue closest to sigma by solving several linear systems with the matrix A - sigma*speye(size(A)). You might need to adjust sigma:
To decrease the risk of having to call eigs again with a different sigma, you could compute several eigenvalues and choose the one closest to zero.
On a different not, instead of changing the way you're calling eigs, since you're looking for the eigenvalue zero you could also call svds with the 'smallest' option, because a singular vector with singular value zero is also an eigenvector with eigenvalue zero.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!