6
我是新來的Matlab。我希望你能幫助我。 我必須解決使用ODE45函數的ODE系統。這是描述我的平等的功能。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.
注意參數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文件我調用ODE45函數 'for循環'。在每次迭代中,我必須更改參數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
在此先感謝。
是啊,它的工作原理。非常感謝。這就是我正在尋找的東西。 :) – jacksonslsmg4
你也可以用全局變量來做到這一點。但我試圖使用並行計算(parfor),並不喜歡全局變量。但是這對parfor有用。 – fibonatic
@Nzbuu,如果我這樣做,我需要使用插值? – kyle