【问题标题】:Why I am getting wrong matrix norm in matlab?为什么我在 matlab 中得到错误的矩阵范数?
【发布时间】:2014-05-25 17:45:28
【问题描述】:

我有一个小的、条​​件良好的厄米特矩阵 L,其特征值在 [0,2] 中。在尝试计算 L 的逆范数时,我得到了奇怪的结果:

>> norm(inv(L))

ans =

    2.0788

>> min(eig(L))

ans =

    0.5000 

这很奇怪,因为逆的第二范数应该等于矩阵的最小特征值的逆。

我知道机器算术引入的错误,但在这个小的、厄米特和条件良好的示例中,我希望它可以忽略不计。

这里是矩阵https://www.dropbox.com/s/nh1wegrnn53wb6w/matrix.mat

我在 Linux mint 16 (Petra) 上使用 matlab 8.2.0.701 (R2013b)。

【问题讨论】:

  • 729x729 是一个“小”矩阵?
  • @Daniel,是的,而且这是一个稀疏矩阵。
  • 你说well conditioned hermitian matrix L with eigenvalues in [0,1],但这不是我得到的:e=eig(L); max(e) --> 1.3789, min(e)--> 0.5000
  • @Nasser,抱歉打错了,应该是 [0, 2]。

标签: matlab matrix floating-point numerical-methods


【解决方案1】:

这不是一个数值问题,正如您所指出的,矩阵条件良好。

逆的第二范数应该等于矩阵的最小特征值的逆

只有当矩阵是具有正特征值(即正定)的厄米特矩阵时,这才是正确的。来自维基百科:矩阵 A 的谱范数是 A 的最大奇异值,即正半定矩阵 A*A 的最大特征值的平方根

所以在这里你可以计算逆的范数:

[v,d] = eig(L'*L);
1.0/sqrt(min(diag(d))) = 2.0788539
norm(inv(L)) = 2.0788539

正如我们所料。

【讨论】:

  • 这表明矩阵不可能是真正的厄米特矩阵,即,如果它有真实的条目,则它是对称的。或者不是肯定的。因为对于对称正定 (spd) 矩阵,原始推理是正确的,所以特征值也是奇异值。
  • @LutzL,是的,矩阵并不是真正的厄米特矩阵,情况就是这样。谢谢大家的帮助!
  • 感谢 LutzL,我做了一些小修改以纳入您的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 2017-11-02
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多