根据维基百科,特征值分解应该是这样的:
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不相等?
为什么是这样?
巴兹
一般来说,公式是:
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)