ファインマン物理学の第I巻の第9章に蛙跳び法による運動のシミュレーションが取り上げられている。バネの運動の場合,運動方程式は,m¨x=−kxであるが,これを˙x=vと˙v=−k/mx=−λxとしてオイラー法を適用する。ϵ=tn+1−tn, fn=f(tn)などとして,
前進差分は,
xn+1=xn+ϵvnvn+1=vn−λϵxn
後退差分は,
xn+1=xn+ϵvn+1vn+1=vn−λϵxn+1
中心差分は,
xn+1=xn−1+2ϵvnvn+1=vn−1−2λϵxn
中心差分の片方をずらすと蛙跳び法の表式が得られる。
xn+2=xn+2ϵvn+1vn+1=vn−1−2λϵ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 件のコメント:
コメントを投稿