gnuplotでピタゴラス三体問題 Part 2 – モデリング・運動方程式

記事内に広告、プロモーション、アフィリエイトリンクが含まれます。これらを通して購入すると売上の一部が当ブログに還元され、今後の活動の励みになります!
スポンサーリンク

3つの質点が描く軌跡が面白い「ピタゴラス三体問題」のシミュレーションをgnuplotのみで再現したく、試行錯誤をしています。

gnuplotのコマンドmultiplotを使い、3質点の軌跡と系のエネルギーを描くスクリプトは用意できました。そしてピタゴラス三体問題っぽい・・結果が得られました。

ただ、t60赤色黒色の2質点による連星、青色質点のエスケープを確認できなかったので、未完成です。

プログラムの記述、運動方程式の立式、数値計算手法の選定など、原因の候補はいくつもあるため、シミュレーションを作るまでの過程を振り返りつつ、原因を探そうと思います。

ピタゴラス三体問題の設定・初期条件

「ピタゴラス三体問題」がどんな問題なのかを確認します。

問題設定

まず、辺の比3:4:5の直角三角形の頂点上に質量比3:4:5の質点3つを配置します。質点の速度はすべてゼロとし、この状態を初期条件として時間発展を考える問題です。質点同士は万有引力が相互に作用しています。

質点の位置関係については、下図のように辺の比と質量比の値が対辺・対角の関係で一致するよう配置します。miliは順に質量、距離を表します。

一般性を持たせるなら、距離も質量も「比」にした方が良いので、任意正数k, nを用いて

(1)l1=3k,l2=4k,l3=5k(2)m1=3n,m2=4n,m3=5n

とするのが望ましいですが、正直面倒であり、後の数値計算を考えると計算回数はできるだけ少なくしたいので、いずれもk=1, n=1としました。

初期条件

ここで、質量mii=1,2,3)の質点を第i体と呼び、位置をri=(xi,yi)とします。miは前述のとおりで、riliの関係さえ守れればよいので、以下の位置を初期位置として考えます。

(3)r1=(1,3),r2=(2,1),r3=(1,1)

そして速度vi=dri/dt=(x˙i,y˙i)はいずれもゼロです(tは時刻)。

(4)v1=0,v2=0,v3=0

微分演算子dは立体で記述すべきですが、texで毎回\mathrm{}と入力するのが大変なので、ここではあえて斜体で記述します。texで使うマクロ定義\newcommand{}のような機能をWordpressで使う方法をご存知の方はコメント等で教えてください。)

スポンサーリンク

運動方程式および力学的エネルギーの導出

シミュレーションを作るためにも、各質点の運動方程式を求める必要があります。また、シミュレーション結果の誤差・精度等を評価するために、力学的エネルギーも考えてみます。

ニュートンの運動方程式

今回のシステムでは質点同士の万有引力が相互作用するので、第i体の運動方程式は次式により与えられます(Gは万有引力定数)。

(5)mid2ridt2=j=1,ji3Gmimjrirj|rirj|3

三体問題なのでΣ計算はありますが、立式するだけならカンタンです。

ただし、 式(5)の左辺riはベクトルなので、x,y座標それぞれで上式が成立します。また、i=1,2,3なので運動方程式の合計は、2成分×3質点=6式 になります。

数値計算に向けた運動方程式の修正

数値計算することを踏まえ、式(5)に関して以下の4点の修正を加えます。

  • 両辺をmi(>0)で割る
  • G=1として計算回数を減らす(G=1となるよう運動方程式を無次元化するのが理想的)
  • 右辺の分子rirjを逆順にして負号を取り除く
  • 2回微分を1回微分×2式に分解することで1階の連立微分方程式に変換し、ルンゲ=クッタ法などを適用しやすくする

上記をもとに式(5)を修正したのがこちらの2式。

(6)dridt=vi(7)dvidt=j=1,ji3mjrjri|rjri|3

これにより、1回の連立常微分方程式(6)(7)が得られ、より数値計算に適した形の式に修正することができました。

運動エネルギー / ポテンシャルエネルギー / 力学的エネルギー

数値計算で直接使うことはないですが、シミュレーション結果の妥当性の指標として、運動エネルギー、ポテンシャルエネルギー、力学的エネルギーも計算しようと思います。順にK,U,Hとすると、それぞれ以下の式で表されます。

(8)K=i=1312mi|vi|2(9)U=ijGmimj|rirj|(10)E=K+U

さいごに

続いては数値計算手法について検討します。

本文は日本語、数式はTexを用いて書いているため、読点(、)とカンマ(,)が混在していますが、ご容赦ください。

コメント

タイトルとURLをコピーしました