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-file で、「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 に答える