推气治历——从两次冬至到回归年
秦九韶用两次冬至的观测数据,通过线性插值推算出回归年长度和岁余。这是中国古代历法数学的核心:用有限观测推断无限周期。
原典
問太史測驗天道慶元四年戊午嵗冬至三十九日九十二刻四十五分紹定三年庚寅嵗冬至三十二日九十四刻一十二分欲求中間嘉泰甲子嵗氣骨嵗餘斗分各得幾何
按紹定三年庚寅之冬至實紹定四年辛夘之始辛夘距戊午三十四年積年為三十三
答曰氣骨十一日三十八刻二十分八十一杪八十小分餘嵗五日二十四刻二十九分三十杪三十小分斗分空日二十四刻二十九分三十杪三十小分
術曰先距前後年數為法置前測曰刻分減後測曰刻分餘為率(不足減則加紀策)以紀策累加之今及天道合用五日以上數為實以法除實得嵗餘去全日餘為斗分以所求中間年上距前測年數乘嵗餘益入前測日刻分滿紀策去之餘為所求氣骨
——秦九韶《数书九章》天时类第二题
这道题说的是什么
南宋太史局的观测记录了两条冬至数据:
- 庆元四年(戊午年)冬至:三十九日九十二刻四十五分
- 绍定三年(庚寅年)冬至:三十二日九十四刻一十二分
两冬至之间相隔33年。秦九韶要从这两次观测中推算出三个关键参数:
- 气骨——嘉泰甲子年的冬至时刻,距甲子日子正初刻后的日数
- 岁余——回归年减去365天的剩余部分(即回归年长度的小数部分)
- 斗分——岁余去掉5日之后的剩余(因为岁余约5日,斗分是更精细的修正)
这是中国古代历法学的核心问题:如何用有限次观测,推算出天体运动的周期参数?
示意图
两次冬至观测间隔33年,通过线性插值推算中间年份的气骨和岁余。纪策=60甲子,是时间取模的周期。
古人的算法
第一步:算岁余
秦九韶的方法非常巧妙。他把两次冬至的日刻分相减:
后测 − 前测 = 32日94刻12分 − 39日92刻45分
由于后测的日数(32)小于前测(39),直接相减会出现负数。秦九韶的解决办法是"加纪策"——给后测加上一个纪策(60日):
这53日1刻67分是33年间冬至时刻的总位移。但术文要求"商数必得五日以上"——意思是33年的岁余乘以33至少要大于5日×33=165日,才能确保精度。53日不够,所以再加一个纪策:
仍不够(需要≥165日),再加一个纪策:
现在 ,符合条件。
第二步:求岁余和斗分
岁余是回归年超过365天的部分,约5.24日。斗分是岁余去掉5日之后的更精细部分:
第三步:求气骨
嘉泰甲子年上距庆元戊午年6年。所以:
满纪策(60日)去之:
答曰:气骨十一日三十八刻二十分八十一杪八十小分 ✓
现代数学视角
秦九韶的方法本质上是线性插值。设回归年长度为 天,则:
其中 是 年间冬至时刻的位移(模60),。
现代天文学给出的回归年长度约为 365.2422 天。秦九韶得到的岁余约5.24日(换算后),与现代值非常接近。
这个方法的精髓在于三个关键点:
周期性处理:用60甲子作为周期模数,处理跨周期的时间差。冬至时刻每年推迟约5天,33年后累计约165天,但因为是周期性的,实际位移在60天以内。
线性外推:假设回归年长度在短期内不变,用两次观测线性插值。这相当于假设太阳周年视运动是匀速的——虽然实际上地球公转速度有微小变化,但在33年的尺度上这个近似足够好。
精度控制:要求商≥5日,确保精度足够。如果商太小,舍入误差会放大。
跟高中数学的关系
本题对应高中数学的等差数列和周期函数概念。
思想延伸:秦九韶的线性插值思想是现代数值分析的基础。给定两个点 和 ,求中间某点的值:
这正是秦九韶算法的现代形式。
运算练兵场:本题涉及大数运算、分数运算、周期取模,是对运算能力的综合训练。特别是"加纪策"的操作,本质上是在做模运算——当被减数小于减数时,加上模数使其够减。
综合题常客:高考中常以数学文化题形式出现,考查学生对古代数学方法的理解和应用。2017年全国卷算法框图题就涉及了类似的周期计算。
思考与拓展
-
如果庆元四年冬至是39日92刻45分,绍定三年是32日94刻12分,但间隔不是33年而是34年,岁余会变成多少?商数还能满足"五日以上"的条件吗?
-
秦九韶要求"商数必得五日以上",如果商数太小,对结果有什么影响?请用误差分析说明。
-
现代天文学的回归年长度是365.2422天。秦九韶的算法与现代值相比,误差是多少?这个误差在当时的观测条件下是否可以接受?
-
查阅《授时历》,郭守敬是如何改进冬至时刻的测量精度的?他用了什么方法减少线性插值的误差?
一句话总结
秦九韶用两次冬至观测,通过线性插值和周期取模,精确推算出回归年长度——这是中国古代历法数学的巅峰之作。