2009-12-16 76 views
0

我需要一个求解线性方程组(N可达10)的应用程序,所以我得到了不同的代码并编译它们,并且它们似乎可行,但我遇到了很多问题精确。我的意思是,解算器对系统的小改动非常敏感。求解线性方程组的方法

那么,有人可以推荐一个可靠的commandl ine应用程序用于此目的吗?或一些有用的开放源代码(而且容易编译)

感谢

回答

0

GNU Octave基本上是Matlab的一个免费版本(语法是相同的基本操作),所以你可以尝试的东西在那里,看看他们是如何比较你得到的答案。如上所述,如果您的答案对输入非常敏感,那么您的问题可能会出现病态 - 您可以通过计算Octave中矩阵的条件数来检查此问题。如果不了解问题的更多细节,很难说在这种情况下该怎么做。

此外,您没有提及您当前使用的是哪种方法。高斯消元法(即“你在数学课中学到的东西”)如果你不使用pivoting(参见维基百科条目中的“Pivoting”),那么臭名昭着地在数值上是不稳定的;增加这可能足以提高结果的质量。

0

一种方法是在Python中使用numpy包。您可以创建一个2d矩阵A和一个1d向量b,然后使用solve(A,x)为x求解Ax = b。它是numpy的linalg子包装的一部分。

+0

谢谢 你能给我一个关于如何在python上创建矩阵的链接吗? – flow 2009-12-16 09:17:06

+0

对不起,如果这是一个愚蠢的问题... – flow 2009-12-16 12:16:09

+0

退房http://www.scipy.org/Tentative_NumPy_Tutorial 还有一个Numpy书http://www.tramy.us/numpybook.pdf – 2009-12-16 17:59:58