Answers:
如果 与 , 然后
因此条件编号为 。由于有限精度算法,如果您cond(A'A)
在matlab中进行计算,则不会获得大数Inf
。
好吧,让我们看看为什么 条件数的平方 。使用SVD分解,带有 , , ,我们可以表达 如
我们注意到这一点 是正交的,这样 。此外,我们注意到 是对角矩阵,使得 可以表示为 ,带有 含义 ,得出对角矩阵,其中的前N个奇异值来自 在对角线平方。这意味着,由于条件数是第一个和最后一个奇异值的比, 对于 ,
现在,我们可以执行相同的练习 :
这意味着我们得到了结果 ,因为 这里的意思是 ,与上面的符号有细微的差别。
但是请注意细微的差别!对于,条件编号在分母中具有第M个奇异值,而 具有第N个奇异值。这说明了为什么您看到条件编号有显着差异的原因- 确实比“更好” 。
不过,大卫·凯奇森(David Ketcheson)是正确的-您正在比较两种截然不同的矩阵之间的条件编号。特别是您可以完成的工作 将与您可以完成的目标不同 。
在精确算术cond(A ^ 2)= cond(A'A)= cond(AA')中,请参见例如。Golub和van Loan,第3版,第70页。如果A几乎秩不足,则在浮点算术中不是这样。最好的建议是,在解决最小二乘问题时,请遵循上述书中的说明,最安全的方法是SVD方法p257。在计算SVD时,请改用\ varepsilon-rank,其中\ varepsilon是矩阵数据的分辨率。