Lapack error with SGETRF



我使用LAPACK library来解决一个优化问题。我得到不同的Lapack错误(Lapack error(1,2,3,4) with SGETRF)。是否有任何文档来源,我可以阅读以了解这些错误的确切含义?

大多数Lapack例程在参数INFO中返回错误代码。该输出的含义在函数sgetrf()

的文档中指定

如果INFO为空,则一切正常!如果INFO <0,则在输入参数中检测到错误。例如,对于sgetrf():

  • INFO=-1:矩阵的行数为负
  • INFO=-2:矩阵列数为负
  • INFO=-4: LDA小于MAX(1, M)
例程xerbla()可用于打印正确的错误消息:
XERBLA( 'SGETRF', -INFO )

如果INFO>0,文档清楚地描述了正在发生的事情:

U(i,i)正好为零。因式分解已经完成,但是因子U是完全奇异的,如果使用它就会被零除解一个方程组

如果矩阵是奇异的或病态的,就会出现这个问题。如果矩阵A是奇异的,那么问题Ax=b可能有不同的解,或者根本没有解。如果INFO=1,则矩阵很可能为空。

因此,测试INFO被认为是一个很好的实践,因为函数如sgetrf()sgesv()被调用…

最新更新