从特征值分解中恢复原始矩阵

Baz*_*man 5 matlab

根据维基百科,特征值分解应该是这样的:

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

请参阅对角化计算方法部分:

Sp如果矩阵A被分解使得它具有特征向量V和特征值D,则A = VDV'.

A=[1 2; 3 4];
[V,D]=eig(A);
RepA=V*D*V';
Run Code Online (Sandbox Code Playgroud)

但是在Matlab中,A和RepA不相等?

为什么是这样?

巴兹

Pet*_*ter 5

一般来说,公式是:

RepA = V*D*inv(V);
Run Code Online (Sandbox Code Playgroud)

或者,为了更好的数字精度而在MATLAB中编写,

RepA = V*D/V;
Run Code Online (Sandbox Code Playgroud)

当A是对称的时,则V矩阵将变为正交,这将是正交的inv(V) = V.'.A不是对称的,因此您需要实际的逆.

试试吧:

A=[1 2; 2 3];  % Symmetric
[V,D]=eig(A);
RepA = V*D*V';
Run Code Online (Sandbox Code Playgroud)