不连续rs ODE的数值方法


15

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

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

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

嗨@AndreyShevlyakov,欢迎来到Scicomp!您是否对特定类别的ODE感兴趣?
保罗

嗨,保罗!是的,我目前正在尝试实现一种粘滑摩擦模型。
Andrey Shevlyakov 2012年

您能否在问题中包含要求解的方程式?这将有助于缩小适用于您问题的特定方法的范围。
保罗

我在帖子中添加了示例
Andrey Shevlyakov 2012年

1
当我研究ACSL时,它包括一个寻根器,因此您可以使它搜索速度等于零的时间,然后从该点开始使用新的rhs重新开始。
Mike Dunlavey 2012年

Answers:


13

请参阅David Stewart在此主题上的新书(2011年),《不平等的动力学:影响和硬约束》。分析章节中多次提到库仑摩擦问题。

第8章专门介绍非光滑ODE和DAE的数值方法。它主要提倡对非光滑性进行特殊处理的完全隐式Runge-Kutta方法。请注意第8.4.4节,该节指出,如果您未准确定位非平滑点,则所有方法都会降级为一阶精度,因此隐式欧拉(对非平滑进行了修改)在实践中很流行。此外,与无限维不等式问题的解决方案通常不分段平滑的,因此理论上仅提供øħ 1 / 2会聚,尽管在实践中,Ôħ O(h)O(h1/2)O(h) 经常被观察到。


太谢谢了!您知道某处是否有可用的实现?
Andrey Shevlyakov 2012年

这不是我所知道的,但是如果您有一个静态变分不等式的求解器,那么简单方案的实现就不会太困难。
杰德·布朗


2

g(t,x(t))R>0<0

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

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


出于搜索目的:人们还可以说“事件地点”;Hairer /Nørsett/ Wanner对此进行了很好的讨论。
JM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.