我正在使用ode45,並希望通過事件函數停止集成時,解決方案達到零。我需要的是事件函數返回我一個「標誌」。這意味着每當事件發送停止標誌到ode45停止,這個停止標誌(不管它是什麼)也會發送給我。MATLAB事件函數傳遞給我一個標誌,當它發送一個到ode45在同一時間
感謝
我正在使用ode45,並希望通過事件函數停止集成時,解決方案達到零。我需要的是事件函數返回我一個「標誌」。這意味着每當事件發送停止標誌到ode45停止,這個停止標誌(不管它是什麼)也會發送給我。MATLAB事件函數傳遞給我一個標誌,當它發送一個到ode45在同一時間
感謝
[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
direction(i) = 0
如果要計算所有零(默認值),如果只有事件函數增加的零點,則爲+1
,如果只有事件函數減少的零點,則爲-1
。在TE
,YE
,和IE
回報,分別相應的條目,在該一個 事件發生時,在該事件發生時的溶液中,並將索引消失事件功能的
i
的時間。
事件功能是通過options
參數設置,與odeset
功能
謝謝。它看起來像我在找什麼。 –
你的問題不是很清楚。如果事件函數檢測到零並停止集成,則「ode45」停止並返回其輸出。你還需要什麼?這個標誌是什麼,你期望它到底在哪裏?您可以查看我的一些相關問題的答案,其中提供了有關如何使用(以及如何不使用)事件檢測的示例:[\ [1 \]](http://stackoverflow.com/a/15992197/2278029) ,[\ [2 \]](http://stackoverflow.com/a/16681767/2278029),[\ [3 \]](http://stackoverflow.com/a/20429657/2278029)和[\ [4 \]](http://stackoverflow.com/a/17370733/2278029)。 – horchler
謝謝。該標誌是在這個聲明中的IE [T,Y,TE,YE,IE] =求解器(odefun,tspan,y0,options) 我需要它來進行一些關於我感興趣問題的數值計算的穩定性研究。 –