首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线性方程组解算结果(MATLAB vs Math.NET equation )

线性方程组解算结果(MATLAB vs Math.NET equation )
EN

Stack Overflow用户
提问于 2016-11-21 20:07:15
回答 1查看 702关注 0票数 1

1 C#:用Math.NET库求解方程组

代码语言:javascript
复制
// test solver in Math.NET
var A = Matrix<double>.Build.DenseOfArray(new double[,] {
                                {1, 1, 3},
                                {2, 0, 4},
                                {-1, 6, -1}
                            });
Console.WriteLine(A);
var b = Vector<double>.Build.Dense(new double[] { 2, 19, 8 });
Console.WriteLine(b);
var x = A.Solve(b);//Math.NET

Console.WriteLine("Test Solver in Math.NET: " + x);
>> Test Solver in Math.NET: DenseVector 3-Double
 34.5
    5
-12.5

Press any key to continue . . .

2 MATLAB中相同输入的结果:

代码语言:javascript
复制
A = [1 1 3; 2 0 4; -1 6 -1]
B = [2 19 8]
x = B/A
A =

     1     1     3
     2     0     4
    -1     6    -1


B =

     2    19     8


x =

   1.0000e+00   2.0000e+00   3.0000e+00

3在Python中用于相同的输入,并在numpy.linalg的帮助下:

代码语言:javascript
复制
In[10]: 
import numpy as np

# matrix A
A = np.matrix ([[1, 1, 3],[2, 0, 4],[-1, 6, -1]])

# vector b
b = np.array([2, 19, 8])
b.shape = (3,1)
# attempt to solve Ax=b
z = np.linalg.solve(A,b)
z
Out[10]: 
array([[ 34.5],
       [  5. ],
       [-12.5]])

4对于C#(Math.NET)和Math.NET,结果似乎是一样的,而对于MATLAB来说,两者有很大的不同,为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-21 21:01:12

C#和Python示例求解方程A*x=b,而MATLAB示例求解x*A=b

通过转换B,用\代替/,可以改变MATLAB实例来求解/

Math.NET (和Python)示例可以通过转换A (即A.Transpose().Solve(b)而不是A.Solve(b) )来解决x*A=b问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40728441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档