2014-07-03 11 views
5

Według Wikipedia rozkładu wartości własnych powinny być takie, że:Odzyskiwanie pierwotnego matrycę z wartością własną rozkładu

http://en.wikipedia.org/wiki/Square_root_of_a_matrix

Patrz sekcja obliczeniowa Sposoby według diagonalizacji:

Sp że jeśli macierz A ulega rozkładowi, tak że ma wektory własne V i wartości własne D, następnie A = VDV '.

A=[1 2; 3 4]; 
[V,D]=eig(A); 
RepA=V*D*V'; 

Jednak w Matlab, A i RepA nie są równe?

Dlaczego tak jest?

Baz

Odpowiedz

5

Ogólnie formuła:

RepA = V*D*inv(V); 

lub napisane dla lepszej dokładności numerycznej w MATLAB

RepA = V*D/V; 

Gdy A jest symetryczna, wtedy macierz V zostanie okazują się być ortogonalne, co spowoduje, że inv(V) = V.'. A NIE jest symetryczne, więc potrzebujesz rzeczywistej odwrotności.

Spróbuj:

A=[1 2; 2 3]; % Symmetric 
[V,D]=eig(A); 
RepA = V*D*V';