ode for different time intervals

10 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2019-8-17
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, :)) ;

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by