不连续 rs ODE 的数值方法

计算科学
2021-11-28 23:37:26

具有不连续右侧的 ODE 数值解的最先进方法是什么?我最感兴趣的是分段平滑的右侧函数,例如符号。

我正在尝试解决以下类型的方程:

x˙=vv˙={(|Fexternal||Ffriction|)sign(Fexternal):|Fexternal|<|Ffriction|0:otherwise

3个回答

请参阅David Stewart关于此主题的新书(2011 年),Dynamics with Inequalities: Impacts and Hard Constraints库仑摩擦问题在分析章节中多次提及。

第 8 章专门讨论非光滑 ODE 和 DAE 的数值方法。它主要提倡完全隐式的 Runge-Kutta 方法,并对非光滑进行特殊处理。请注意第 8.4.4 节指出,如果您不能准确定位非平滑点,所有方法都会降低到一阶精度,因此隐式欧拉(对非平滑进行修改)在实践。此外,无限维不等式问题的解决方案通常不是分段平滑的,因此该理论仅提供收敛性,但在实践中,通常是观测到的。O(h)O(h1/2)O(h)

我所知道的最重要的参考资料是大卫斯图尔特的论文,它已有 20 多年的历史:

右手边不连续常微分方程的高精度数值方法

摘要引用了几部重要的早期作品。这里的一个关键词是差异包含

正如 Mike Dunlavey 在评论中已经指出的那样,这通常使用所谓的过零函数来完成,即函数交叉到 (反之亦然)当 RHS 具有不连续性时。g(t,x(t))R>0<0

例如,如果您有一个带有块的移动质量,则质量与块之间的距离可以用作过零函数。

许多 ODE 求解器(例如 SUNDIALS CVODE)会自动检查是否有任何过零函数在最后一个时间步中改变了符号。如果是这种情况,则使用根查找方法来确定根的确切位置。然后可以在该特定位置重新启动求解器。这可以由求解器本身自动完成,也可以由调用代码手动完成。