combining ODE_FUNC and EVENT_FUNC for ODE solvers

1 次查看(过去 30 天)
I'm solving a non-stiff non-linear ODE problem using matlab's ODE23/ODE45 solvers. I have a transition in the model which I handle with an EVENT_FUNC. The value X that the EVENT_FUNC checks requires a sizable calculation.
My problem is that I already need to calculate X in my ODE_FUNC. Because the EVENT_FUNC is a separate thing, I have to calculate X twice which is not efficient.
My question is; is there any way to combine the ODE_FUNC and EVENT_FUNC such that the ODE_FUNC returns X together with all the other 2 parameters required by the EVENT_FUNC such that I don't have to perform the same computation twice.
Any suggestions / solutions are much appreciated.

回答(1 个)

Torsten
Torsten 2015-7-6
Define X as global in ODE_FUNC and EVENT_FUNC.
Then check whether you can use the (last) value for X calculated in ODE_FUNC also in EVENT_FUNC (i.e. whether t and y as input parameters are the same).
Best wishes
Torsten.

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by