ニュートンの運動方程式

ニュートンの運動方程式においてある物体にかかる力 F 、質量 m、加速度 a の関係は以下のようになっています。

F=ma

加速度 a は速度 v の微分であり、速度は位置 r の微分であるため、運動方程式は位置 r の 2 階微分により以下のように書くことができます。

d2dt2r=F(t)m=a

これは加速度 a と位置 r の関係を表した微分方程式であり、これを解くことで物体の運動を計算することができます。 ある t における加速度 a(t) が数式で表されている場合は Runge-Kutta 法を用いることで高い精度で解を得ることができます。 しかし、複数の物体が複雑に相互作用する場合にはそれが困難になるため、他の方法を考える必要があります。

速度 Verlet 法

r(t)t0 のまわりでのテイラー展開は以下のようになります。

r(t)r(t0)+(tt0)v(t0)+(tt0)22a(t0)

t0 から微小時間 Δ 変化した時の位置 r(t+Δ) は、上の式の t=t0+Δ のときで得られます。

r(t0+Δ)r(t0)+Δv(t0)+Δ22a(t0)

これは位置 r(t) の更新式となります。

上と同様に、r(tΔ) は以下のようになります。

r(t0Δ)r(t0)Δv(t0)+Δ22a(t0)

これらを整理すると、以下の v(t) の更新式が得られます。

v(t0+Δ)v(t0)+Δ2(a(t0+Δ)+a(t0))

すなわち、ある時刻 t における加速度 a(t) が現在の位置 r(t) によって得られたら、速度 v(t+Δ) と位置 r(t+Δ) を更新していくことができます。

速度 Verlet 法は、粒子同士の衝突を考慮する場合など、粒子にかかる力が刻一刻変化する場合に適していて、実際に分子動力学シミュレーションなどの分野で使用されています。

簡易版速度 Verlet 法

速度 Verlet 法では一般的には 2 次のテイラー展開が使用されます。 物理現象を正確に再現するためには精度が必要です。 しかし、次回以降で扱うネットワーク可視化では、粒子間の物理的な相互作用をメタファーにしますが、現象の再現ではないため精度は必要ありません。 そのため、より簡易的な更新式を用いることができます。

1 次のテイラー展開を用いて、Δ=1 とすれば、更新式は以下のようになります。

r(t+1)=r(t)+v(t)v(t+1)=v(t)+a(t)

すなわち、2 次元空間上の現在の座標 r=(x,y) と速度 v=(vx,vy) が得られており、加速度 a=(ax,ay) を計算することができるとき、以下のような手順で座標を更新できます。

x += vx;
y += vy;
vx += ax;
vy += ay;

大雑把な説明として、Verlet 法とは加速度を用いて速度を更新し、速度を用いて物体の座標を更新していく方法です。

results matching ""

    No results matching ""