SSブログ

ネムネコ、リープ・フロッグ(蛙飛び)法で単振動を計算する [数値解析]

ネムネコ、リープ・フロッグ(蛙飛び)法で単振動を計算する

 

物理で最も基本的な運動の一つに単振動(一次元調和振動子)というものがある。

ニュートンの運動方程式は

ここで、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をとった位相図。

 

厳密解は、

だから、

になるのですが、リープ・フロッグ法で解いた真円と見間違うほど綺麗な円を描く。


さらに、t=200までの2000ステップまで伸ばし計算を進めても、ルンゲ・クッタ法などとは違って、リープ・フロッグ法はエネルギー保存則を常に一定の誤差範囲の中で満たすので綺麗な円軌道を描く。

 

 

これに対して、リープ・フロッグ法と同程度の離散誤差をもつ2次のルンゲクッタ法を用いてこの問題を解いた場合、時間の経過とともに、誤差の伝播のためにエネルギーが増加し、軌道がx²+v²=1から徐々に徐々に離れていく。

 

 

スゴイにゃ、リープ・フロッグ法。


nice!(1)  コメント(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。