jac*_*mg4 6 matlab function handle solver ode
我是Matlab的新手.我希望你能帮助我.我必须使用ODE45函数来解决一个ODE系统.这是描述我的等同的功能.
function dNdt = rateEquations(t, y)
%populations of corresponding state
Ng = y(1);
Ns = y(2);
Nt = y(3);
%All constants used are dropped for the sake of easy reading.
Run Code Online (Sandbox Code Playgroud)
注意参数F.
%rate equations
dNs = s0 * Ng * F - Ns/ t_S1;
dNt = Ns / t_ISC - Nt / t_T1;
dNg = -dNt - dNs;
dNdt = [dNg; dNs; dNt];
end
Run Code Online (Sandbox Code Playgroud)
然后,在我的脚本.m文件中,我在'for循环'中调用ode45函数.在每次迭代期间,我必须更改参数F并将其传递给我的'rateEquations' - 函数.但我不知道如何实现它.
for T = Tmin: dt : Tmax
%initial conditions
initialConditions = [N0 0 0];
timeSpan = [T T+dt];
Run Code Online (Sandbox Code Playgroud)
在调用ODE45 F之前要更改.
[t,N] = ode45('rateEquations', timeSpan, initialConditions)
Run Code Online (Sandbox Code Playgroud)
等等 ...
end
Run Code Online (Sandbox Code Playgroud)
提前致谢.
你想要F你的衍生函数的参数,并将正确的匿名函数传递给ode45:
[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)
Run Code Online (Sandbox Code Playgroud)