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?