Event Detecting in Event-based ODE
조회 수: 4 (최근 30일)
이전 댓글 표시
Greetings. I'm trying to detect an event of a variable value crossing tha value of zero. The problem I'm facing is that the ode solver is detecting the value at 0.1*(1.0e-14) instead of zero. I'm using ode45 and the odeset options below:
ODEopts = odeset('Events', @event, 'Refine', 8, 'RelTol',...
10^-6, 'AbsTol', 10^-6);
Can I solve this issue by changing the options or the solver?
Thanks in advance
댓글 수: 0
채택된 답변
Bjorn Gustavsson
2021년 6월 11일
In order to advice the contents of the event-function is necessary. The only thing to point out is that the ode-solvers use numerical precision of 32-bit(?) doubles - and 1e-14 look like a "reasonable default" setting of zero-detection. If your use-case is something on atomic scales and you use metres as units for your spatial coordinates (convert to what is sensible to your case) then 1e-14 m is clearly not a good enough precision for an event, but ode45 wouldn't know. Your easiest way forward is then to rescale the ODEs to use Å for your spatial coordinates.
HTH
댓글 수: 2
추가 답변 (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!