先认清表一里的两类时刻
ajac8553t1_mrt.txt 依次列出行星名、编号、实测中心时刻与误差,再列预测时刻和另一种误差。观测栏为空,就表示这一行没有测量;预测误差属于动力学预报,不能当成望远镜又测了一次。
原 revision1 文件为二万五千零五十八字节,下载的出处文件保存完整 SHA256,筛选前必须通过校验。四百六十六行里,只有五十一行同时给出观测时刻与正的观测误差,其余四百一十五行只有预测。提取文件保留全部五十一次测量,方便检查。
原表还有两个要处理的问题。编号栏实际从头到尾连续计数,尽管说明称它为凌星圈号;b、d、c 分别扣去零、二百五十九、三百九十五,才能得到各自行星圈号。论文描述了二〇二一年 WIRC 遮星,但第430行观测栏为空,不能拿它的预测补上;二〇一九年那次则有实测四千七百一十九点七四一一天,误差零点零零二六天。
两次拟合冻结同一份实测样本
选现在称为 Kepler-289d、Kepler-289c 的外面一对,只保留观测时刻及误差均非空、约化 BJD 小于三千的行。得到中间行星十五次、外行星十次 Kepler 测时。两种似然都使用这二十五个值和原误差,不按残差好坏删点。
比较旧文献时还要留心名字:二〇一四年的 PH3c 是今天中间的 Kepler-289d,PH3d 则是今天外面的 Kepler-289c。跨版本阅读时,周期与轨道内外次序比单独一个字母更可靠。
时间保留原文的 BJD 减去二四五四〇〇〇,以天计。MRT 标为 JD,拿到的正文也未说明 UTC 或 TDB,因此不自行补转换。四位小数天的时刻分辨率为八点六四秒,这与表中给出的测时误差是两回事;共同光度形状拟合引入的时间协方差没有提供。
python3 verify-observations.py --input .
对应阅读:Greklek-McKeon et al. · Schmitt et al. · Greklek-McKeon et al.
把钟表留在反演里面
画图时,可以拟合加权线性历表,再画提前与推迟,并标原测时误差。质量似然本身使用原始时刻;若把估计钟表后的残差当成一组新的独立测量,就会漏掉拟合钟引入的相关性。
联合参数共九个:两个质量、自由偏心组合的实虚分量、每颗行星的周期与中心线性历表起点,以及一个共同的正白噪声散布。中心起点是第十圈与第五圈的名义钟表时刻,实际遮星还要加上摄动;这样定中心可减少起点与周期的采样相关。
换算地球质量时固定采用一点零八太阳质量;这里没有再传播其已发表误差。动力学直接约束的是行星与恒星的质量比,所以绝对质量仍条件于采用的恒星尺度。
对应阅读:Lithwick · Greklek-McKeon et al.
先写明谐波模型与先验
基本计算保留八个零自由偏心率会合谐波,再只加慢频率处的自由偏心率修正。仅慢波的对照保留混叠的内行星第二、外行星第一谐波,移除额外会合信息,同时避免把受迫共振项算两遍。
中间行星质量先验在零点零五至六十个地球质量间均匀,外行星在五至六百之间均匀。自由向量每个分量采用零均值、宽度零点零三的高斯先验,并限制在正负零点一五之间;周期和中心起点使用有界均匀先验,完整边界保存在 timing-results.json。额外散布取三十分钟尺度的半高斯,正支持范围同样明确保存。
似然保留方差归一化。采样结合差分演化、线性偏心项的条件高斯更新,以及对数散布的 slice 更新;偏心抽样若越出支持域就拒绝,有限正质量使用截断正态条件分布。对数质量、对数散布的提议包含坐标变换的雅可比。
这些支持域定义了一套数学上的近似模型,并未逐一证明每个偏心组合都对应可靠的完整三行星轨道。自由向量较大时,以及加宽先验后的结果,尤其需要同小偏心近似的边界一起读。
对应阅读:Deck & Agol · Lithwick · Greklek-McKeon et al.
下载公开材料,再独立运行
下载脚本读取公开白名单,逐项校验字节数和 SHA256,建立能独立使用的目录。原表、脚本、冻结输出和压缩链都通过网站提供,无需访问私有仓库或交互实验引擎。
先运行很短的观测筛选检查与冻结链分析。轨道脚本另用标准库重算默认合成牛顿轨道,这是教学数值实验,与真实 Kepler 测时分析分开。最后一条命令重新计算实测后验,使用四组相互独立、各三十名 walker 的采样群。
完整比较与敏感性实验可用 run-frozen-inference.py 重跑。其中一组对同一实测样本加宽自由偏心先验,另一组在相同整数圈号与原误差上做明确标注的解析模型注入。注入输出把原实测时刻单独保留,替换后用于分析的时刻明确标成合成。
curl -fsS -O https://sandboxphysics.com/stories/transit-timing/download-tutorial.py
python3 download-tutorial.py --directory ac19
cd ac19
python3 verify-observations.py --input .
python3 reproduce-orbits.py --out new-orbit
python3 analyze-frozen-posterior.py --directory .
python3 reproduce-timing.py --input . --out new-posterior --iterations 16000 --ensembles 4
对应阅读:Greklek-McKeon et al. · Deck et al. · Deck & Agol
把区间与差异一起读
下表直接读取保存的后验摘要。方括号给第十六与第八十四百分位,不是硬边界,也不是关于真实系统覆盖率的声明。加入会合项后,外行星的条件分布变窄,中间行星宽阔的质量长脊也改变了。
接着看残差与额外散布。即使加上会合项,近似模型仍需要约十五分钟额外散布,外行星原测时误差却通常不到一分钟。代表性后验抽样处,按原误差计算的残差平方和仍有几百;它不是最小化后的卡方,也没有被赋予频率学概率。
这里的重要物理结果,是简化两行星谐波模型在原测量精度下仍有显著不足。这种条件区间仍需完整三行星分析与观测模型检验,才能判断相应的真实质量准确度。
| 近似模型 | 中间质量/地球单位 | 外行星质量/地球单位 | 额外散布中位数/分钟 |
|---|---|---|---|
| 仅慢谐波 | 27.9 | ||
| 加入会合分量 | 15.6 |
对应阅读:Deck & Agol · Greklek-McKeon et al. · Greklek-McKeon et al.
先找失败,再谈精度
检查独立采样群轨迹,以及保存的逐次群平均一致性诊断。数值接近一有助于判断相互一致,却不能证明所有模式都已走遍。有效群平均数计的是相关迭代的平均,不是独立 walker 抽样个数。
最初的宽先验采样暴露出未混合好的第二模式。后来加入条件更新与对数散布 slice 采样,再保存最终诊断;早期失败保留在核验报告。同数据的宽先验计算,用来检查较窄偏心率假设是否藏住了质量长脊。
解析注入采用六与一百五十个地球质量及注明的自由向量,再按原测时误差加入噪声。它检验已知的质量与自由向量能否在这种稀疏采样下被找回;谐波物理的独立检验,则来自真实牛顿积分事件与另一套 IAS15 计算。单次注入本身也不能测量区间覆盖率。
换下一份数据时,先记下时标、实测与预测栏、整数缺口、似然归一化、先验支持域、链的一致性,以及模型残差。这七项能让一个质量区间成为有明确范围的物理陈述。
对应阅读:Deck et al. · Deck & Agol · Greklek-McKeon et al.