how to stop ode45 when one of states reach certain value

M
Mohamed Aburakhis · Oct 23, 2023 · 2K views
Question
[x_dot] =derivative(t, x)   x is states [x(1).....x(4)] I need to stop the integration when x(3) reaches 0.1 when the integration stop record (t)
Expert Answer
Profile picture of John Michell
John Michell PhD Expert
Answered Aug 13, 2026

Opt    = odeset('Events', @myEvent);
[T, Y] = ode45(@YourFun, T, Y0, Opt);

function [value, isterminal, direction] = myEvent(T, Y)
value      = (Y(3) == 0.1);
isterminal = 1;   % Stop the integration
direction  = 0;

Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!