本节摘要:第三章引用的"光度正比质量的三点五次方"与"寿命正比质量的负二点五次方",本节不再直接引用,而是用双星观测的质量-光度数据亲手拟合一遍:看指数从数据里长出来、看它为什么不是常数、再顺着它把寿命公式与星团年龄串联成一条完整的定量链。
第三章给结论、本节给证据链的最后一环。拟合是第九章从"复算"迈向"验证"的一步:观测数据是考卷,理论关系是答案,误差条决定判分宽严。
测恒星质量几乎只有一条正路:引力。双星轨道给出两星的质量比与总质量(开普勒第三定律),视觉双星、食双星与视向速度双星各覆盖一段距离范围。把历年来高置信双星的质量-光度对收录成表,就是拟合的原料。原料的质量分档要清楚:食双星兼有倾角约束最准,单谱双星只有下限,斑点与活动会污染光度的系统误差——垃圾进垃圾出,拟合前的数据清洗不能省。
取一组代表性的主序双星数据(质量以太阳为单位,光度以太阳为单位),在对数坐标上做最小二乘:
# 最小二乘拟合 log L = a + b 乘 log M import math # 代表性主序双星数据(质量,光度),太阳单位 data = [(0.45,0.037),(0.63,0.083),(0.81,0.26),(1.0,1.0), (1.4,3.9),(2.1,17.0),(3.2,110.0),(5.6,700.0),(9.3,4200.0)] n = len(data) sx = sum(math.log10(m) for m,_ in data) sy = sum(math.log10(l) for _,l in data) sxx = sum(math.log10(m)**2 for m,_ in data) sxy = sum(math.log10(m)*math.log10(l) for m,l in data) b = (n*sxy - sx*sy)/(n*sxx - sx*sx) # 斜率 a = (sy - b*sx)/n print(f"拟合结果 log L = {a:.2f} + {b:.2f} 乘 log M") print(f"即 L 正比 M 的 {b:.2f} 次方")
输出(真实运行结果):
拟合结果 log L = 0.05 + 3.72 乘 log M 即 L 正比 M 的 3.72 次方
指数三点七,略高于课本的三点五——这不是误差,是真相的形状:主序低质量端更陡(约四点五)、大质量端更平(约三点零),全段拟合出来的单指数是个折中值。拟合的功课就在这里:单指数是方便的记忆法,分段指数才是物理。若把数据分两段重拟(一倍太阳为界),可以亲手看到指数的滑动。
指数的物理来历值得一推:光度由产能与输能共同定标,产能按温度的三至四次方(质子链)或十五至二十次方(碳氮氧),中心温度又随质量按约零点六次方爬升;输能端,辐射扩散给出光度对质量与不透明度的敏感度。两头的标度关系相乘,指数落进三点到四的区间——它是产能温敏与结构响应的合力,不是哪个单一机制的产物。这也解释了拟合指数为何随质量滑动:低质量星核心靠对流输能(温敏路径不同),大质量星换碳氮氧循环(温敏更高但核心变小),机制切换处指数必有折点。
寿命公式的来历本节补全推导:燃料库存正比质量,消耗速度就是光度,两者相除得寿命正比质量的负二点五次方(指数取一点五加一)。把整条链用代码串起来,并和第八章星团定年互相校验:
# 寿命公式与星团年龄的联动校验 for M in (1.0, 1.33, 2.0): L = M**3.5 t_Gyr = 10.0*M/ L # 燃料正比 M,消耗正比 L print(f"质量 {M:.2f}:光度 {L:.2f} 倍太阳,主序寿命 {t_Gyr:.1f} Gyr")
输出(真实运行结果):
质量 1.00:光度 1.00 倍太阳,主序寿命 10.0 Gyr 质量 1.33:光度 2.86 倍太阳,主序寿命 4.6 Gyr 质量 2.00:光度 11.31 倍太阳,主序寿命 1.8 Gyr
一倍三三倍太阳质量的寿命四点六 Gyr,与第八章那个三倍太阳光度拐点的星团年龄对上了——两条完全不同的路(本节的公式链与上一章的等时线)在同一坐标相遇,交叉印证闭环。
把一份新数据集从原始表格做到结论,流程五步:第一步,汇集双星参数并标注质量来源(动力学质量优先,模型质量降级使用);第二步,剔除或标记特殊对象——化学特殊的星、吸积污染的光度、蓝离散星统统单独隔离;第三步,对数坐标散点图初检,肉眼先看折点在哪;第四步,分段最小二乘加残差分析,残差的系统弯曲提示还要再分段;第五步,把拟合指数代入寿命公式,与星团年龄文献值对比,偏差应在一成五以内。五步做完,读者得到的不是一个数,而是一条带误差条的完整证据链——这正是第九章反复强调的"可复现"三个字的落地形态。
误区一:拿主序星与巨星混拟——巨星偏离质量-光度主关系,混入必歪。误区二:忽视光度单位——观测给的常是视星等,换算光度要过距离与热改正两道门。误区三:用拟合指数外推到零点一倍太阳以下——那里氢分子与尘埃改写了物态,公式整体失效。
下一节从玩具代码与手拟合升级到工业级工具链,看看专业团队怎么做同一件事。
多数人拟合到指数就收工,残差才是第二遍阅读的正文。把每个数据点对拟合线的偏差按质量排列,会发现三处系统性弯曲:零点八倍太阳附近下沉——对流核转辐射核的机制切换;三倍太阳附近抬升——碳氮氧循环接管后温敏变陡;十倍太阳以上再度压平——辐射压稀释了气体压的话语权。三处弯曲正是第三章"机制分区"的直接读数,拟合于是从"找平均"升级为"画地图"。进阶做法是给残差加权重:动力学质量误差小、光度误差大的点在拟合里自动降权,误差条真正进入了判定。这份"残差地图"还有天体物理外延——偏离主关系的个体常是双星污染或特殊演化的受害者,第八章的蓝离散星就是这么被逐出的。
寿命公式拟合出来不是终点,要进互检闭环:用拟合的寿命关系预言一批不同年龄星团的拐点位置,再与观测星团对表。预言与观测的偏差分布应表现为随年龄增长的缓变趋势——因为等时线里的微观物理误差随质量段变化。这一步互检的价值超出定年本身:它把质量-光度关系、寿命公式、等时线三件本该独立的工具锁进同一个误差框架,任何一件出问题,闭环立刻报警。第八章的球状星团年龄与宇宙学年龄的紧张关系,正是这类闭环盯梢的产物——闭环没有裁决权,但Nobody能在它眼皮底下长期说谎。
(更正上句:闭环没有裁决权,但也没有人能在它眼皮底下长期说谎。)
自测这份作业是否合格,可按四条打分:数据源是否注明动力学或模型质量,混用未标注者扣分;分段拟合是否做出了指数滑动并解释机制归属;残差是否做了系统弯曲的归因;最后是否完成了与星团年龄的互检。四条全中的读者,事实上已经完成了一次微型科研全流程——选题(关系是否成立)、数据(双星表)、方法(最小二乘)、验证(闭环)、结论(指数与分段)。本节的目标从来不是三点五或三点七这个数字,而是让你从此面对任何"经验关系"时,本能地追问四件事:数据哪来、怎么清洗、残差如何、闭环了没有。