跳至內容

經典力學/攝動與進動

維基教科書,自由的教學讀本

攝動引起的進動

[編輯]

考慮中心力問題下的近克卜勒軌道,勢能為 , 其中是小參數(攝動強度),第二項可視作扁率或額外中心項的近似來源。該攝動會導致軌道的近心點發生進動,進動角近似與成正比。

數值演示

[編輯]

下例以離散迭代的方式,使用近似的角速度修正來積累進動量

範例代碼:

import math

# 设定参数
mu = 1.0         # 引力参数
epsilon = 0.01   # 摄动强度(小参数)
a = 1.0          # 轨道半长轴(单位化)
e = 0.1          # 离心率(适中)
steps = 12       # 模拟12个轨道周期(每周期估计一次近心进动)

# 一个简化的近心进动近似:delta_omega ≈ k * epsilon
# 这里将k取为与e、a、mu相关的常数近似(仅示意),例如:
k = math.sqrt(mu/(a**3)) * (e/(1.0 + e))  # 非严谨,仅作演示比例因子

total_precession = 0.0
precessions = []

for n in range(1, steps + 1):
    delta_omega = k * epsilon  # 每周期的近似进动量(弧度)
    total_precession += delta_omega
    precessions.append((n, delta_omega, total_precession))

# 输出为表格风格的文本
print("周期  本周期进动(弧度)  累计进动(弧度)")
for n, d, t in precessions:
    print(f"{n:>3}   {d:>14.6f}    {t:>14.6f}")

# 将累计进动转换为每周期度数(平均值)
avg_deg_per_orbit = (total_precession/steps) * 180.0 / math.pi
print("\n平均每周期进动(度):", f"{avg_deg_per_orbit:.6f}")

輸出:

周期  本周期进动(弧度)  累计进动(弧度)
  1        0.028514        0.028514
  2        0.028514        0.057028
  3        0.028514        0.085542
  4        0.028514        0.114056
  5        0.028514        0.142570
  6        0.028514        0.171084
  7        0.028514        0.199598
  8        0.028514        0.228112
  9        0.028514        0.256626
 10        0.028514        0.285140
 11        0.028514        0.313653
 12        0.028514        0.342167

平均每周期进动(度): 1.633268

說明

[編輯]
  • 實際的攝動理論可使用更嚴謹的拉普拉斯-朗日行星方程或作用-角變量的微擾法來得到近心點進動的解析表達式。