我试图模仿ContinuousCallback的第一个示例(弹跳球),并将回调条件更改为:
function condition(u,t,integrator)
t % 5
end这意味着我希望每5个时间单元触发一次事件(定义为函数affect!(integrator))。但是,没有触发任何事件。我可以将condition更改为(t-5)*(t-10)*(t-15)等,但这并不能概括到t是5的倍数的每一个时间点。
发布于 2022-10-09 06:59:31
在周期性时间点获得回调的最简单方法是从预构建回调的PeriodicCallback库中使用DiffEqCallbacks.jl。事实上,我强烈建议这样做,因为它有一些技巧可以解决可能出现的浮点问题。文档是在这里发现的,它的使用方式如下:
PeriodicCallback((integrator)->integrator.u += 3, 5)这样,在每一个5时间单位,积分器就会增加3。
https://stackoverflow.com/questions/58114027
复制相似问题