Loading [MathJax]/jax/output/CommonHTML/jax.js

2019年12月3日火曜日

蛙飛び法

ファインマン物理学の第I巻の第9章蛙跳び法による運動のシミュレーションが取り上げられている。バネの運動の場合,運動方程式は,m¨x=kxであるが,これを˙x=v˙v=k/mx=λxとしてオイラー法を適用する。ϵ=tn+1tn, fn=f(tn)などとして,
前進差分は,
xn+1=xn+ϵvnvn+1=vnλϵxn
後退差分は,
xn+1=xn+ϵvn+1vn+1=vnλϵxn+1
中心差分は,
xn+1=xn1+2ϵvnvn+1=vn12λϵxn
中心差分の片方をずらすと蛙跳び法の表式が得られる。
xn+2=xn+2ϵvn+1vn+1=vn12λϵxn
一方,前進差分と後退差分は,次のように表せる。
(xn+1vn+1)=(1ϵλϵ1)(xnvn)(1ϵλϵ1)(xn+1vn+1)=(xnvn)
陰解法となっている後退差分を解いてo(ϵ2)まで考えると,
(xn+1vn+1)=(11+λϵ2ϵλϵ11+λϵ2)(xnvn)
前進差分と後退差分の平均をとると,中心差分に相当するものが得られる。
(xn+1vn+1)=(1λϵ2/2ϵλϵ1λϵ2/2)(xnvn)

0 件のコメント: