[Math] Algorithm for the smallest (algebraic) eigenvalues of a symmetric (sparse) matrix

linear algebrana.numerical-analysis

Hi,

I'm looking for a way to get the negative eigenspace of a large (sparse) symmetric matrix. This matrix is basically a discretized version of the operator $-\Delta + V$, $V$ negative, on some domain $[-L,L]$ with Dirichlet BC, so its spectrum consists of a few negative eigenvalues (which I want to find), and a lot of positive ones (whose distribution is roughly known).

The way I currently do it is to use the shift-invert mode of ARPACK (so Lanczos), with a negative shift and 'LM' mode (lowest magnitude). This requires me to choose a good shift: too large a shift might miss negative eigenvalues, and too small a shift leads to slow convergence. The 'LA' mode (lowest algebraic) is just not an option, it's too slow/imprecise.

Is there any better method out there?

Best Answer

If you are interested in software for doing this problem quickly, you might consider the SLEPc package which includes various sparse and parallel eigenvalue algorithms. It is quite difficult to get set up but once you do you will be able to experiment with different methods easily.