小编J. *_*abe的帖子

使用MathNet.Numerics进行矩阵求逆

我正在编写一些使用MathNet.Numerics.LinearAlgebra的C#代码,并试图将结果与教科书示例相匹配.代码的一部分执行complex32数组"Ybus"的反转,并将其存储在另一个数组"Zbus"中:

Matrix<Complex32> Ybus = Matrix<Complex32>.Build.Dense(numBuses, numBuses);

Matrix<Complex32> Zbus = Matrix<Complex32>.Build.Dense(numBuses, numBuses);
Run Code Online (Sandbox Code Playgroud)

我的Ybus完全符合书中的例子.

Ybus = j[ -13       5      4      0
            5   -13.5    2.5      2
            4     2.5     -9    2.5
            0       2    2.5   -4.5] 
Run Code Online (Sandbox Code Playgroud)

但是当我做倒置时

Zbus = Ybus.Inverse();
Run Code Online (Sandbox Code Playgroud)

Zbus的结果都是NaN

而本书的正确结果如下:

Zbus = j[ .15     .09    .12    .11
          .09     .15    .12    .13
          .12     .12    .25    .19
          .11     .13    .19    .39] 
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法可能是什么问题?也许复杂矩阵的反演有一些问题?

在此输入图像描述

获得的经验:不要让你的数组太大,以致它们有0行或反向会爆炸:) ...这是正确的答案:

在此输入图像描述

c# matrix math.net

5
推荐指数
1
解决办法
2161
查看次数

标签 统计

c# ×1

math.net ×1

matrix ×1