accuracy of two methods to solve eignvalues/eignvector problem
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MA
am 3 Apr. 2020
Beantwortet: Christine Tobler
am 3 Apr. 2020
I am trying to solve an eignvalue/eignvector problem related to the multi-class LDA. The equation is inv(Sw)*Sb. I have two solutions:
[E,D]=eig(inv(Sw)*Sb)
or
[E,D]=eig(Sb,Sw);
when I try them, I get different eignvectors and eignvalues in both cases. Am I supposed to get the same results and what is more accurate to use the first way or the second one?
0 Kommentare
Akzeptierte Antwort
Christine Tobler
am 3 Apr. 2020
The second way is typically more accurate, because it doesn't incur additional round-off error when conputing inv(Sw) and when multiplying this to Sb.
Can you give an example of the eigenvalues and eigenvectors being different? It's to be expected that the order of the eigenvalues changes between two different ways of calling EIG, and the eigenvectors may be scaled in different ways between the two cases. Any other changes would be due to round-off error.
One way to check the accuracy of the combined eigenvectors and eigenvalues is to compute the residual norm:
For [U, D] = eig(A)
norm(A*U - U*D)
For [U, D] = eig(A, B)
norm(A*U - B*U*D)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!