How to compute interior eigenvectors that exclude certain eigenvalues?
显示 更早的评论
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 个评论
Lucas Banting
2021-11-12
Matt J
2021-11-12
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
2021-11-12
编辑:Lucas Banting
2021-11-12
Matt J
2021-11-12
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
2021-11-12
采纳的回答
更多回答(1 个)
Matt J
2021-11-12
0 个投票
If you'll be computing the majority of the eigenvalues anyway, it would be faster to use eig() than eigs().
类别
在 帮助中心 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!