使用直接方法时出现不适的症状是什么?


14

假设我们有一个线性系统,并且对它的条件一无所知,也没有关于解的初步信息。我们盲目地应用高斯消去法并得到一些解x。如果不对矩阵进行全面的初步分析,是否可以确定该解决方案是否值得信赖(即系统状况良好)?枢纽的数量是否能提供可靠的信息?

通常,“动态”检测疾病的主要准则是什么?

Answers:


13

什么时候患病?这取决于您要寻找的解决方案的准确性,甚至取决于“情人眼中的情人”。

也许是因为基于L U分解的廉价且健壮的条件数估计量,您的问题应该改写一下?LU

假设你有兴趣在现实一般(密集,非对称)的双精度运算的问题,我建议你使用LAPACK专家求解DGESVX提供在其倒数的形式条件估计。作为奖励,您还可以使用其他好处,例如方程式平衡/平衡,迭代细化,正向和反向误差范围。顺便说一句,病理性疾病状况(κ (A )> 1 / ϵ)被信号表示为错误。RCOND≈1/κ(A)κ(A)>1/ϵINFO>0

进入更详细地,LAPACK估计在1范数的条件数(或范数,如果你正在解决甲Ť X = b经由)DGECON。在草坪36:“用于条件估计中的鲁棒三角求解”中描述了基础算法。∞ATx=b

我不得不承认我不是该领域的专家,但是我的理念是:“如果对LAPACK足够好,那么对我来说就是”。


8

具有范数1的矩阵和范数1的随机右手边的病态方程组的解很有可能具有条件数阶的范数。因此,计算一些这样的解决方案将告诉您发生了什么。


这确实是DGECON正在做的事情,它具有反复优化搜索方向以最大化结果的技巧,并使用自定义的三角求解器(而不是BLAS求解器)来避免事物被近似误差所扭曲。因此,DGECON的计算成本可与您的简单测试相媲美。+1是为了让我们记住矩阵范数和条件数的简单含义。弄清楚DGECON是否真的比简单的随机检查更可靠。
— Stefano M

考虑到求解的条件数与计算A x的条件数一致,是否足以将缩放矩阵与那些随机向量相乘,而不是实际求解A x = b?Ax=bAxAx=b
— faleichik 2012年

2
@faleichik可以肯定的是:这里的诀窍是缩放以使” A ” = 1且κ (A )= ” A ” ⋅ ” A − 1 ” = ” A − 1 ”。当然,作为该线性代数,您不必实际缩放A,而仅缩放A x …不过,您需要首先计算“ A ”。您的反向论证将需要首先计算“ A − 1 ”A‖A‖=1κ(A)=‖A‖⋅‖A−1‖=‖A−1‖AAx‖A‖‖A−1‖我们正在努力评估的内容。
— Stefano M

5

仅凭一个结果就很难判断您的系统是否状况不佳。除非您对系统的行为有一定的了解(即知道解决方案应该是什么),否则从单个解决方案中您将无法说太多话。

话虽如此,如果您用同求解多个系统,则可以获得更多信息。假设您有一个形式为A x = b的系统。对于您不了解其条件的特定A,可以执行以下测试: AAx=b

  1. Solve Ax=b for a specific right hand side vector b.
  2. Perturb your right hand side vector by bnew=b+ε where ||ϵ|| is very small in comparison to ||b||.
  3. Solve Axnew=bnew.
  4. ||x−xnew||||x−xnew|| is large), then your system is probably ill-conditioned.

Θ(n3)Θ(ñ2) operations for each successive solution, assuming your direct solver saves its factors). If your matrix A is fairly small, this is not a problem. If it is large, you may not want to do this. Instead, you may be better off calculating the condition number ||A||⋅||A−1|| in a convenient norm.


2
Your Θ(kn3) claim is extremely far from the truth. Even if A is dense, A can be factored once with O(n3) work and then each solve requires only O(n2) work.
— Jack Poulson

@JackPoulson: You're absolutely right... I guess I completely spaced out about it. No worries:) I'll update my answer
— Paul

Could one also evaluate the residual of the resulting solve? Since
||Ax−b||
scales as
||A||⋅||x||
a nearly singular A might give a meaningful residual even if its solution is very bad.
— Reid.Atcheson

@Reid.Atcheson: Not really. The approximate solution to an ill conditioned system can still produce a small residual. This does not really doesn't give you any indication as to how far away it is from the true solution.
— Paul

1
May be it is more wise to explicitly state ‖ε‖ very small with respect to ‖b‖. Everything is relative in this area... Most readers will know, but someone could be mislead in dangerous waters.
— Stefano M
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.