6

我是 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.

注意参数 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” - 函数。但我不知道如何实现它。

for T = Tmin: dt : Tmax
  %initial conditions
  initialConditions = [N0 0 0];
  timeSpan = [T T+dt];

在调用 ODE45 F 之前要更改。

  [t,N] = ode45('rateEquations', timeSpan, initialConditions)

等等 ...

end

提前致谢。

4

1 回答 1

7

你想F为你的派生函数做一个参数并将正确的匿名函数传递给ode45

[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)
于 2011-10-06T20:46:35.410 回答