速度 Verlet 方法和可变时间步长

计算科学 数字 时间积分 分子动力学
2021-12-19 23:46:39

速度 Verlet 是否处理可变时间步长?我发现了关于它的有争议的陈述。

在论文Skeel, RD 中,“可变步长使 Stömer/Leapfrog/Verlet 方法不稳定”,BIT 数值数学,卷。33, 1993, p. 172–175。作者证明了 Verlet 方法,包括越级(速度)Verlet

xi+1=xi+viΔt+12aiΔt2

vi+1=vi+12(ai+ai+1)Δt

具有可变时间步长的有稳定性问题。

Leapfrog 方法的维基百科文章这个stackoverflow 答案提出了替代公式

vi+1/2=vi+12aiΔt

xi+1=xi+vi+1/2Δt

vi+1=vi+1/2+12ai+1Δt

可变时间步长的速度 Verlet。

嗯,这很奇怪。这两个公式在数学上是等价的,第二个公式仅针对显式半步速度项重新排列vi+1/2- 如果我们将这个术语替换回来,那么我们会得到原始的速度 Verlet 公式。

为什么第一个公式会失败,而第二个公式在可变时间步长下仍然正确?

1个回答

第二个公式只是速度verlet,它是正确的,但是如果您调整时间步长,那么它就不是辛的。在一个单独的答案中,我非常详细地描述了辛性是集成的全局属性,它不是逐步属性。因此,局部误差估计和局部变化Δt不一定保留财产。事实上,大多数选择都会破坏这个属性。

它不一定容易修复,但我可以提一下它的要点。您需要做的是扩展您的哈密顿系统,使自变量s(t)成为哈密顿的一部分,然后您可以s以保持在流形上的方式进行更改。对 的函数的这种选择s,称为“步长函数”,需要在您的哈密顿量上附加一些时间条件。所得到的方法通常隐含在步长函数中,因此它不一定容易实现或易于编码,这就是为什么它仍然是一个活跃的研究领域而不是通常使用的原因。第 8 章Hairer几何数值积分的结构保持实现是该主题的一个很好的资源,所以我将把细节推迟到那个地方。本章的预览可能会让您着迷)。