Wrong calculation of eigenvalues
Ältere Kommentare anzeigen
Hello all!
I'm trying to solve the generalized eigenvalue problem (A-λB)*V=0 and find the eigenvalues λ. Using qz command (or eig command for the problem (inv(B)*A-λI)*V=0) in Matlab I take the eigenvalues. In order to validate my results for a given eigenvalue λi, I calculate the det(A-λiB), which I want to be near zero. Unfortunately, I come up with a result of rank 1e80!!
Additionally, the condition number of the equivalent matrix inv(B)*A is of rank 1e9. Is this normal? I assume that I have to deal with a singular matrix, but I don't understand why Matlab doesn't warn me for that...
Please, any help would be appreciated.
Thanks, Antigoni
Akzeptierte Antwort
Weitere Antworten (1)
Matt J
am 27 Jun. 2013
0 Stimmen
I calculate the det(A-λiB), which I want to be near zero
You should really look at rcond(A-λiB) instead of the determinant.
6 Kommentare
As an example of why det() is unreliable, the following matrix is pretty clearly singular for numerical purposes, but has a huge determinant
>> A=diag(10*ones(90,1)); A(end)=1e-9;
>> det(A)
ans =
1.0000e+80
Matt J
am 27 Jun. 2013
Antigone Commented:
Hi Matt!
Thanks for the answer. I computed rcond(A-λiB) and is equal to 6.3025e-020 for the first eigenvalue. Documentation says that if rcond(X) is near 1, then X is well-conditioned, else if is near EPS, then X is badly conditioned. I think in my case, A-λiB is badly conditioned, right? So I should try to find alternative ways to compute eigenvalues? On the other hand, if I write [V,D]=eig(A,B) and compare A*V with B*V*D (as documentation of eig says), then these two results are very close. Which conclusion is the right one? I'm a bit confused here...
Hi Antigone. The result 6.3025e-020 is a good one. rcond measures how non-singular a matrix is (a more useful measure than the determinant). This result is telling you that A-λiB is highly singular, which is precisely what you wanted to verify.
Antigoni
am 27 Jun. 2013
Antigoni
am 27 Jun. 2013
Kategorien
Mehr zu Linear Algebra finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!