根据维基百科,特征值分解应该是:
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';
然而在Matlab中,A和RepA不相等?
为什么会这样?
巴兹
答案 0 :(得分:5)
一般来说,公式是:
RepA = V*D*inv(V);
或者,为了在MATLAB中获得更好的数字精度,
RepA = V*D/V;
当A是对称的时,V矩阵将变为正交,这将产生inv(V) = V.'
。 A不是对称的,所以你需要实际的逆。
试一试:
A=[1 2; 2 3]; % Symmetric
[V,D]=eig(A);
RepA = V*D*V';