Mathematica Eigenvalue problem and badly conditioned matrices

Click For Summary
The discussion focuses on solving the generalized eigenvalue problem A v = λ B v, particularly when B is badly conditioned. The user initially attempted to use the matrix B^-1 A but faced issues due to the conditioning of B. They referenced a previous discussion about using the Lanczos method to avoid explicit inversion. The conversation highlights that while MATLAB's eigenvalue solver was previously considered robust, the user found Mathematica's Eigensystem[A,B] to be a more effective solution for this problem. Overall, the thread emphasizes the importance of choosing the right computational approach for eigenvalue problems involving badly conditioned matrices.
member 428835
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?
 
Physics news on Phys.org
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.
 
  • Like
Likes member 428835
StoneTemplePython said:
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
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 18 ·
Replies
18
Views
3K
Replies
2
Views
1K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 2 ·
Replies
2
Views
9K
Replies
11
Views
6K