# Arpack and Matlab give different values for eigenvalues

I am solving a generalized eigenvalues problem with inversed complex shift:

$$(M-\sigma J)^{-1}J \boldsymbol{x} = \boldsymbol{x} \nu \enspace .$$

My matrices are obtained from a finite element discretization with Getfem++. The jacobian $J$ depends on some parameters. I computed the eigenvalues both with Matlab and directly with Arpack in the same C++ code where I compute the matrices $M$ and $J$. When I use Matlab to compute the eigenvalues I load the matrices $M$ and $J$ previously saved in Market Matrix format with Getfem++ and I use the function eigs. Now, in some cases the difference between Arpack eigenvalues and Matlab eigenvalues is really big. In particular, when the values of my parameters are such that I have an eigenvalue with almost zero real part. With Arpack the real part is of the order of $10^{-10}$ with Matlab is of the order of $10^{-4}$. In addition, in these cases Matlab gives me some warning about the matrix is ill-conditioned. Have you ever experienced such a problem?

P.S. : I also tried to change default options of eigs but I always obtain the same result!

• Are you saving enough digits in your Matrix Market format? – Bill Barth May 26 '15 at 11:46
• What value of sigma are you passing to eigs()? – Bill Greene May 26 '15 at 11:50
• Yes, there are enough digits. The sigma depends on the parameters. It is near the critical eigenvalue that I am looking for, at least the imaginary part. The real part of the shift is set to 0.001. – Britomarti May 26 '15 at 12:45
• That sigma seems like it is probably OK. Nevertheless, I suggest experimenting with different (larger) values of sigma to try to get rid of that warning message; it seems likely that warning is the cause of your problem. – Bill Greene May 26 '15 at 12:58
• Yes, maybe. I can try with a bigger real part. But I do not understand why in Arpack I obtain different results. Isn't Matlab calling Arpack functions too? – Britomarti May 26 '15 at 13:03