LAPACK:INFO 大于零但 ZGETRI 没有失败的 ZGETRF。

计算科学 正则 拉帕克
2021-12-21 21:27:55

我正在计算一个复杂矩阵的逆。我执行 ZGETRF 但 U(2,2) = 0。当我计算 ZGETRI 时,确定了倒数。我可以相信这个倒数吗?

1个回答

我已经回答了一个类似的问题,失败zgetrf后将是成功的zgetrs在这个问题中,情况类似。

要打电话zgetri,你必须先打电话zgetrf因此,如果zgetrf失败(在某种意义上U2,2=0) 首先,打电话zgetri并希望得到可靠的结果是没有意义的。

为什么zgetri不导致显式错误本身是另一个问题,并且可能取决于 LAPACK/BLAS 库的特定实现。但是,总而言之,由于您在获得矩阵逆的两步过程的第一步中遇到了错误,因此您当然不能相信获得的逆。

上述问题中讨论了如何理解矩阵实际发生的情况的策略,但归结为分析矩阵的谱、其奇异值和条件数,然后研究矩阵所在的物理场原本来自。

由于您对矩阵的逆矩阵感兴趣(正如您在评论中指出的那样)并且您的矩阵是“有问题的”,因此我建议使用 SVD 路由过程来获得逆矩阵,而不是 LU 路由。速度较慢;但是,您将能够首先看到奇异值的行为方式,并更早地发现问题并明确地看到它们。