本节摘要:完整广义相对论预言星光掠过太阳边缘偏折 1.75 角秒,恰是等效原理估算的两倍——时间弯曲贡献一半,空间弯曲补足另一半。1919 年爱丁顿与戴森组织的两支日全食远征队测得约 1.6 至 2.0 角秒,让广义相对论一夜之间世界闻名。本节算清偏折公式在各种天体旁的读数,复盘那场争议缠身的观测,并追记射电天文学后来的高精度裁决。
1919 年 5 月 29 日,日全食带横跨大西洋。英国天文学家戴森、爱丁顿与戴维森分兵两路:普林西比岛与巴西索布拉尔。任务只有一句话——在太阳被月亮吃掉的几分钟里,给太阳附近的星场拍照。平时这些星藏在太阳的光芒里,全食时刻黑暗天空中它们短暂现身;再与半年前夜间拍的同一片星场对比,星星的位置若整体朝远离太阳的方向挪动,挪动量就是偏折角的直接读数。
为什么值得远渡重洋?因为这道题是一道选择题,选项只有两个,且都写在明面上。牛顿式答案(把光当成以光速飞行的小炮弹,用 1.3 节的等效原理算法,早在 1801 年就被索尔德纳算过、1911 年又被爱因斯坦独立重得)给出 0.87 角秒;完整广义相对论(1915 年)给出 1.75 角秒。差一倍——以当年底片测量的精度,这是一次够得着判决的对赌。
完整理论的偏折公式为 θ = 4GM/(c²b),b 是光线到天体中心的最小距离(瞄准参数)。两倍的来源在 3.3 节已经埋好伏笔:弱场度规的两项起伏反号——
1919 年的观测本质上是在问:宇宙的几何账本里,空间那一栏到底存不存在。答案存在。

把公式 θ = 4GM/(c²b) 对准不同天体,读数差异巨大:
# 光线偏折角速查表:θ = 4GM 除以 c 方 b import math G = 6.674e-11; c = 2.99792458e8 arcsec = lambda th: math.degrees(th)*3600 targets = [ ("掠太阳边缘", 1.989e30, 6.96e8), ("掠地球边缘", 5.97e24, 6.371e6), ("掠木星边缘", 1.898e27, 6.99e7), ("掠白矮星 Sirius B", 1.02*1.989e30, 5.8e6), ] print(f"{'场景':<14s} {'偏折角':>10s}") for name, M, R in targets: th = 4*G*M/(c*c*R) print(f"{name:<14s} {arcsec(th):10.3f} 角秒") print("太阳 1.75 角秒是唯一在 1919 年底片精度内的目标")
速查表读数:太阳边缘 1.75 角秒;木星只有 0.016 角秒(约太阳的百分之一,射电时代才能测);地球边缘更小到 0.57 毫角秒;白矮星天狼星 B 表面理论上可达 2.1 角秒,可惜太暗无法用作背景光源。太阳是这场检验唯一够格的天然棱镜——这解释了为什么非得等日全食、非得远征。
第二问:底片上 1.75 角秒对应多少毫米?望远镜焦距决定换算:
# 底片上的星像位移:1.75 角秒在不同焦距下摊开多少 theta = 1.75 / 3600 * math.pi/180 # 化为弧度 for f_m, label in [(3.43, "天体照相仪(普林西比)"), (5.8, "四英寸镜(索布拉尔)")]: shift_um = theta * f_m * 1e6 print(f"{label:<20s} 焦距 {f_m} m:星像外移约 {shift_um:.0f} 微米") print("约一根头发丝的直径——这就是 1919 年要测的量")
日志记录:两台仪器焦距下,位移分别约 29 与 49 微米——一根头发丝的直径。考虑到底片的温度形变、望远镜聚焦误差、大气抖动,1919 年的误差棒(0.3 角秒上下)已经是对极限的挑战。
1919 年的结果立刻卷入争议:索布拉尔主镜白天受热形变,星像模糊成小圆盘,反而不如小口径备份镜可靠;后来的历史学者重审底片,认为当年的裁决对爱因斯坦颇为宽厚。但这些争论很快被更强的证据盖过:1922 年多家团队的日食观测继续支持 1.75 角秒,1969 年起利用类星体射电源的观测更是全年无休——射电望远镜不受白昼限制,偏折角已测到约万分之一的精度,与 4GM/(c²b) 完全一致。光线偏折如今还是实用技术:天体测量卫星盖亚的巡天数据处理里,引力偏折修正是每天都要做的常规订正。
同一个公式换个舞台,就从"检验"变成"工具"。当前景天体正好挡在背景光源与地球之间时,偏折会汇聚成引力透镜:太阳是最初的棱镜,而银河系里游荡的恒星互挡时,背景星会被短暂放大增亮(微透镜事件);整个星系挡在类星体前,能拉出光弧与多重像。透镜系统的特征角是爱因斯坦半径:
# 爱因斯坦半径:透镜几何的特征角 import math G = 6.674e-11; c = 2.99792458e8; Msun = 1.989e30 kpc = 3.086e19 def einstein_radius(M, dL, dS): dLS = dS - dL return math.sqrt(4*G*M/c**2 * dLS/(dL*dS)) cases = [("半太阳质量前景星(银河系内)", 0.5*Msun, 4*kpc, 8*kpc), ("星系级透镜(十的十一次方太阳质量)", 1e11*Msun, 1e9*kpc, 2e9*kpc)] arcsec = lambda th: math.degrees(th)*3600 for name, M, dL, dS in cases: th = einstein_radius(M, dL, dS) unit = "毫角秒" if arcsec(th) < 1 else "角秒" val = arcsec(th)*1000 if arcsec(th) < 1 else arcsec(th) print(f"{name}: 爱因斯坦半径约 {val:.2f} {unit}") print("微透镜毫角秒:背景星增亮数天;星系透镜角秒:拉出光弧甚至爱因斯坦环")
读数:银河系内的恒星透镜,爱因斯坦半径不到一毫角秒——远小于望远镜分辨率,所以微透镜看到的不是"像"而是背景星光变曲线的放大与畸变(事件持续数天到数月,峰值形状由同一公式决定);星系级透镜的半径是角秒级,直接拉出弧与环。这套几何如今是独立于超新星之外的另一杆宇宙标尺(时间延迟测哈勃常数),也是搜寻系外行星与暗物质的日常工具——1919 年那台"日全食棱镜",产业化成了整个引力透镜行业。
💡 关键直觉:等效原理只"看得到"钟慢,看不到尺缩——它算出的偏折天然只有一半。判别"纯等效原理图像"与"完整时空几何"的分水岭,就在那另一半的空间弯曲上;1919 年的照片,是空间几何的第一张证件照。