ode for different time intervals

6 visualizzazioni (ultimi 30 giorni)
Nivedhitha S
Nivedhitha S il 17 Ago 2019
Risposto: Sam Johnson il 23 Ago 2020
Hello all,
I have a question regarding applying ode for different time intervals within a set of differential equations. For eg, I have a set of 6 DE of which few eqns has to be integrated over the entire tspan while 1 equation has to be active only after acertain time point (something like two phases of experiment). How can i achieve that in matlab? Should i create nested functions or should i create separate functions and call them in a mian file? I am totally confused. Since few parameters are interdependent I am unable to create separate functions for separate eqns. Please give me some sugestions.

Risposta accettata

Walter Roberson
Walter Roberson il 17 Ago 2019
It is valid to test
if t < stoptime1
inside an ode function. However, you need to make two calls to ode45
[t1, y1] = ode45(f, [0, stoptime1], y0) ;
[t2, y2] = ode45(f, [stoptime1,stoptime2], y1(end, :)) ;

Più risposte (1)

Sam Johnson
Sam Johnson il 23 Ago 2020
[t,x] = ode45(@(t,x) x.*(4-x), [0,5], -2.0:4.0:6.0);
plot(t,x)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by