为什么我在matlab中得到错误的矩阵范数?

为什么我在matlab中得到错误的矩阵范数?,matlab,matrix,floating-point,numerical-methods,Matlab,Matrix,Floating Point,Numerical Methods,我有一个小的、条件良好的厄米矩阵L,其特征值在[0,2]中。我在计算L的倒数的范数时得到了奇怪的结果: >> norm(inv(L)) ans = 2.0788 >> min(eig(L)) ans = 0.5000 这很奇怪,因为逆的第二范数应该等于矩阵最小特征值的逆 我知道机器运算引入的错误,但在这个小的、厄米特式的、条件良好的例子中,我认为它可以忽略不计 这是矩阵 我正在Linux mint 16(Petra)上使用Matlab8.2.

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

>> norm(inv(L))

ans =

    2.0788

>> min(eig(L))

ans =

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

我知道机器运算引入的错误,但在这个小的、厄米特式的、条件良好的例子中,我认为它可以忽略不计

这是矩阵


我正在Linux mint 16(Petra)上使用Matlab8.2.0.701(R2013b)

这不是一个数值问题,正如你所指出的,矩阵是有条件的

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

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

在这里,你可以计算逆矩阵的范数:

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

正如我们所料。

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

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

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

在这里,你可以计算逆矩阵的范数:

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

正如我们所料。

729x729是一个“小”矩阵?@Daniel,是的,而且这是一个稀疏矩阵。你说
条件良好的厄米矩阵L,特征值在[0,1]
,但这不是我得到的:
e=eig(L);麦克斯(e)-->1.3789,最小(e)-->0.5000
@Nasser,很抱歉输入错误,它应该是[0,2]。729x729是一个“小”矩阵?丹尼尔,是的,而且这是一个稀疏矩阵。你说
条件良好的厄米特矩阵L,特征值在[0,1]
,但这不是我得到的:
e=eig(L);max(e)->1.3789,min(e)->0.5000
@Nasser,很抱歉输入错误,它应该是[0,2]。这表明矩阵不可能是真正的埃尔米特矩阵,即,如果它有实条目,那么它是对称的。或者不确定。因为对于对称正定(spd)矩阵,最初的推理是正确的,那么特征值也是奇异值。@LutzL,是的,矩阵不是真正的埃尔米特矩阵,情况就是这样。谢谢大家的帮助!谢谢LutzL,我做了一个小的编辑来合并你的评论。这表明矩阵不可能是真正的hermitean,也就是说,如果它有真正的条目,它是对称的。或者不确定。因为对于对称正定(spd)矩阵,最初的推理是正确的,那么特征值也是奇异值。@LutzL,是的,矩阵不是真正的埃尔米特矩阵,情况就是这样。谢谢大家的帮助!谢谢LutzL,我做了一个小的编辑来加入你的评论。