# Eigenvalue with largest imaginary part

Iterative eigensolvers such as ARPACK, give the option to find a subset of the eigenvalues which have the largest imaginary part. My question is how do these algorithms work.

As I understand it, generally such algorithms use Krylov spaces and shift-invert methods which are very good at finding eigenvalues either at the extremes of the spectrum or around a given value. This is essentially because repeated applications of a matrix projects onto the eigenvector with largest magnitude eigenvalue. However, since the imaginary part of an eigenvalue need not have any correlation with its real part, I can't see how it's able to ignore' the real part.

If anyone has any idea how these algorithms work, or alternatively know a way to search for eigenvalues which is ignorant of the real part of the eigenvalue I'd be very grateful.

• I think one can simply shift the spectrum of $\textbf{A}$ upwards by applying the algorithm to $\textbf{B} = \textbf{A} + \mu i \textbf{I}$, where $\mu$ is a parameter which is sufficiently large, and has the same sign as the imaginary part of the eigenvalue you are looking for. The idea is that $\textbf{B}$ has the same eigenvectors as $\textbf{A}$, but by shifting the spectrum, we give more weight to the imaginary part when looking at the modulus of the eigenvalues. This seems very crude, and in many cases would cluster the eigenvalues closely together, giving a poor rate of convergence. – amarney Oct 23 '17 at 19:08
• Slight correction: one would want to shift the spectrum of $\textbf{A}$ not upwards, but in the direction of the sign of the imaginary part of the eigenvalue with largest imaginary part. This is why one must choose $\mu$ to have the same sign as the eigenvalue we are looking for. Once again, this is fairly crude, so I imagine ARPACK uses something more sophisticated. – amarney Oct 23 '17 at 20:04
• I think it should always work, for instance, in MATLAB if I compute $sqrt(1^2 + (100 + 1)^2) > sqrt(10^2 + (100 + 0.5)^2)$ it returns true`'. In chapter 3 of ARPACK Users' Guide, it does seem to use some sort of shift-and-invert when you specify to use 'LI' or 'SI'. – amarney Oct 24 '17 at 13:04