问题描述
我是 Matlab 的新手.我希望你能帮助我.我必须使用 ODE45 函数解决一个 ODE 系统.这是描述我的股票的函数.
I'm new with Matlab. I hope you can help me.I have to solve a system of ODEs using ODE45 function. Here is the function which describes my equitions.
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.
注意参数 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
然后,在我的脚本 .m 文件中,我在for 循环"中调用 ode45 函数.在每次迭代期间,我必须更改参数 F 并将其传递给我的 'rateEquations' - 函数.但我不知道如何实现.
Then, in my script .m-file i call the ode45 function in 'for loop'. During each iteration i have to change the parameter F and pass it to my 'rateEquations' - function. But i don't know how to realize it.
for T = Tmin: dt : Tmax
%initial conditions
initialConditions = [N0 0 0];
timeSpan = [T T+dt];
在调用 ODE45 之前 F 是要更改的.
before calling ODE45 F is to be changed.
[t,N] = ode45('rateEquations', timeSpan, initialConditions)
等等......
end
提前致谢.
推荐答案
你想让 F
成为你的衍生函数的参数,并将正确的匿名函数传递给 ode45
:
You want make F
an argument of your derivative function and pass the right anonymous function to ode45
:
[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)
这篇关于Matlab ode45.如何在调用时更改其中的参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!