ネムネコ、リープ・フロッグ(蛙飛び)法で単振動を計算する [数値解析]
ネムネコ、リープ・フロッグ(蛙飛び)法で単振動を計算する
物理で最も基本的な運動の一つに単振動(一次元調和振動子)というものがある。
ニュートンの運動方程式は
ここで、mは(質点の)質量、ωは角振動数(角速度)であり、xは(質点の重心の)位置、tは時刻である。
m>0なのだから、この方程式は
としてもいいよね。
さて、
とおくと、(2)式は次のようになる。
したがって、2階微分方程式(2)と次の1階の連立微分方程式は同じもの。
微分の合成公式から
になるので、(6)式は
これは何かといえば、(力学的)エネルギー保存則を表しているにゃ。
(2)式をさらに一般化し、
とすると、(7)は次の連立微分方程式になる。
そして、今回紹介するリープ・フロッグ(蛙飛び)法は、
という初期値問題を
という漸化式に書き換え、(10)、(11)から求まるを微分方程式の解の近似解にするもの。
(10)に関しては、テーラー展開
から直ちに出るし、と考えれば、微分方程式(9)は
となり、これを積分すると、
この右辺の積分を台形公式で近似すれば
となるので、
になる。
したがって、(10)、(11)の(離散化)誤差はO((Δt)³)で、修正オイラー法、2次のルンゲ・クッタ法と同程度ということになる。
通常、これとは違った導出をするのですが、同じ結果が得られるので、構いやしないや(^^ゞ。
Δt=0.1として、t=20までの200ステップを、このリープ・フロッグ法、蛙飛び法を用いて、
を解いてみたにゃ。
こちらがその結果。
特に見て欲しいのが、横軸にx、縦軸に速度vをとった位相図。
厳密解は、
だから、
になるのですが、リープ・フロッグ法で解いた真円と見間違うほど綺麗な円を描く。
これに対して、リープ・フロッグ法と同程度の離散誤差をもつ2次のルンゲクッタ法を用いてこの問題を解いた場合、時間の経過とともに、誤差の伝播のためにエネルギーが増加し、軌道がx²+v²=1から徐々に徐々に離れていく。
スゴイにゃ、リープ・フロッグ法。
コメント 0