Why can't I compute the interior eigenvalues of a sparse matrix with "eigs" without inversion in MATLAB?
Show older comments
I have a large sparse matrix and would like to compute its interior eigenvalues (i.e., the eigenvalues of smallest magnitude). The matrix is large enough that using the LU decomposition (x = A\b) to solve a linear system involving the matrix results in an out-of-memory error. Since 'eigs' calls the ARPACK library, I would instead like to solve for the interior eigenvalues with the following approach:
- Create a function to apply a "shift" of the matrix (A - s*I),
- Call 'eigs', specifying 'sm' as the value of the input 'sigma' to compute the smallest eigenvalue of the shifted matrix (therefore getting the interior eigenvalues of A), but
- Specify "regular mode" for ARPACK (that is, the inverse-free method that ARPACK provides) to avoid the out-of-memory error.
However, the 'sm' option for 'eigs' assumes that the user-supplied function returns A\x rather than A*x. How can I force 'eigs' to use the inverse-free method in ARPACK?
Accepted Answer
More Answers (1)
Andrew Knyazev
on 15 May 2015
Edited: MathWorks Support Team
on 19 Apr 2021
0 votes
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!