How can I stop ode45 when certain derivative is negative?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Juan Manuel Hussein Belda
am 30 Nov. 2021
Kommentiert: Juan Manuel Hussein Belda
am 30 Nov. 2021
I have a set of differential equations which I am trying to integrate.
I have created this function in order for the integration to stop when a value is reached:
function [value, isterminal, direction] = myEventFunction(t, Y, c0_CO)
tol = 0.001;
value = Y(1) - 0.001*c0_CO;
isterminal = 1; % Stop the integration
direction = 0;
end
However, I would like to add another condition for value, and it is
value = (Y(1) - 0.001*c0_cO) || (dYdt(6) < 0)
I have been trying many things but I am failing at making dYdt an input for this function, and I do not know how to check it otherwise and stop it.
If anyone could help me with this I would really appreciate it :)
0 Kommentare
Antworten (1)
Steven Lord
am 30 Nov. 2021
Your events function can return a vector of values and detect an event if any of the elements of that vector crosses zero. See the advanced example on this documentation page for an illustration of this technique.
edit orbitode
2 Kommentare
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!