2013-06-20 49 views
2

我在一个c代码中使用了LAPACK,它允许我对矩阵求逆。更准确地说,我使用dgetrf_然后dgetri_来进行反演。Lapack是否在尝试反转矩阵之前检查矩阵是否可逆

但是因为我正在处理大矩阵,并且因为我不知道矩阵是否可逆或者没有,所以我放松了很多时间以反转一个不可逆矩阵......有没有办法,使用LAPACK来检查这个?

回答

3

请参阅this link(尽管已经过了几岁)关于dgetrf + dgetri在奇异矩阵上的失败。它还提出了一种方法来检查所讨论矩阵的“可逆性”:估计条件编号(功能dgecon)。

条件编号可以提供帮助,因为它是矩阵本身的属性,因此与您的算法的准确性和/或PC的舍入误差无关。条件数越大,矩阵越接近奇点,因此您可以基本上为条件数设置一个(可变)上限。查看this page底部的表格,根据您使用的矩阵类型查看潜在的函数调用顺序。

+0

我想你想写dgecon – PinkFloyd

+0

thx这就是我一直在寻找! – PinkFloyd

+0

是的,我编辑了它。 :) –