How to compute interior eigenvectors that exclude certain eigenvalues?
Ältere Kommentare anzeigen
I have a FEM matrix equation of the form:
(K - T)*x = T*b
Where T is a mass matrix and K is a stiffness matrix. I am using matlab's eigs function to compute the eigenvalues and eigenvectors of this system in a generalized eigenvalue problem where A = K-T and B = T.
The expected eigenspectrum is a flat line at
and then a linearly increasing slope for
. It seems as if avoiding the computation of
eigenvectors siginificantly increases the speed of the eigs function. I currently try to avoid the computation by using the sigma option for eigs. Is there a better way to exclude certain eigenvalues from the eigs computation?
6 Kommentare
Lucas Banting
am 12 Nov. 2021
Matt J
am 12 Nov. 2021
Seems like a good idea. I assume you're using eigs(A<B,k,30) with k>1. What isn't working well with that approach?
Lucas Banting
am 12 Nov. 2021
Bearbeitet: Lucas Banting
am 12 Nov. 2021
Matt J
am 12 Nov. 2021
But once you've done your piecewise linear fit to the spectrum, you should be able to avoid processing lambda=-1. Just set sigma and k to include only lambda>-1. Isn't that what you are already doing, and if so what's wrong with it?
Lucas Banting
am 12 Nov. 2021
Akzeptierte Antwort
Weitere Antworten (1)
Matt J
am 12 Nov. 2021
0 Stimmen
If you'll be computing the majority of the eigenvalues anyway, it would be faster to use eig() than eigs().
1 Kommentar
Lucas Banting
am 12 Nov. 2021
Kategorien
Mehr zu Linear Algebra finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!