我需要一个求解线性方程组(N最多10个)的应用程序,所以我得到了不同的代码,并编译它们,它们似乎有用,但我在精度方面遇到了很多问题。我的意思是,求解器对系统的微小变化非常敏感。
那么,有人可以向我推荐一个可靠的命令应用程序吗?或者一些有用的开源代码(并且易于编译)
由于
答案 0 :(得分:0)
GNU Octave本质上是Matlab的免费版本(基本操作的语法相同),所以你可以尝试一下,看看它们与你得到的答案相比如何。
话虽如此,如果您的答案对输入非常敏感,那么您的问题可能是病态的 - 您可以通过计算Octave中矩阵的条件数来检查。在不了解问题的具体细节的情况下,很难说在这种情况下该怎么做。
另外,您没有提到您当前使用的方法。如果你不使用旋转,高斯消除(即“你在数学课上学到的东西”)是众所周知的数值不稳定(参见维基百科词条“透视”);添加这可能足以提高结果的质量。
答案 1 :(得分:0)
一种方法是在Python中使用numpy包。您可以创建2d矩阵A和1d向量b,然后使用solve(A,x)求解x的Ax = b。它是numpy的linalg子包的一部分。