在matlab中计算给定矩阵的负幂
calculate minus power of given matrix in matlab
假设我们有以下公式
假设我们有一些矩阵
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 的给定幂?提前致谢
你的公式是正确的。
但是,预计不会从第二个公式得到 A 矩阵:
对角矩阵D
的求逆,基本上就是对每个对角元素分别求逆。意思是 D^(-1) = diag(1/d_ii)
因此,操作的步骤也可以通过以下过程来定义:
- 在一列中提取对角线非零元素
- 分别反转每一个
- 计算每个
sqrt
- 重新创建对角矩阵。
上述操作将如下所示:V*diag(diag(D).^(-0.5))*V'
元素d_11=-0.496
是问题所在。作为负值,它的 sqrt
将是一个复数。所以D.^(-0.5)
将是一个复数矩阵,乘积将是一个复数矩阵。
您确定该公式适用于任何随机矩阵吗?根据我的想法,它可能适用于某些特殊形式的矩阵,例如对称 and/or 正定矩阵。
假设我们有以下公式
假设我们有一些矩阵
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 的给定幂?提前致谢
你的公式是正确的。
但是,预计不会从第二个公式得到 A 矩阵:
对角矩阵D
的求逆,基本上就是对每个对角元素分别求逆。意思是 D^(-1) = diag(1/d_ii)
因此,操作的步骤也可以通过以下过程来定义:
- 在一列中提取对角线非零元素
- 分别反转每一个
- 计算每个
sqrt
- 重新创建对角矩阵。
上述操作将如下所示:V*diag(diag(D).^(-0.5))*V'
元素d_11=-0.496
是问题所在。作为负值,它的 sqrt
将是一个复数。所以D.^(-0.5)
将是一个复数矩阵,乘积将是一个复数矩阵。
您确定该公式适用于任何随机矩阵吗?根据我的想法,它可能适用于某些特殊形式的矩阵,例如对称 and/or 正定矩阵。