本节摘要:星系旋转曲线是暗物质悬案的第一份案卷。按牛顿引力与开普勒定律,发光物质集中在星系中心附近,恒星转速应随半径按平方根衰减;实测曲线在发光盘之外仍保持平直。本节用两条 Python 演算复现"该坠落的预言"与"补足质量的需求",把缺口的数量级钉在纸面上。
想理解星系里出了什么事,先得知道"正常"长什么样。太阳系 99.86% 的质量集中在太阳,行星轨道速度服从开普勒规律:v 与半径的平方根成反比。海王星比水星远近八十倍,公转速度只有后者的五分之一半。这条下降曲线有一个隐含前提——轨道之内的质量基本装在中心。
旋涡星系粗看也满足这个前提:恒星与气体堆成一个中央核球加一个指数盘,发光物质确实往中间聚。于是天文学家顺理成章地预期:出了发光盘的边缘,转速应当像太阳系外行星一样一路滑落。二十世纪七十年代之前,多数人默认如此,只是数据不够好。
转折来自两位耐心到近乎固执的观测者。鲁宾与福特用灵敏的图像管光谱仪逐条测旋涡星系的转速,1970 到 1980 年间积累了几十个星系的曲线。结果清一色:到了发光盘边缘,转速不降。后来射电巡天把曲线延伸到更远,依然平直。下图把两条曲线画在一起,"该坠落的"与"不肯坠落的"反差一目了然。

内区曲线上升不必惊讶——那里质量还在随半径累积,v 反而会涨。真正的案发点在发光盘之外:发光物质的贡献已经饱和,任何"装在中心"的质量分布都只能给出下滑的曲线。
第一步,把开普勒式预言算成数字。以银河系为参照:太阳轨道半径约 8 kpc,绕行速度约 220 km/s,先假设 8 kpc 之内已装下全部引力来源。
import math v_ref, r_ref = 220.0, 8.0 # km/s, kpc:太阳圈处的实测值 print("开普勒式预言 v = v8 * sqrt(8/r):") for r in [8, 12, 16, 24, 32, 50]: print(" r=%4.0f kpc v_kep=%6.1f km/s" % (r, v_ref * math.sqrt(r_ref / r)))
输出:
开普勒式预言 v = v8 * sqrt(8/r): r= 8 kpc v_kep= 220.0 km/s r= 12 kpc v_kep= 179.6 km/s r= 16 kpc v_kep= 155.6 km/s r= 24 kpc v_kep= 127.0 km/s r= 32 kpc v_kep= 110.0 km/s r= 50 kpc v_kep= 88.0 km/s
到 50 kpc 应当只剩 88 km/s。可实测银河系的旋转曲线在 50 kpc 仍有约 220 km/s 量级,射电示踪物甚至到上百 kpc 仍不见明显下弯。
第二步,反过来问:要让曲线平直,每个半径内得装多少质量?圆轨道条件 v²/r = GM/r² 直接给出 M(<r) = v²r/G。
G, MS, KPC = 6.674e-11, 1.989e30, 3.0857e19 # SI 单位 print("平坦曲线所需 M(<r) = v^2 * r / G:") for r in [8, 16, 32, 50]: M = (220e3) ** 2 * (r * KPC) / G / MS # 换算成太阳质量 print(" r=%4.0f kpc M(<r)=%.2e Msun" % (r, M)) print(" 8 kpc 内发光物质约 6e10 Msun;" "50 kpc 处需求/发光 = %.0f 倍" % (((220e3) ** 2 * 50 * KPC / G / MS) / 6e10))
输出:
平坦曲线所需 M(<r) = v^2 * r / G: r= 8 kpc M(<r)=9.00e+10 Msun r= 16 kpc M(<r)=1.80e+11 Msun r= 32 kpc M(<r)=3.60e+11 Msun r= 50 kpc M(<r)=5.63e+11 Msun 8 kpc 内发光物质约 6e10 Msun;50 kpc 处需求/发光 = 9 倍
质量必须随半径线性增加才能维持平曲线——发光物质的账本却在十几个 kpc 后就不再增长。九倍只是银河系的保守口径,暗星系的缺口能到几十倍(第 3 章的矮星系解剖有完整演算)。
把历史翻回开头,会发现这桩案子立案远比"鲁宾 1970 年代"这个流行说法曲折。1932 年奥尔特分析银河系本地恒星的垂直运动,发现银盘附近的引力比可见恒星多出约一半,但他谨慎地把差额归给"尚未看清的盘内恒星与气体";1939 年巴布科克测仙女座星系(M31)外区转速,曲线到盘边非但不降还微微上翘,他在论文结尾嘀咕了一句"或需修改引力定律"——然后这个线索被二战与天文学界的注意力埋了三十年。
沉默期的原因是技术性的:1940 年代的摄谱仪一次只能吃一条缝,测一条外区曲线要几个通宵,误差大到曲线"平直还是下滑"根本分不清。转折是两件设备的婚姻——像增强管(光子利用率提高百倍)与法布里-珀罗干涉仪(一次记录整个视场的谱线),鲁宾与福特 1965 年前后搭起这套装置,M31 的曲线一个冬天就测完了。科学史上不少悬案的破案工具都是这么来的:不是理论先跑到,是仪器先到。
这个插曲对判断案情的价值在于:异常的置信度随测量精度逐级升级,从奥尔特的"可疑"到巴布科克的"个例"再到鲁宾的"系统性",每一级都伴随新仪器而非新理论。今天的读者看到"旋转曲线平直"这个结论时,值得记住它背后站着三代人的耐心测量。
| 年代 | 观测者 | 对象 | 结论成色 |
|---|---|---|---|
| 1932 | 奥尔特 | 银河系本地 | 本地差额约半,解释存疑 |
| 1939 | 巴布科克 | M31 外区 | 单条上翘曲线,未成体系 |
| 1970s | 鲁宾与福特 | 数十个旋涡星系 | 系统性平直,正式立案 |
平曲线的解释清单上,"改引力"和"没算错质量"是两大道岔,本节先按下,后面各章逐一处理。这里只强调一件事:开普勒式预言用到的只是向心力方程与中心质量假设,前者是被太阳系检验到极致的力学,后者来自直接的测光。两条都硬,所以异常才硬。
有一个容易忽略的细节值得点名:观测者看到的是投影速度。侧向星系(倾角接近 90 度)的谱线才直接给出旋转速度,倾角修正做错会系统性抬高或压低曲线。鲁宾团队刻意挑选近侧向的星系,正是为了把这个漏洞堵死。
现场已经确认:引力收到的钱比发光物质交的多得多。下一节先审第一个辩解——"也许恒星比看起来重"。