C# 如何用mathdotnet求矩阵的逆

C# 如何用mathdotnet求矩阵的逆,c#,matrix,matrix-inverse,math.net,C#,Matrix,Matrix Inverse,Math.net,通过这个,我得到了invone的所有值。我想不出是怎么回事。除了mathdotnet,还有什么更简单的方法来求矩阵的逆吗?这是很难谷歌的原因,当你键入逆你得到转置码 for( int i = 0 ; i < classOneCount ; i++ ) { for( int j = 0 ; j < classOneCount ; j++ ) { gecicione[ geci

通过这个,我得到了invone的所有值。我想不出是怎么回事。除了mathdotnet,还有什么更简单的方法来求矩阵的逆吗?这是很难谷歌的原因,当你键入逆你得到转置码

        for( int i = 0 ; i < classOneCount ; i++ )
        {
            for( int j = 0 ; j < classOneCount ; j++ )
            {
                gecicione[ gecicicounter ] = classOneEpsilon[ i , j ];
                gecicicounter++;
            }
        }
        inverseOneEpsilon = new DenseMatrix( classOneCount , classOneCount , gecicione );
        var invone= inverseOneEpsilon.Inverse();
for(int i=0;i
如果您的矩阵是单数矩阵,则尝试Inverse()方法时,Math.NET将返回NaN

答案是你的矩阵是不可逆的。您应该在代码中对此进行检查。

如果您使用C#和类:

像这样:

DenseMatrix yourNewDenseMatrixInverted=yourDenseMatrix.Inverse();    

这与
var invone=inverseOneEpsilon.Inverse()相同,请参见提供的
classOneEpsilon
不是太大,您能在您的问题中添加它的值吗?因为@celsound假设你的原始矩阵不能反转,这可能是正确的。如果矩阵很大,只需检查其行列式(
inverseOneEpsilone.determinate
)是否为零。