2012-09-29 123 views
0

我需要知道如何求解一個非線性方程組但是改變一個參數,這樣每次你改變這個參數後都會拋出該系統的結果(需要所有結果),我以爲因爲,這是改變參數,解決方程,每個結果存儲在一個電子表格,問題是,因爲你不能解決系統,因此我拋出和非符號數值,他們給你一個例子必須解決系統:在matlab中求解非線性方程

0 = 125 +100 * cos (x) -25 * cos (a) -175 * cos (y) 
0 = 100 * sin (x) -25 * sin (a) -175 * sin (y) 

在參數改變是a和要去保持的xy相應的值在SP readsheet。

+1

親愛的曼紐爾,歡迎來到SO。請詳細說明一下數字和代碼的具體例子。我們可以幫助你更好。 –

+0

謝謝,我會盡力的 –

回答

1

您需要知道如何求解非線性方程組。這意味着選擇一個起點,創建一個遞增的迭代解決方案,並提供停止容差。您需要知道,並非每個非線性方程都有解決方案。您選擇的出發點和迭代策略可能會對您是否能找到解決方案和流程效率產生深遠影響。

你在這裏解決什麼問題?你有兩個方程;我會假設兩個未知數(x,y)。

您需要更多基本信息才能使用像Matlab這樣的工具。它可能爲你封裝了很多細節,但它不會爲你選擇算法。你仍然需要知道什麼,特別是關於你的方程組。

開始通過閱讀這樣的東西:

http://www.physicsforums.com/archive/index.php/t-106606.html

我建議你在一定範圍內的x和y的策劃你的方程。在開始之前,你應該知道地形的樣子。你正在處理trig函數,所以x和y從0變到2 π然後重複。繪製幾個x和y的時間段,看看你回來了什麼。

0

可以用Matlab的符號求解如果你有象徵性的工具箱...

syms x y a 
b(1) = 100 * sin (x) -25 * sin (a) -175 * sin (y) 
b(2) = 125 +100 * cos (x) -25 * cos (a) -175 * cos (y) 
z  = solve(b,x,y) 
Xsoln = simplify(z.x) 
Ysoln = simplify(z.y) 

其中XsolnYsoln表示寫在a價值方面的解決方案。然後,您可以通過做

aval = 0.5; % or whatever value you want 
subs(Xsoln,a,aval) 

或解決方案轉換爲功能手柄進行評價,這樣評價在a多個值的解決方案(這是首選的方法,如果你需要在多個點來評估) :

xf = matlabFunction(Xsoln) 
xf(0.5)