月旅行をシミュレートする(制限3体問題)


地球と月の間を往復する宇宙船の運動を追跡してみよう。 宇宙船の質量は地球と月にくらべて無視できる。 このように、ふたつの天体の重力のもとで運動する質量が 無視できる質点の運動を解く問題のことを制限3体 問題と呼ぶ。2体問題の場合とくらべて軌動はずっと複雑に なる。宇宙船は無事、地球に帰還できるだろうか?

  1. シミュレーションプログラム (C言語で書かれています)

  2. プログラムの説明

  3. プログラムをコンパイルして実行できる形式にしよう

         % cc threebody.c -o threebody -lm リターン
    

  4. シミュレーションの実施

         % wish threebody.tcl  リターン
    

    このプログラムでは1番目の質点(地球)は座標(0,0)に、2番目の質点 (月)は座標(1,0)に静止しているとしている。 時刻ゼロにおける宇宙船の座標をx,y の欄に、x軸、y軸方向の初速度を vx,vy の欄に、運動を追跡する時間きざみを dtの欄に、シミュレーション を終了する時刻を tmax の欄に入力する。たとえば、 x 0.25、y 0.0、vx 2.0、vy -0.75、dt 0.005、tmax 2.0 としてみよう。 データを入力しおわったら Run ボタンをクリックする。simulation end と 表示されたらシミュレーション完了である。

  5. 結果をグラフで表示する

    Plot ボタンをクリックすると宇宙船の軌跡が表示される。

  6. 入力データを変えてシミュレートする

    マウスポインタを端末ウィンドウに移動してリターンキーを押すと グラフが消え、各欄に別の値を入力できるようになる。 Run ボタンをクリックしてシミュレーションを実施する。 宇宙船の初期位置や初速度をいろいろ変えて実験してみよう。

  7. 終了

    Dismiss ボタンをクリックする