Verlet integration公式推导

Verlet integration 是一种用于数值积分牛顿运动方程的方法,以下是其推导过程:

基于泰勒展开的推导

  • 设粒子的位置矢量为 \(x(t)\),速度为 \(v(t)\),加速度为 \(a(t)\),根据泰勒公式,有:

\[\begin{align*} x(t+\Delta t) &=x(t)+v(t)\Delta t+\frac{1}{2}a(t)\Delta t^2+\frac{1}{6}c(t)\Delta t^3+O\left(\Delta t^4\right) \\ x(t-\Delta t) &=x(t)-v(t)\Delta t+\frac{1}{2}a(t)\Delta t^2-\frac{1}{6}c(t)\Delta t^3+O\left(\Delta t^4\right) \end{align*} \]

  • 将上述两式相加,得到:

\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2+O\left(\Delta t^4\right) \]

  • 这样,就可以根据当前时刻 \(\Delta t\) 和前一时刻 \(t-\Delta t\) 的位置以及当前时刻的加速度来计算下一时刻 \(t+\Delta t\) 的位置,忽略高阶无穷小项 \(O\left(\Delta t^4\right)\),得到 Verlet integration 的基本公式:

\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2 \]

从二阶导数的中心差分近似推导

  • 二阶导数的中心差分近似公式为:

\[\frac{d^2x}{dt^2}=\frac{x(t+\Delta t)-2 x(t)+x(t-\Delta t)}{\Delta t^2}+O\left(\Delta t^2\right) \]

  • 根据牛顿运动定律 \(a(t)=\frac{d^2x}{dt^2}\),将其代入上式,得到:

\[a(t)=\frac{x(t+\Delta t)-2 x(t)+x(t-\Delta t)}{\Delta t^2}+O\left(\Delta t^2\right) \]

  • 整理可得:

\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2+O\left(\Delta t^4\right) \]

  • 同样忽略高阶无穷小项 \(O\left(\Delta t^4\right)\),得到 Verlet integration 的基本公式。

Velocity Verlet 算法的推导

  • Velocity Verlet 算法在基本 Verlet integration 的基础上,引入了速度的计算。其推导过程如下:
  • 首先,根据泰勒展开,位置和速度的更新公式分别为:

\[\begin{align*} x(t+\Delta t) &=x(t)+v(t)\Delta t+\frac{1}{2} a(t)\Delta t^2 \\ v(t+\Delta t) &=v(t)+\frac{1}{2}\left[a(t)+a(t+\Delta t)\right]\Delta t \end{align*} \]

  • 在实际计算中,先计算位置更新:

\[x(t+\Delta t)=x(t)+v(t)\Delta t+\frac{1}{2} a(t)\Delta t^2 \]

  • 然后计算新的加速度 $a(t+\Delta t)$,再根据新的加速度计算速度更新:

\[v(t+\Delta t)=v(t)+\frac{1}{2}\left[a(t)+a(t+\Delta t)\right]\Delta t \]

  • 这样,Velocity Verlet 算法在计算位置和速度时,使用了当前和新的加速度信息,提高了计算精度。
posted @ 2025-04-18 18:20  alphacheng  阅读(100)  评论(0)    收藏  举报