广义相对论水星近日点进动完整详细数学推导

广义相对论水星近日点进动完整详细数学推导

从史瓦西度规 → 测地线方程 → 轨道微分方程 → 相对论修正 → 进动角公式,全程严谨推导。

一、基本前提

  1. 太阳静态球对称引力场,采用史瓦西度规

d s 2 = − ( 1 − 2 G M c 2 r ) c 2 d t 2 + d r 2 1 − 2 G M c 2 r + r 2 d θ 2 + r 2 sin ⁡ 2 θ d φ 2 ds^2 = -\left(1-\frac{2GM}{c^2 r}\right)c^2dt^2 +\frac{dr^2}{1-\frac{2GM}{c^2 r}} +r^2d\theta^2 +r^2\sin^2\theta d\varphi^2 ds2=−(1−c2r2GM)c2dt2+1−c2r2GMdr2+r2dθ2+r2sin2θdφ2

行星做赤道面运动,取 θ = π 2 ,   d θ = 0 \theta=\dfrac{\pi}{2},\,d\theta=0 θ=2π,dθ=0,度规简化:

d s 2 = − ( 1 − 2 G M c 2 r ) c 2 d t 2 + d r 2 1 − 2 G M c 2 r + r 2 d φ 2 ds^2 = -\left(1-\frac{2GM}{c^2 r}\right)c^2dt^2 +\frac{dr^2}{1-\frac{2GM}{c^2 r}} +r^2d\varphi^2 ds2=−(1−c2r2GM)c2dt2+1−c2r2GMdr2+r2dφ2

  1. 定义变量替换

    u = 1 r    ⟹    d r = − 1 u 2 d u u=\frac1r \implies dr = -\frac{1}{u^2}du u=r1⟹dr=−u21du

  2. 自由粒子满足类时测地线 ,引入仿射参数 τ \tau τ(固有时),四速度归一:

    g μ ν d x μ d τ d x ν d τ = − c 2 g_{\mu\nu}\frac{dx^\mu}{d\tau}\frac{dx^\nu}{d\tau}=-c^2 gμνdτdxμdτdxν=−c2


二、守恒量推导

1. 角动量守恒

φ \varphi φ 为循环坐标,角动量守恒:

L = r 2 d φ d τ = h = 常数 L=r^2\frac{d\varphi}{d\tau}=h=\text{常数} L=r2dτdφ=h=常数

d φ d τ = h u 2 \frac{d\varphi}{d\tau}=hu^2 dτdφ=hu2

2. 能量守恒

t t t 为循环坐标,能量守恒:

E = ( 1 − 2 G M c 2 r ) c 2 d t d τ = 常数 E=\left(1-\frac{2GM}{c^2 r}\right)c^2\frac{dt}{d\tau}=\text{常数} E=(1−c2r2GM)c2dτdt=常数


三、代入度规建立轨道方程

归一条件:

− ( 1 − 2 G M u c 2 ) ( d t d τ ) 2 c 2 + 1 1 − 2 G M u c 2 ( d r d τ ) 2 + r 2 ( d φ d τ ) 2 = − c 2 -\left(1-\frac{2GMu}{c^2}\right)\left(\frac{dt}{d\tau}\right)^2c^2 +\frac{1}{1-\frac{2GMu}{c^2}}\left(\frac{dr}{d\tau}\right)^2 +r^2\left(\frac{d\varphi}{d\tau}\right)^2 =-c^2 −(1−c22GMu)(dτdt)2c2+1−c22GMu1(dτdr)2+r2(dτdφ)2=−c2

把 d t d τ , d r d τ , d φ d τ \dfrac{dt}{d\tau},\dfrac{dr}{d\tau},\dfrac{d\varphi}{d\tau} dτdt,dτdr,dτdφ 全部换成对 φ \varphi φ 导数:

d r d τ = d r d φ d φ d τ = − h d u d φ \frac{dr}{d\tau}=\frac{dr}{d\varphi}\frac{d\varphi}{d\tau} =-h\frac{du}{d\varphi} dτdr=dφdrdτdφ=−hdφdu

代入守恒量,整理后两边除以 ( d φ d τ ) 2 = h 2 u 4 \left(\dfrac{d\varphi}{d\tau}\right)^2=h^2u^4 (dτdφ)2=h2u4,得到:

( d u d φ ) 2 + u 2 = 2 G M h 2 u 3 + E 2 c 2 h 2 \left(\frac{du}{d\varphi}\right)^2 + u^2 =\frac{2GM}{h^2}u^3+\frac{E^2}{c^2 h^2} (dφdu)2+u2=h22GMu3+c2h2E2


四、求导得到二阶轨道微分方程

等式两边对 φ \varphi φ 求导:

2 d u d φ d 2 u d φ 2 + 2 u d u d φ = 6 G M h 2 u 2 d u d φ 2\frac{du}{d\varphi}\frac{d^2u}{d\varphi^2}+2u\frac{du}{d\varphi} =\frac{6GM}{h^2}u^2\frac{du}{d\varphi} 2dφdudφ2d2u+2udφdu=h26GMu2dφdu

约去 2 d u d φ 2\dfrac{du}{d\varphi} 2dφdu(非平凡解不为 0):

d 2 u d φ 2 + u = G M h 2 + 3 G M   u 2 \boldsymbol{\frac{d^2u}{d\varphi^2}+u = \frac{GM}{h^2}+3GM\,u^2} dφ2d2u+u=h2GM+3GMu2

对比牛顿力学方程

牛顿引力无时空弯曲修正:

d 2 u d φ 2 + u = G M h 2 \frac{d^2u}{d\varphi^2}+u = \frac{GM}{h^2} dφ2d2u+u=h2GM

多出相对论非线性修正项 : 3 G M   u 2 \boldsymbol{3GM\,u^2} 3GMu2


五、微扰近似求解轨道

修正项极小,把解拆为牛顿椭圆解 + 小修正:

牛顿零阶解:

u 0 = G M h 2 ( 1 + e cos ⁡ φ ) u_0=\frac{GM}{h^2}(1+e\cos\varphi) u0=h2GM(1+ecosφ)

e e e 为轨道偏心率。

设相对论解 u = u 0 + δ u u=u_0+\delta u u=u0+δu,代入方程忽略高阶小量,得到近似解:

u ≈ G M h 2 [ 1 + e cos ⁡ ( ( 1 − ε ) φ ) ] , ε ≪ 1 u\approx \frac{GM}{h^2}\big[1+e\cos\big((1-\varepsilon)\varphi\big)\big],\quad \varepsilon\ll1 u≈h2GM[1+ecos((1−ε)φ)],ε≪1


六、求解一圈进动角度

轨道近日点满足余弦取极值,相位满足:

( 1 − ε ) φ = 2 π (1-\varepsilon)\varphi=2\pi (1−ε)φ=2π

公转几何转角:

φ = 2 π 1 − ε ≈ 2 π ( 1 + ε ) \varphi=\frac{2\pi}{1-\varepsilon}\approx 2\pi(1+\varepsilon) φ=1−ε2π≈2π(1+ε)

单圈额外偏转角度

Δ φ = φ − 2 π = 2 π ε \Delta\varphi=\varphi-2\pi=2\pi\varepsilon Δφ=φ−2π=2πε

代入轨道半长轴 a a a、偏心率 e e e 关系:

h 2 = G M a ( 1 − e 2 ) h^2=GMa(1-e^2) h2=GMa(1−e2)

最终推导出广义相对论近日点进动公式

Δ φ = 6 π G M c 2 a ( 1 − e 2 ) \boldsymbol{\Delta\varphi=\frac{6\pi GM}{c^2 a(1-e^2)}} Δφ=c2a(1−e2)6πGM


七、物理结论

  1. 牛顿理论: Δ φ = 0 \Delta\varphi=0 Δφ=0,轨道闭合无偏转;

  2. 广义相对论:存在正的偏转角度,行星每公转一周近日点向前移动;

  3. 水星轨道偏心率大、离太阳近,进动效应最显著,百年理论值 43 角秒,与观测严格吻合。


八、无量纲量级说明

G M c 2 \dfrac{GM}{c^2} c2GM 为太阳引力半径,数值极小,因此每圈进动角度极其微小,长期累积才可观测。

python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# Physical constants
G = 6.67430e-11
M_sun = 1.989e30
c = 3e8

# Mercury orbital parameters
a = 5.791e10
e = 0.2056

# Precession calculation
delta_phi_rad = 6 * np.pi * G * M_sun / (c**2 * a * (1 - e**2))
prec_per_cycle = delta_phi_rad
mercury_period_day = 88
total_day = 1000000 * 365
total_cycles = total_day / mercury_period_day
total_prec = total_cycles * prec_per_cycle

# Orbit function
def calc_orbit(phi, rotate_angle):
    u0 = (1 + e) / a
    u = u0 / (1 + e * np.cos(phi))
    r = 1 / u
    x = r * np.cos(phi + rotate_angle)
    y = r * np.sin(phi + rotate_angle)
    return x, y

phi = np.linspace(0, 2 * np.pi, 1000)
# Static orbit (no precession)
x_static, y_static = calc_orbit(phi, 0)
# Dynamic orbit after 1 million years precession
x_dynamic, y_dynamic = calc_orbit(phi, total_prec)

# Plot
plt.figure(figsize=(9, 9))
plt.plot(x_static, y_static, label='Initial Static Orbit', color='#1f77b4', linewidth=1.2)
plt.plot(x_dynamic, y_dynamic, label='Orbit after 1 Million Years', color='#d62728', linewidth=1.2)
plt.scatter(0, 0, c='#ff7f0e', s=220, label='Sun')

plt.axis('equal')
plt.legend(fontsize=11)
plt.title('Mercury Orbit Comparison Before & After 1 Million Years', fontsize=12)
plt.xlabel('X Coordinate (m)')
plt.ylabel('Y Coordinate (m)')
plt.grid(alpha=0.3)
plt.show()

# Output data
arcsec_conv = np.rad2deg(total_prec) * 3600
print(f"Total precession angle in 1 million years: {arcsec_conv:.2f} arcsec")
相关推荐
fantasy_arch3 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
web3.08889993 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
AI算法沐枫4 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
X1A0RAN5 小时前
解决Pycharm中部分文件或文件夹被隐藏不展示问题
ide·python·pycharm
MomentYY5 小时前
第 3 篇:让 Agent 学会分工,LangGraph 构建多 Agent系统
人工智能·python·agent
程序员Jelena5 小时前
Python 代码是什么?—— 从字节到执行的完整解析
python
测试员周周5 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
用户8356290780516 小时前
Python 操作 PowerPoint OLE 对象
后端·python
小江的记录本6 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven