2009-12-16 128 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