我需要解决一个涉及变量中一个变量的非线性方程
例如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。但我认为这不是最好的方式。
答案 0 :(得分:1)
您可以使用匿名函数将参数传递到目标函数中
首先定义一个目标函数,该函数采用两个参数x
和 t
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