3つの質点が描く軌跡が面白い「ピタゴラス三体問題」のシミュレーションをgnuplotのみで再現したく、試行錯誤をしています。
軌跡を全て残した場合のアニメーション。t=50ぐらいから質量比3の青色質点が第2象限を通るけど先行研究にはなかった。 pic.twitter.com/YUlWzydarT
— Hiro (@hiroloquy) February 7, 2022
gnuplotのコマンドmultiplot
を使い、3質点の軌跡と系のエネルギーを描くスクリプトは用意できました。そしてピタゴラス三体問題っぽい結果が得られました。
ただ、
プログラムの記述、運動方程式の立式、数値計算手法の選定など、原因の候補はいくつもあるため、シミュレーションを作るまでの過程を振り返りつつ、原因を探そうと思います。
ピタゴラス三体問題の設定・初期条件
「ピタゴラス三体問題」がどんな問題なのかを確認します。
問題設定
まず、辺の比3:4:5の直角三角形の頂点上に質量比3:4:5の質点3つを配置します。質点の速度はすべてゼロとし、この状態を初期条件として時間発展を考える問題です。質点同士は万有引力が相互に作用しています。
質点の位置関係については、下図のように辺の比と質量比の値が対辺・対角の関係で一致するよう配置します。
一般性を持たせるなら、距離も質量も「比」にした方が良いので、任意正数
とするのが望ましいですが、正直面倒であり、後の数値計算を考えると計算回数はできるだけ少なくしたいので、いずれも
初期条件
ここで、質量
そして速度
(微分演算子\mathrm{}
と入力するのが大変なので、ここではあえて斜体で記述します。texで使うマクロ定義\newcommand{}
のような機能をWordpressで使う方法をご存知の方はコメント等で教えてください。)
運動方程式および力学的エネルギーの導出
シミュレーションを作るためにも、各質点の運動方程式を求める必要があります。また、シミュレーション結果の誤差・精度等を評価するために、力学的エネルギーも考えてみます。
ニュートンの運動方程式
今回のシステムでは質点同士の万有引力が相互作用するので、第
三体問題なので
ただし、 式(
数値計算に向けた運動方程式の修正
数値計算することを踏まえ、式(
上記をもとに式(
これにより、1回の連立常微分方程式(
運動エネルギー / ポテンシャルエネルギー / 力学的エネルギー
数値計算で直接使うことはないですが、シミュレーション結果の妥当性の指標として、運動エネルギー、ポテンシャルエネルギー、力学的エネルギーも計算しようと思います。順に
さいごに
続いては数値計算手法について検討します。
本文は日本語、数式はTexを用いて書いているため、読点(、)とカンマ(,)が混在していますが、ご容赦ください。
コメント