How to stop ode integration?
2 次查看(过去 30 天)
显示 更早的评论
I'm trying to solve a differential equations system with ode45 solver. But sometimes integration takes too much time because one of three values in the system becomes too small. As I understood I should use an event in ode function.
function [value,isterminal,direction] = events(t,y)
value = y(1) - 0.0000001;
isterminal = 1;
direction = 0;
How to write the event not just only for one y value, but for all three of them?
0 个评论
采纳的回答
Walter Roberson
2014-2-6
function [value,isterminal,direction] = events(t,y)
miny = [0.0000001, 0.000000025, -83.9]; %for example
value = y < miny;
isterminal = 1;
direction = 0;
2 个评论
Walter Roberson
2014-2-6
Ah, it should probably be
isterminal = ones(size(y));
direction = zeros(size(y));
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!