ode for different time intervals

1 view (last 30 days)
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.

Accepted Answer

Walter Roberson
Walter Roberson on 17 Aug 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, :)) ;

More Answers (1)

Sam Johnson
Sam Johnson on 23 Aug 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!