我正在使用ode45并希望在解决方案达到零时停止按事件功能进行集成。我需要的是事件函数来返回ME“标志”。这意味着每当事件发送一个停止标志到ode45停止时,这个停止标志(无论它是什么)也会发送给我。
感谢
答案 0 :(得分:1)
[T,Y,TE,YE,IE] = solver(odefun,tspan,y0,options)
解决了上述问题 还找到了(t,y)
的函数,称为事件函数 零。对于每个事件函数,指定集成是否为 终止于零和是否过零的方向 事项。通过将'Events'
属性设置为函数来执行此操作,例如,events
或@events
,并创建一个函数[value,isterminal,direction] = events(t,y)
。对于第i个事件函数 在events
,
value(i)
是函数的值。isterminal(i) = 1
,如果整合将在此事件的零点>函数处终止,否则为0。direction(i) = 0
如果要计算所有零(默认值),+1
(如果只有事件函数增加的零),-1
如果只有事件函数减少的零。
TE
,YE
和IE
中的相应条目分别返回 事件发生时,事件发生时的解决方案和索引i
消失的事件功能。
事件函数通过options
参数设置,odeset
函数