2012-05-02 91 views
0

我正在研究一個非線性聯立方程組。這兩個變量是u> 0和b> 0。我如何在Matlab,Python或Fortran中解決這個問題?謝謝。如何求解非線性聯立方程組(在Matlab,Python或Fortran中)

Nonlinear simultaneous equations

+0

除了課堂上的講義外,網上還有很多關於求解非線性方程的算法。這樣一個開放式的問題並不適合這個論壇。 –

+0

就我個人而言,我不認爲評論有幫助。這不是一個開放式的問題;它只是要求算法建議。也許你在這裏沒有提供任何東西,但這並不是一個壞問題。 – duffymo

+0

謝謝。我想我應該在數學社區提出這個問題。 –

回答

0

您可以輕鬆地解決#1對於B消除這些方程之一。然後用它來爲你解決#2。

你將不得不使用一種迭代方法來做到這一點:猜測一個解決方案,計算一個估計,比較你的猜測,調整和重複,直到你收斂。

我會使用數值積分(5階Runge-Kutta或其他)來計算積分。

2

我真的不確定這個問題真的屬於這裏。但理論上解決方案很簡單。等式1作爲u的函數對b進行平凡解。代入公式2,其中b只出現一個地方。

現在,你可以在新的等式2上使用一個rootfinder,求解滿足這個關係的u的值。給定u的值,可以使用自適應數字正交例程來進行積分。在MATLAB中,這將是像quadgk。 (不要打擾ODE解算器,因爲它們給你的信息比你需要的多,你只需要整體積分。)

事實上,雖然積分中的內核是變量t的簡單多項式,和u^10因素的積分。因此,第一學期微積分將通過手工進行整合,儘管需要一些鉛筆和紙張。或者,符號工具箱就足夠了。解決這個問題的一條線就足夠了,雖然這將是一條很長的路線,而我卻懶得寫它。

說了這麼多之後,請注意數值積分都會有點問題,因爲你的數字很討厭而且很龐大,而且指數很大。因此,這也意味着你非常想象徵性地做解決方案。

真的,這個答案的重點在於,在這個問題上拋出一個數值求解器是一個壞主意,特別是當像符號工具箱(或鉛筆和紙!)這樣的工具已經足夠且可用時。