---
title: "从固定笛卡尔轨迹测出一个世俗周期"
description: "下载原始轨迹和标准库 Python 脚本，校验输入哈希，复算三个力模型的偏心率周期与停止边界。"
canonical_url: "https://sandboxphysics.com/zh/stories/secular-orbits/measure-periods-from-frozen-trajectories/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/secular-orbits/measure-periods-from-frozen-trajectories/"
last_modified: "2026-10-28"
---

[从远处力矩走到 Kozai–Lidov 轨道循环](https://sandboxphysics.com/zh/stories/secular-orbits/)

AC09 · Tutorial

# 从固定笛卡尔轨迹测出一个世俗周期

Sandbox Physics · 2026-10-28

这份实验从实际保存的笛卡尔积分轨迹测量偏心率循环。Python 标准库脚本会校验输入哈希、提取轨道元素、独立积分平均方程并寻找峰值。数据是初值和单位完全明确的合成动力学参照。

## 开始前需要什么

需要 Python 3.9 或更新版本、终端，以及 L1 的向量定义。直接分析不需要安装 REBOUND；只有重新生成原始积分时才需要它。

## 下载一个可以独立运行的实验目录

使用下方公开材料链接下载压缩包，解压到空目录。把分析脚本、八份 CSV 和出处 JSON 保持在同一目录。材料还包含可选原始轨迹生成脚本、说明、固定分析输出及校验和，匿名访问即可获得。

在该目录执行下面的命令。程序只使用 Python 标准库，结果写入新的分析目录。它会先检查积分器版本标识，并逐一核对原始文件与出处记录中的 SHA-256；不匹配就停止，避免悄悄换了一组实验。

将新生成的周期分析 JSON 与附带期望文件比较。在声明的 Python 浮点计算条件下，数值结果应可复算。平台和原始哈希记录在输入出处里，派生结果另外保留处理方法。

```
python3 analyze-frozen-orbits.py --data-dir . --output-dir rerun-analysis
```

对应阅读：REBOUND 5.2.2 official Kozai example and IAS15 integrator · Tremaine & Yavetz, Why do Earth satellites stay up?, arXiv:1309.5244v1

## 每行数据究竟保存了什么

CSV 每行依次是时间、三个位置分量、三个速度分量，以及伴星的三个相对位置分量。坐标系以中心恒星为原点，轴不旋转。初始内轨近心点和伴星都朝第一轴正向，外轨绕第一轴倾斜。

引力常数、中心恒星质量、伴星质量与初始内轨半长轴都为一，内轨开普勒周期为二乘圆周率。将时间除以外内半长轴比的三次方，便得到无量纲世俗时间；保存间隔为零点零零五。

出处记录区分完整牛顿与瞬时四极文件。前一组由三粒子 IAS15 积分产生；两个四极对照则积分中心引力加声明的潮汐加速度，伴星按指定圆轨时钟运动。两组都保存实际积分得到的位置与速度。

分析先由叉积计算角动量，再从瞬时状态计算偏心率；平均向量方程另行积分，最大步长为零点零零一个世俗时间。两条历史都没有用拟合波形替代动力学。

$$
\tau=\frac{t}{A^3},\qquad A=\frac{a_2}{a_1},\qquad \boldsymbol e=\boldsymbol v\times(\boldsymbol r\times\boldsymbol v)-\frac{\boldsymbol r}{r}
$$

最后一个等式采用单位中心引力参数。

对应阅读：REBOUND 5.2.2 official Kozai example and IAS15 integrator · Tremaine & Yavetz, Why do Earth satellites stay up?, arXiv:1309.5244v1

## 让周期估计避开快振荡

直接偏心率包含公转时间尺度上的细小起伏。如果直接寻找局部极大值，会把许多快振荡都当成世俗循环。脚本先用一个外轨周期做居中滑动平均，再挑选较高的极大值，把相隔不到一个世俗时间的候选峰合并，每组保留最高峰。

平滑后偏心率振幅至少达到零点二，才使用这套大幅循环估计。低倾角支便不报告大循环周期。近极轨记录在出现完整复现前已经停止，同样不报告周期；JSON 用空值并附解释。

报告周期是相邻选定峰的间隔平均。将平滑窗口减半和加倍，再计算一次，可以看出处理方法的敏感度。这不是统计置信区间：原始轨迹没有随机测量噪声，窗口变化检验的是分析选择。

这套方法针对当前记录设计。对于混沌或逐渐漂移的历史，应保留每段峰间隔并检查原始曲线，不宜强行压缩成一个平均周期。

$$
\widehat P=\frac{1}{N-1}\sum_{k=1}^{N-1}(\tau_{k+1}-\tau_k)
$$

至少需要两个识别峰。脚本同时保存峰时刻，便于检查。

对应阅读：REBOUND 5.2.2 official Kozai example and IAS15 integrator · Klein & Hamilton, Short-range forces beyond double averaging, arXiv:2606.19456v1

## 复算三个模型的对照结果

默认完整力轨迹的分组峰时刻为二点五一零和七点五六五个世俗时间，因此周期为五点零五五；独立平均记录为五点零二五。直接最大偏心率约零点八四三四八七，平均最大值为零点八三八九零九。另行检验的前三个世俗时间内，积分器之间的误差远小于这些模型差异。

再看初始倾角同为七十五度的配对记录。外内半长轴比为六时，完整牛顿、瞬时四极、双平均的周期分别为五点零零五、四点八一零、四点六七零；比值为二十时，分别为四点六七五、四点六六五、四点六七零。输出中的受控比较分组把这三个结果放在一起。

瞬时四极与双平均比较，在相同空间阶数下检查快相位被平均的影响；完整牛顿与瞬时四极比较，则检查空间截断。长时间非线性相位差和有限峰选取也会影响结果，两种残差不一定能当作线性修正相加。

派生 CSV 提供原始偏心率、平滑曲线、平均偏心率和共同时间上的差值。近极轨派生文件只写双方共同存活的区间，摘要仍保留两个模型各自完成的终止时间。

对应阅读：Liu, Muñoz & Lai, Short-range forces in triple systems, arXiv:1409.6717v2 · REBOUND 5.2.2 official Kozai example and IAS15 integrator · Klein & Hamilton, Short-range forces beyond double averaging, arXiv:2606.19456v1

## 先改变分析选择，再考虑重做积分

第一个值得尝试的改动是平滑窗口，保持力模型不变。记录哪些峰移动、周期判断是否稳定。再比较对相位敏感的位置误差与慢变偏心率误差，这样能区分分析选择和积分选择。

如需重算原始轨迹，在独立环境安装固定 REBOUND 5.2.2，再运行下面的可选生成脚本。出处会写入源提交、软件许可、平台、精确初值、精度参数与停止条件。不同平台可能让 CSV 最末位和哈希改变，应保留新生成的出处，不能套用旧哈希。

输出中的相对论例子只积分平均模型，强度为零点八、最大偏心率约零点六二九二七八，并注明直接参照采用牛顿模型。直接验证还需要一套物理一致、经过独立检验的相对论力方程。

```
python3 generate-ias15-reference.py --output-dir regenerated-inputs
python3 analyze-frozen-orbits.py --data-dir regenerated-inputs --output-dir regenerated-analysis
```

对应阅读：REBOUND 5.2.2 official Kozai example and IAS15 integrator · Liu, Muñoz & Lai, Short-range forces in triple systems, arXiv:1409.6717v2

## [亲手改变轨道交换](https://sandboxphysics.com/zh/labs/kozai-lidov-cycles/)

1. 导出一个预设记录，与完整分辨率 CSV 的出处比较；浏览器预设保存的是实际 IAS15 状态的稀疏采样。
2. 比较紧凑和宽层级的数据曲线，再用公开三模型结果判断每一对曲线究竟检验哪项近似。

## 练习与解释性答案

1. 紧凑系统的瞬时四极周期随平滑窗口变化，这能当作观测行星周期的误差吗？

   展开解释

   不能。这些是确定性的合成积分。变化反映峰值估计对窗口选择的敏感度，应与原始曲线一起报告，而不能当作观测置信区间。

2. 若要公平比较两种积分容差，需要固定什么？

   展开解释

   固定初始状态、力模型、输出时刻与停止条件。用更严格容差重算并保存独立出处，然后在共同区间比较位置速度、轨道元素和适用的不变量。

## 公开复算材料

- [下载完整实验压缩包](https://sandboxphysics.com/stories/secular-orbits/materials/materials.zip)
- [阅读独立目录运行说明与范围](https://sandboxphysics.com/stories/secular-orbits/materials/README.md)
- [Python 标准库分析脚本](https://sandboxphysics.com/stories/secular-orbits/materials/analyze-frozen-orbits.py)
- [固定版本、坐标和原始数据哈希](https://sandboxphysics.com/stories/secular-orbits/materials/ias15-provenance.json)
- [三模型对照与峰时刻的期望输出](https://sandboxphysics.com/stories/secular-orbits/materials/period-analysis.json)

[上一篇：比较轨迹时，分清三种不同的误差](https://sandboxphysics.com/zh/stories/secular-orbits/compare-trajectories-and-averaging/) [下一篇：读八极动力学、相对论与一颗行星的可能历史](https://sandboxphysics.com/zh/stories/secular-orbits/read-octupole-gr-and-planet-migration/)

## 来源与计算范围

1. [Tremaine & Yavetz, Why do Earth satellites stay up?, arXiv:1309.5244v1](https://arxiv.org/abs/1309.5244v1)

   固定为2013年9月20日版本，DOI10.1119/1.4874853。势函数18、向量方程23、条件24和第IV节给出四极模型及近圆轨道临界角极限。

2. [Liu, Muñoz & Lai, Short-range forces in triple systems, arXiv:1409.6717v2](https://arxiv.org/abs/1409.6717v2)

   固定为2015年1月7日版本，DOI10.1093/mnras/stu2396。阅读第2–4节、四极势7、八极势8、GR项32–33/42和图3–4、7。浏览器采用圆外轨、测试粒子四极模型，导读继续阅读更完整的模型。

3. [REBOUND 5.2.2 official Kozai example and IAS15 integrator](https://rebound.hanno-rein.de/c_examples/kozai/)

   官方例程用于选择独立直接积分参照。固定轨迹使用REBOUND 5.2.2、源提交c34134716cd484ed9cdb9f7d54ef8d859bdf547d、IAS15 精度参数为十的负十一次方，初值与停止条件另行列明。软件采用GPL-3.0-only，Lab没有复制发布者代码。

4. [Klein & Hamilton, Short-range forces beyond double averaging, arXiv:2606.19456v1](https://arxiv.org/html/2606.19456v1)

   固定阅读2026年6月17日预印本v1，另有八月v2。图1区分平均和物理选择，图2–3展示周期变化，附录B与直接N体例子比较。本页导读原文，浏览器没有复现其中单平均GR及潮汐计算。
