2013-11-25 86 views
1

我需要求解包含變量中的一個變量的非線性方程。
例如f(x)=x^1.9+(1-x)*(1-2*x)-1.2545=0在參數的不同值處求解非線性方程

但是,有小的併發症。該公式還涉及一個參數,如t,我需要解出我在矢量中定義的各種t值的公式。

t=0.1:0.1:5.0; 
f(x)=t*x^1.9+...+52.25*t=0 
solution=[solutions for each value of t] 

我該如何解決這個問題? 我已經考慮過對字符串進行拼接,然後用它構建一個內聯函數,然後使用fsolve。但我認爲這不是最好的方法。

回答

1

您可以使用匿名函數將參數傳遞到目標函數中。
首先定義一個目標函數,它參數xt

myFun = @(x, t) t.*x.^1.9 + (1 - x).*(1 - 2 * x) + 52.25*t; 

現在你可以在每次改變t

ts = 0.1:0.1:5; 
for ti = 1:numel(ts) 
    t = ts(ti); % current value for t 
    solution(ti) = fsolve(@(x) myFun(x, t), x0); 
end 
+0

謝謝....我想這是怎麼回事工作。我會盡快測試.. – tumchaaditya

+0

它工作....再次感謝 – tumchaaditya