calculate eigenvector for a balanced matrix
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
If A = [1 100 10000; .01 1 100; .0001 .01 1]
[S,P,B] = balance(A) Where
S: scaling vector S
P : the permutation vector; T: Transformation T(:,P) = diag(S); B: balanced matrix : B= diag(1./S)*A*diag(S)= inv(diag(S))*A*diag(S)
[S,P,B] = balance(A)
S = 1.0e+03 *
2.048000000000000
0.032000000000000
0.000250000000000
P =
1
2
3
B =
1.000000000000000 1.562500000000000 1.220703125000000
0.640000000000000 1.000000000000000 0.781250000000000
0.819200000000000 1.280000000000000 1.000000000000000
That means B=S-1 *A*S
Thus, if X is an eigenvector of A, Xt is an eigenvector of B so that we can calculate the original eigenvector : X=S*Xt
I tried to see whether I could get a the original eigenvector of A from the eigenvector of the balanced matrix or not
[V1,E1] = eig(A,'nobalance')
V1 =
-1.0000 1.0000 1.0000
0.0050 0.0100 -0.0142
0.0001 0.0001 0.0000
E1 =
0.0000 0 0
0 3.0000 0
0 0 -0.0000
[V2,E2] = eig(B,'nobalance')
V2 =
1.0000 -0.8240 - 0.1760i -0.8240 + 0.1760i
0.6400 0.2124 + 0.5166i 0.2124 - 0.5166i
0.8192 0.4032 - 0.5171i 0.4032 + 0.5171i
E2 =
3.0000 0 0
0 -0.0000 + 0.0000i 0
0 0 -0.0000 - 0.0000i
Calculate back transformation of eigenvector V2 to reach V1
V21=diag(S)*V2
V21 =
1.0e+03 *
2.0480 -1.6875 - 0.3605i -1.6875 + 0.3605i
0.0205 0.0068 + 0.0165i 0.0068 - 0.0165i
0.0002 0.0001 - 0.0001i 0.0001 + 0.0001i
If we consider the eigenvalue 3.0
Then the values on the second column of V1 should be the same order as the values on the first column of V21 (backtransformed form V2) .But the 1st column of V21 is greater than the 2nd column of V1 by a factor of about 2.0*e+03! The idea was to scale the an ill-conditioned matrix and find a more accurate eigenvalue and the corresponding eigenvector, but it seems that I made a mistake about finding the eigenvector corresponding to the improved eigenvalue. could you please help me?
Best regards Ghasem
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!