Matlab秩功能中的零容差

时间:2018-09-15 17:46:02

标签: matlab

我想知道为什么在rank函数上的Matlab将max(size(A))*eps(norm(A))的值视为零是有技术或理论上的原因。您能提供一些直觉吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下答案并非基于正确的数学推理,只是一些推测(正如您所要求的直觉):

norm(A)是矩阵条目的数量级。

因此,

eps(norm(A))是矩阵条目的浮点表示形式通常具有的精度。

现在,考虑添加理论上应该为零的N个数字,但是每个数字都有一个eps的错误...我认为我们期望顺序错误的sqrt(N) * eps中得出结果。

然后,假设计算秩的算法对矩阵条目执行N^2操作(其中N是其大小),则得出的数字将与零进行校验,即然后会期望是您在问题中所说的话。

我不知道,Matlab使用的算法真的很复杂吗N^2