2011-08-24 109 views
-1

我的方程系統既有線性方程也有非線性方程,但不是二次方程或三次方程,或者是具有多於一個可變度的方程。 例如:求解線性方程組和非線性方程組?

  x + y = 3 (linear), 
      y + z = 4 (linear), 
      x * z = 6 (non linear), 
      x/y = 3 (non linear), 
      y * z/x = 2 (non linear) 

可以有幾百個公式在這些系統中。沒有二次或三次方程。

我想知道哪種算法最適合求解這些方程組,哪種語言更好C或Matlab。

+1

這個問題幾乎肯定會因爲太主觀而關閉。我認爲一個更有趣的算法問題可能是「我將如何去解決非線性方程組的系統?」,將選擇的語言作爲一個細節在你已經計算出你計劃如何解決它。 – templatetypedef

+0

當問什麼語言更適合某些事情時,您需要指定您想要優化的內容。你想優化速度,精度還是易於編寫程序? –

+0

我投「是不是真正的問題」是「過於寬泛」。 –

回答

0

我會選擇使用MatLab,因爲它旨在解決像這樣的問題。 Here是解決線性方程組的教程,here是非線性方程的一個例子。

我也建議也許在Math網站上提出這個問題,因爲他們可能有更多的經驗。

0

如果您使用C語言,您必須出去尋找好的數值方法庫來幫助您或自己編寫它們。

MATLAB是一個數值方法庫的工具包。他們實施了他們,所以你不必這樣做。考慮將MATLAB作爲頂層求解器的更高抽象。

如果你有一個單一的非線性方程加上一堆其他線性方程,這意味着你需要一個非線性求解器。我建議使用Newton-Raphson迭代求解器,但最好的辦法是查看MATLAB工具箱,看看它爲非線性求解器提供了什麼。最容易代表你的方程組的是最好的。