Answers:
什么时候患病?这取决于您要寻找的解决方案的准确性,甚至取决于“情人眼中的情人”。
也许是因为基于L U分解的廉价且健壮的条件数估计量,您的问题应该改写一下?
假设你有兴趣在现实一般(密集,非对称)的双精度运算的问题,我建议你使用LAPACK专家求解DGESVX提供在其倒数的形式条件估计。作为奖励,您还可以使用其他好处,例如方程式平衡/平衡,迭代细化,正向和反向误差范围。顺便说一句,病理性疾病状况(κ (A )> 1 / ϵ)被信号表示为错误。INFO>0
进入更详细地,LAPACK估计在1范数的条件数(或范数,如果你正在解决甲Ť X = b经由)DGECON。在草坪36:“用于条件估计中的鲁棒三角求解”中描述了基础算法。
我不得不承认我不是该领域的专家,但是我的理念是:“如果对LAPACK足够好,那么对我来说就是”。
具有范数1的矩阵和范数1的随机右手边的病态方程组的解很有可能具有条件数阶的范数。因此,计算一些这样的解决方案将告诉您发生了什么。
仅凭一个结果就很难判断您的系统是否状况不佳。除非您对系统的行为有一定的了解(即知道解决方案应该是什么),否则从单个解决方案中您将无法说太多话。
话虽如此,如果您用同求解多个系统,则可以获得更多信息。假设您有一个形式为A x = b的系统。对于您不了解其条件的特定A,可以执行以下测试:
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 in a convenient norm.