質点mが力Fを受けてx軸上を運動するときの運動方程式は以下のようにかける.
![]() |
(1) |
この二階常微分方程式は次の連立微分方程式に変換することができる.
![]() |
(2) |
![]() |
(3) |
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(4) |
write(1,*) t, x, yと,時刻,x座標,y座標と並べてファイルに出力する.gnuplotで以下のコマンドを実行することでアニメーションを観察すること.
gnuplot> n=1 gnuplot> load 'anim.txt'ここで,anim.txtの中身は以下のとおり.
set xrange [-1:1] set yrange [-1:1] if (n>ループ回数) exit plot "ファイル名" using 2:3 every 1:1:n:0:n:0 with points pt 7 ps 2,\ "zero" with points pt 6 ps 3 pause 0.05 n=n+1 reread"ファイル名"に結果を出力したファイル名を記入すること.時間ループの回数を"ループ回数"に記入すること.また,ファイル"zero"は原点に存在する太陽の位置を表し,内容は
0.D0 0.D0としておくこと.
ケプラーの法則は、1619年にヨハネス・ケプラーによって解明された惑星の運動に関する法則である。ケプラーは、ティコ・ブラーエの観測記録から、太陽に対する火星の運動を推定し、以下のように定式化した。
惑星の初期x座標を5とおり変化させて計算を行う.惑星が太陽の周りを一周するのにかかる時間(周期),および軌道長半径((初期x座標-軌道を半周したときのx座標)/2)を求めよ.横軸に周期,縦軸に軌道長半径をとりグラフを作成せよ.軌道長半径は周期の何乗に比例しているか? 軌道を半周したときのx座標を求めるためには,前述したyoldをつかって,y*yold < 0.D0 となる時のx座標を求めればよい.
惑星の初期x座標を1とせよ.初期速度vyを変化させよ.どの速度で惑星は無限遠方に飛んでいってしまうか? またそれはなぜか?
練習問題4で求めた速度よりも小さい初期速度vyで計算を行え.ケプラーの第一法則により軌道は楕円になっているはずである.
二つの点(焦点)からの距離の和が一定になる点の集合が楕円である.今の場合,一方の焦点は原点(太陽),もう一方の焦点のx座標は(初期x座標+軌道を半周したときのx座標)で与えられる.一度軌道計算を行うと,焦点のx座標を求めることができる.まず焦点のx座標を求め,同じ条件で再度計算を行い,二つの焦点からの距離の和が一定になっていることを確かめよ.
プログラムと,練習問題5の結果(距離の和の一定値)を送付すること.
半径が1,速度が1の円軌道上を別の宇宙船が運動している.t=0でその宇宙船はx=-1,y=0の位置にいる.一方で自分はt=0でx=1,y=0の位置にいる.なるべく早くその宇宙船にたどりつくためにはy方向の初速度vyをどのような値にすればよいだろうか?(vx=0とする)
先に走る宇宙船の座標は(piを円周率として)
write(2,*) t,cos(t+pi),sin(t+pi)
でファイルに出力することができる.このファイル名を"data2.dat",自分の座標が入ったファイルを"data1.dat"とすると,次のファイルでアニメーションを見ることができる.追い付いたかどうかをアニメを見て確認すること.
set xrange [-1:1] set yrange [-1:1] if (n>700) exit plot "data1.dat" using 2:3 every 1:1:n:0:n:0 with points pt 7 ps 2,"zero" with points pt 6 ps 3,"data2.dat" u 2:3 every 1:1:n:0:n:0 pause 0.05 n=n+1 rereadヒント:今の問題で,軌道長半径aとエネルギーの絶対値との間には以下の関係がある.
![]() |
(5) |
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(6) |