A'A和AA'配方的条件编号


9

显示(Yousef Saad,稀疏线性系统的迭代方法,第260页)cond(AA)cond(A)2

这是真的为呢?AA

如果是且,我观察到AN×MNMcond(AA)cond(AA)

在这种情况下,以表示是否意味着更可取?AA


2
您正在比较大小相差很大的两个矩阵的条件数。没有解释为什么,这种比较似乎没有意义。当然,如果您可以通过使用更小的矩阵来完成所需的操作,则应该这样做(即使条件相似)。
David Ketcheson 2012年

1
下面是Stefano M的新答案是正确的。请阅读并投票。
David Ketcheson

Answers:


6

如果 ARN×MN<M, 然后

rank(ATA)=rank(AAT)=rank(A)N<M
以便 ATARM×M 不能为全等级,即单数。

因此条件编号为 κ2(ATA)=。由于有限精度算法,如果您cond(A'A)在matlab中进行计算,则不会获得大数Inf


@OscarB:的奇异值 A 只是 N,没有这样的事情 M奇异的价值!您的推导是正确的,但是请注意,如果σii=1N 是sv的 A, 然后 SST=diag(σ12,,σn2),而 STS=diag(σ12,,σn2,0,,0)MN尾随零。
Stefano M

8

好吧,让我们看看为什么 ATA 条件数的平方 A。使用SVD分解A=USVT,带有 URN×NSRN×MVRM×M,我们可以表达 ATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

我们注意到这一点 U 是正交的,这样 UTU=I。此外,我们注意到S 是对角矩阵,使得 ATA 可以表示为 VS2VT,带有 S2 含义 STS,得出对角矩阵,其中的前N个奇异值来自 S在对角线平方。这意味着,由于条件数是第一个和最后一个奇异值的比,cond(A)=s1sN 对于 ARN×M

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

现在,我们可以执行相同的练习 AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

这意味着我们得到了结果 cond(AAT)=s12sN2,因为 S2 这里的意思是 SST,与上面的符号有细微的差别。

但是请注意细微的差别!对于ATA,条件编号在分母中具有第M个奇异值,而 AAT具有第N个奇异值。这说明了为什么您看到条件编号有显着差异的原因-AAT 确实比“更好” ATA

不过,大卫·凯奇森(David Ketcheson)是正确的-您正在比较两种截然不同的矩阵之间的条件编号。特别是您可以完成的工作ATA 将与您可以完成的目标不同 AAT


这是一个很好的解释!我现在清楚地看到了区别。矩阵A用于建立法线方程,只需稍作更改,您就可以将其表示为AA,不是古典 AA。您还能说出使用LSQR之类的求解器而不是法线方程是否有利?由于LSQR完全不需要构建此产品。
亚历山大

很高兴有道理。通常,您需要考虑问题的条件。但是,如果这不是问题,则可以使用正则方程式/ A的QR分解/ LSQR,具体取决于问题的大小(除其他事项外)。除非您的问题很大或状况不佳,否则我可能会应用QR因式分解,但是如果您对要解决的问题没有更多的了解,就很难说了。我相信其他有更多经验的人可以提供更详细的建议。
OscarB 2012年

A本身是病态的(条件号为 107),又大又密。不能选择QR。由于情况不佳,无论如何我必须添加一些正则化。现在,简单的Tikhonov正则化似乎就足够了。关键是,如果cond(A)<cond(AAT)<cond(ATA) (对于我的情况 N<M),那么使用LSQR似乎总是可取的,因为您根本不需要形成任何产品。问题是,通过正态方程和LSQR获得的解是否相同?
亚历山大

好吧,据我了解,LSQR将在“无数次”迭代后以精确的精度为法线方程提供相同的解决方案。但是,对于不适定的问题,法向方程式解决方案不是您想要的。相反,您想使用LSQR进行迭代,直到实现半收敛为止。但是,控制不适定问题中的迭代算法完全是另一回事。同样,根据矩阵向量乘积的成本和所需的迭代次数(以及由此得到的矩阵),采用双向对角化的直接tikhonov解决方案可能会更好。
OscarB 2012年

很棒的解释。先生,+ 1!
meawoppl 2012年

2

声称 condA2condATA(用于方阵) Artan答案中的[编辑:我误读]是胡说八道。反例

A=(ϵ10ϵ),ϵ1

您可以轻松地检查 condATA=O(ϵ4)condA2=O(ϵ2)


好强调一下 A2ATA 总的来说,关于eigs,svds和cond号是非常不同的:但是在我看来,问题的主张是关于 [cond(A)]2
Stefano M

@StefanoM谢谢,似乎我读错了,尽管从讨论中看,并不是唯一的一个。
杰德·布朗

1

在精确算术cond(A ^ 2)= cond(A'A)= cond(AA')中,请参见例如。Golub和van Loan,第3版,第70页。如果A几乎秩不足,则在浮点算术中不是这样。最好的建议是,在解决最小二乘问题时,请遵循上述书中的说明,最安全的方法是SVD方法p257。在计算SVD时,请改用\ varepsilon-rank,其中\ varepsilon是矩阵数据的分辨率。


对不起,我看了Golub和Van Loan第三版。70,并且找不到任何支持语句cond(A ^ 2)= cond(A ^ TA)= cond(AA ^ T)的内容。您能否更具体地参考一下?
OscarB 2012年

那里没有语句,但是您可以从定理2.5.2和伪逆定理5.5.4节中得出cond(AA')= cond(A'A)。我采用伪逆的原因是,这对于手头最小二乘问题很重要。cond(A ^ 2)之后的等式应为\ approx,抱歉。
Artan 2012年

不,这个答案是完全错误的。参见我的反例。
杰德·布朗

萨阿德一定是在某些特定情况下指出了这一点。与手头问题有关的是进行性辩论。
Artan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.