Julia 如何求解具有静默期的微分方程(使用differential equations.jl)?

Julia 如何求解具有静默期的微分方程(使用differential equations.jl)?,julia,Julia,我想解一个有“静默期”的微分方程(我不确定它是否有正式名称,这意味着在这个期间系统是静态的,不受微分方程的控制) 例如(见图),当自由落体球触地时,将触发回调函数。它进入这个“静默期”(图中的虚线),在此期间之后,它继续遵循微分方程(参数可以改变或不改变,如图I重置球的高度) 我知道它可以通过for循环完成,但目前我尝试使用differentialsequations.jl,所以我想知道是否可以设置回调或使用其他方法来完成它 提前谢谢你 最简单的方法是使用离散回调函数将参数设置为零,并让第二个

我想解一个有“静默期”的微分方程(我不确定它是否有正式名称,这意味着在这个期间系统是静态的,不受微分方程的控制)

例如(见图),当自由落体球触地时,将触发回调函数。它进入这个“静默期”(图中的虚线),在此期间之后,它继续遵循微分方程(参数可以改变或不改变,如图I重置球的高度)

我知道它可以通过for循环完成,但目前我尝试使用differentialsequations.jl,所以我想知道是否可以设置回调或使用其他方法来完成它


提前谢谢你

最简单的方法是使用
离散回调函数将参数设置为零,并让第二个回调函数将其取消为零。更详细地描述如何定义和使用此类回调。

您可以使用
离散回调将参数翻转为零,将所有派生项归零,并在静默期后将其关闭。这个想法很好,谢谢!但是我如何在周期结束后切换回参数?就像动态设置另一个回调函数一样?另一个问题,为什么不像中的示例那样使用
ContinuousCallback
?只需让您的回调检查两个值,然后根据
t
执行不同的操作
ContinuousCallback
的成本稍高一些,主要用于隐式定义时间而不是已知时间的情况。