2体問題のシミュレーションプログラムの説明
- 1番目の粒子が座標(0,0)に静止しているとして、2番目の
粒子の運動をt=0からt=tmaxまで、時間きざみ dtで追跡する
プログラムである。
- 2個の粒子はひとつの平面上を運動するため、この平面内の
運動だけを考えれば十分である。
- このプログラムでは運動方程式をルンゲクッタ法という方法で
解いている。運動方程式は数学の言葉でいえば2階の常微分方程式
で表現されている。ルンゲクッタ法はこのような常微分方程式を
数値的に解くときの標準的な方法である。詳しくは参考書を参照のこと。
- ふたつの粒子の間の距離が r=sqrt(x*x+y*y) によって求められ
ている。ここで sqrt は平方根を求める関数である。
- 粒子の質量をM、万有引力定数をGとして、G=M=1 とおいた。
このとき、万有引力による加速度の x方向、y方向の成分が、
それぞれ -x/(r*r*r)、-y/(r*r*r) で与えられる。プログラム中
では r3=r*r*r と置いている。
- 最後から7行目から4行目までの部分で、時間きざみdtだけ時間が経過
したときの座標x、y、速度vx、vyが求められている。