手を振るソラくんゆるふわ宇宙・航空
考え中のソラくん

楕円軌道の速度をPythonで計算|vis-viva方程式で近地点・遠地点を知る

2026-09-13実践

#vis-viva#楕円軌道#ケプラー#Python#実践

実際の軌道は真円ではなく楕円です。楕円軌道のどの位置でも速度を求められる万能式が vis-viva方程式。この記事ではPythonで実装し、「近地点で速く、遠地点で遅い」というケプラーの第2法則を数値で確かめます。円軌道の速度の発展版です。

vis-viva方程式

軌道上の距離 r、軌道の長半径 a のとき、速度は次で決まります。

v = √( GM × (2/r − 1/a) )

円軌道(r = a)ならおなじみの √(GM/r) に戻ります。楕円にも使える一般形です。

準備

pip install numpy

① 楕円軌道の近地点・遠地点速度

近地点高度400km・遠地点高度35786km(GTO=静止トランスファ軌道に近い)の楕円で計算します。

import numpy as np

GM = 3.986e14
R = 6.371e6

r_peri = R + 400e3          # 近地点までの距離
r_apo  = R + 35786e3        # 遠地点までの距離
a = (r_peri + r_apo) / 2    # 長半径

def vis_viva(r, a):
    return np.sqrt(GM * (2/r - 1/a))

print(f"近地点速度: {vis_viva(r_peri, a)/1000:.2f} km/s")
print(f"遠地点速度: {vis_viva(r_apo, a)/1000:.2f} km/s")

出力:

近地点速度: 10.07 km/s
遠地点速度: 1.62 km/s

近地点では約10.1km/s、遠地点ではわずか1.6km/s。地球に近いほど速く、遠いほど遅い——ケプラーの第2法則が数字で見えました。

② 面積速度が一定なことを確かめる

ケプラーの第2法則は「一定時間に掃く面積が等しい」。近地点・遠地点で r × v がほぼ等しくなるはずです。

print("近地点 r×v:", r_peri * vis_viva(r_peri, a))
print("遠地点 r×v:", r_apo  * vis_viva(r_apo, a))

両者はほぼ一致します(近地点・遠地点では速度と半径が直交するため r×v が角運動量に比例)。遅い代わりに遠く、速い代わりに近く——バランスが保たれています。

🌱

円軌道は特別な楕円

vis-vivaで r = a とすると √(GM/a)、つまり円軌道速度になります。円は「離心率0の楕円」。1つの式で円も楕円も扱えるのが美しいところです。

⚠️

遠地点で加速するとどうなる?

遠地点(1.6km/s)でエンジンを噴かして円軌道速度(約3.07km/s)まで上げると、静止軌道に乗ります。これがホーマン遷移の2回目の噴射。vis-vivaは軌道遷移の計算の土台です。

まとめ

  • vis-viva v=√(GM(2/r−1/a)) は楕円軌道のどこでも速度を出せる
  • 近地点で速く、遠地点で遅い(ケプラーの第2法則)
  • r×v がほぼ一定=角運動量保存
  • 円軌道は r=a の特別な場合。軌道遷移計算の基礎

もう少し詳しく(背景と理論)

ビス・ビバ方程式 v² = GM(2/r − 1/a) は、二体問題におけるエネルギー保存則を軌道の言葉で書き直したものです1。左辺の運動エネルギーと重力ポテンシャルの和が一定であることから導かれ、軌道長半径 a が軌道の全エネルギーを一手に決める(E = −GM/2a)ことを示します2。この一本で、円軌道(r=a)・楕円・放物線(a→∞ で脱出速度)・双曲線をすべて統一的に扱えます。ケプラーの法則を万有引力から導いた Newton の枠組みの帰結であり3ホーマン遷移など軌道遷移の Δv 計算の土台になります。

次の一歩 🌸

円軌道は軌道速度、軌道の乗り換えはホーマン遷移、軌道の種類は軌道の種類へどうぞ。

Footnotes

  1. ビス・ビバ("生きた力"の意)方程式は二体問題のエネルギー保存則の帰結。任意の点の速度を r と a だけで与える。

  2. 軌道の比エネルギー ε = v²/2 − GM/r = −GM/2a。長半径 a が軌道全体のエネルギーを決め、a が大きいほど高エネルギー軌道。

  3. Kepler の三法則は Newton の万有引力(1687, プリンキピア)から導出される。ビス・ビバもその二体問題解の一部。

🔥 この分野の最新トレンドをチェック →

あわせて読みたい