Eigenvectors for a selected subset of eigenvalues

I would like to accelerate some calculations based on dense eigen spectra (non-Hermitian Matrix of dimension O(10^4)), where I’m only interested in some subset of eigenvalues (unfortunately in the middle of the spectrum, not the largest or smallest, and about 10^2-10^3 eigenvalues are interesting for further analysis). Since computing only the eigenvalues (eigvals) is cheaper than the full decomposition (eigen): Is there a way of computing the eigenvalues and then obtaining the eigenvectors for a pre-selected subset only? Eigenvalues, Eigenvectors and Schur Factorization tells me that LAPACK.trevc! may be used to get a selected subset of eigenvectors based on the Schur decomposition of the matrix, but I have not managed to use it. Perhaps the easiest solution is filtering for eigenvalues and then using ArnoldiMethod.jl to target those eigenvalues to obtain their eigenvectors? It does not seem like the fastest solution though. Thanks for any help!

2 Likes