# Find Eigenvalues close to a Target for a Generalised Eigenvalue problem of the type Ax=λBx with A and B very sparse

So I have been using Mathematica as a tool to discretise large linear systems of PDEs and cast them as algebraic eigenvalue problems involving very large sparse matrices. These are usually complex and non-hermitian.

When the system is small enough, I can use EigenSystem[{A,B}] to get the whole spectrum. But when the system becomes very big I would usually export the resulting matrices and use some other dedicated solver like SLEPcand MUMPS.

I was wondering if there would be a way to skip this step and do everything within Mathematica. The systems I am dealing with are very big and so it is impractical to solve for the whole spectrum. So, one important feature I am after, is the possibility to specify a target eigenvalue around which the spectrum is computed.

In practice, this can be achieved by using the Arnoldi iterative methods. With SLEPc, I usually use the Shift-and-invert method.

Just to give your a clearer idea, here is a list and MatrixPlot of the kind of matrices I usually deal with:

Below is a reproduction of all the information I could find on the subject in the documentation. I found no further link or tutorial.

It looks like the features I am after are either not fully released or well hidden. I would love to read any comment, suggestion you might have on that issue.

• Look in the "Options" section of that page, under "Method": further suboptions are shown for each of the methods vailable. Perhaps that might help you. – MarcoB Aug 1 '17 at 13:39
• I don't think Mathematica's implementation of Arnoldi is yet capable of handling pencils, more so that the matrices are "complex and non-hermitian". – J. M.'s ennui Aug 1 '17 at 14:50
• Something like Eigensystem[m, 1, Method->{"Arnoldi", "Shift" -> μ}]? – Carl Woll Aug 1 '17 at 15:42
• @CarlWoll I just saw that possibility following MarcoB's comment (thx). This is only a shift right ? There is no "invert". – jrekier Aug 1 '17 at 18:47