尝试使用math.net来计算非方阵的伪逆

时间:2015-02-11 14:00:55

标签: c# linear-algebra numerical-methods

我正在尝试使用math.net库来计算矩阵的伪逆,但到目前为止,当我尝试使用以下代码时,我收到错误告诉我:

   B = A.Inverse();

矩阵必须是方形的。但是这里

http://iridium.mathdotnet.com/api/mathnet.numerics.linearalgebra/matrix.htm#Inverse

据说逆方法计算伪逆。 这也在这里说:

https://mathnetnumerics.codeplex.com/discussions/251084

我使用的是错误版本的库吗?到目前为止,我一直在使用Math.Net.Numerics3.4.0,我在文件夹Net4.0中找到了对MathNetNumerics.dll的c#项目的引用

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

根据此documentation

  

inverse(A)如果A是正方形,否则为伪逆。

在我看来,如果给定不可逆(但为正方形)矩阵,则Matrix.Inverse()方法将失败。此行为可能是故意的。有时,不可逆矩阵表示您要警告的严重错误。另外,如果您知道矩阵在正方形时应始终是可逆的,则“逆”可能比PseudoInverse快一点。