Question: What is the correct syntax for a dsolve numeric discrete event with a conditional trigger?

The conditional trigger in the code below does not cause a halt although odeplot shows x dipping to a value below 2.

What is the correct coding of this event to cause a halt when x becomes less than 2?

Does any Maple documentation show examples of working discrete events with conditional triggers?


DE1 := diff(x(t), t, t) = -x(t)-(diff(x(t), t))+y(t);

DE2 := diff(y(t), t, t) = y(t)-(diff(y(t), t))+x(t);

ICs := x(0) = 2, (D(x))(0) = 1, y(0) = 0, (D(y))(0) = 1;

sol1 := dsolve({DE1, DE2, ICs}, {x(t), y(t)}, numeric, event_initial = true, events = [[[0, x(t) < 2], halt]]);

plots:-odeplot(sol1, [t, x(t)], t = 0 .. 3);

Please Wait...