# Eigenvalue problem and badly conditioned matrices

• Mathematica
Gold Member
Hi PF!

I am trying to solve the eigenvalue problem ##A v = \lambda B v##. I thought I'd solve this by $$A v = \lambda B v \implies\\ B^{-1} A v = \lambda v\implies\\ (B^{-1} A - \lambda I) v = 0$$
and then using the built in function Eigenvalues and Eigenvectors on the matrix ##B^{-1}A##. But as you can see from the title, ##B^{-1}## is badly conditioned. Any ideas on how to get around this?

StoneTemplePython
Gold Member
I don't follow. Isn't this a problem that you tackled ##\gt 6 ## months ago?

E.g. I asked about it here and linked to an old thread tackling this problem via use of Lancosz method (to avoid explicit inversion among other things):

https://www.physicsforums.com/threa...e-calculus-of-variations.936407/#post-5917752

but that was back in January of this year, and you mentioned you had already solved the problem.

joshmccraney
Gold Member
I don't follow. Isn't this a problem that you tackled ##\gt 6 ## months ago?

E.g. I asked about it here and linked to an old thread tackling this problem via use of Lancosz method (to avoid explicit inversion among other things):

https://www.physicsforums.com/threa...e-calculus-of-variations.936407/#post-5917752

but that was back in January of this year, and you mentioned you had already solved the problem.
Thanks for bringing this up again. I was previously using both Mathematica and MATLAB (odd I know) and at the time someone convinced me that the built in eigenvalue solver in MATLAB was robust. However, now that I am using Mathematica exclusively, I forgot that explicitly computing the matrix inverse was the issue, not the eigenvalue solver.

For those in the future, generalized eigenvalue problems of the above form are solved very robustly in Mathematica via Eigensystem[A,B] following from above.

Thanks StoneTemplePython