【问题标题】:Recovering original matrix from Eigenvalue Decomposition从特征值分解中恢复原始矩阵
【发布时间】:2014-07-03 21:27:39
【问题描述】:

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

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

参见对角化的计算方法部分:

如果矩阵 A 被分解成具有特征向量 V 和特征值 D,那么 A=VDV'。

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

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

这是为什么?

巴兹

【问题讨论】:

    标签: matlab


    【解决方案1】:

    一般来说,公式是:

    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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多