在matlab中计算给定矩阵的负功率

时间:2015-04-21 11:00:23

标签: matlab matrix matrix-inverse

假设我们有以下公式

enter image description here

假设我们有一些矩阵

A=rand(3,3)

A =

    0.3922    0.7060    0.0462
    0.6555    0.0318    0.0971
    0.1712    0.2769    0.8235

我已计算出特征值分解

[V,D]=eig(A)

V =

    0.6174   -0.4576   -0.3467
   -0.7822   -0.3723   -0.2087
    0.0841   -0.8075    0.9145


D =

   -0.4960         0         0
         0    1.0481         0
         0         0    0.6954

然后明确

V*D*inv(V)

ans =

    0.3922    0.7060    0.0462
    0.6555    0.0318    0.0971
    0.1712    0.2769    0.8235

关于第二个公式我试过一个

V*sqrt(inv(D))*V'

ans =

   0.3487 + 0.5412i   0.2532 - 0.6857i  -0.0193 + 0.0737i
   0.2532 - 0.6857i   0.1876 + 0.8687i   0.0648 - 0.0934i
  -0.0193 + 0.0737i   0.0648 - 0.0934i   1.6397 + 0.0100i

是正确的实施吗?或者如何在matlab中计算D的给定功率?提前谢谢

1 个答案:

答案 0 :(得分:2)

你的公式是正确的。

然而,预计不会从第二个公式得到A矩阵:

enter image description here

对角矩阵D的反演基本上是每个对角元素的反演。意思是D^(-1) = diag(1/d_ii)

因此,操作步骤也可以通过以下步骤定义:

  • 在列
  • 中提取对角线非零元素
  • 分别颠倒每一个
  • 计算每个<{li>的sqrt
  • 重新创建对角矩阵。

上述操作如下所示:V*diag(diag(D).^(-0.5))*V'

元素d_11=-0.496是问题所在。作为负值,其sqrt将是一个复数。所以D.^(-0.5)将是一个复杂的矩阵,产品将是一个复杂的矩阵。

您确定该公式适用于任何随机矩阵吗?根据我的想法,它可能适用于矩阵的某些特殊形式,如对称和/或正定。