calculate eigenvector for a balanced matrix

1 view (last 30 days)
Abolghasem
Abolghasem on 1 Jul 2014
Edited: Abolghasem on 25 Jul 2014
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

Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!