求解不同参数值的非线性方程

时间:2013-11-25 02:12:16

标签: matlab

我需要解决一个涉及变量中一个变量的非线性方程 例如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 个答案:

答案 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