読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

(61) Newtonの重力理論と楕円軌道

Newtonの万有引力理論では、二体問題の場合、軌道は楕円になります。
これを順を追って考えます。
角運動量とエネルギーが保存することから以下の式が時間に依存しなくなります。


について解きましょう。

/* 9.4.10m */
derivs : solve([(m/2)*(rDot^2 + r^2 * thetaDot^2) - G * M * m / r = E, m * r^2 * thetaDot = L], [rDot, thetaDot]);

上の結果から、を求めましょう。

/* 9.4.11m */
drdtheta : ev(rDot / thetaDot, derivs[2]);

軌道を求めるため、積分しましょう。

/* 9.4.12m */
assume(L > 0, G > 0, m > 0, r > 0)$
thet : ratsimp(integrate(1/drdtheta, r));

rを函数として解きましょう。

/* 9.4.13m */
soln : solve(sin(theta) = sin(thet), r);

これは楕円軌道を示しています。