Ode45 в MATLAB. Как изменить параметр внутри него при вызове?
Я новичок в Matlab. Надеюсь, вы сможете мне помочь. Я должен решить систему оду, используя функцию ODE45. Вот функция, которая описывает мои уравнения.
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.
Примечание Ф. параметра
%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-файл я вызываю функцию ode45 в "for loop". Во время каждой итерации я должен изменить параметр 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
спасибо заранее.
1 ответов
вы хотите сделать F
аргумент вашей производной функции и передайте правую анонимную функцию в ode45
:
[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)