我想知道为什么在rank函数上的Matlab将max(size(A))*eps(norm(A))
的值视为零是有技术或理论上的原因。您能提供一些直觉吗?
谢谢!
答案 0 :(得分:0)
以下答案并非基于正确的数学推理,只是一些推测(正如您所要求的直觉):
norm(A)
是矩阵条目的数量级。
eps(norm(A))
是矩阵条目的浮点表示形式通常具有的精度。
现在,考虑添加理论上应该为零的N
个数字,但是每个数字都有一个eps
的错误...我认为我们期望顺序错误的sqrt(N) * eps
中得出结果。
然后,假设计算秩的算法对矩阵条目执行N^2
操作(其中N
是其大小),则得出的数字将与零进行校验,即然后会期望是您在问题中所说的话。
我不知道,Matlab使用的算法真的很复杂吗N^2
?