∫π每天一道数学题
← 返回数书九章
数书九章 · 第 15 讲 · 2026-11-07" · 约 12 分钟

日影测量——圭表测影的数学

秦九韶比较临安与阳城的日影数据,用插值法推算夏至后某日的影长:这是中国古代天文观测与数学结合的经典。

原典

問厯代測景惟唐大衍厯最宻本朝崇天厯陽城冬至景一丈二尺七寸一分五十杪夏至景一尺四寸七分七十杪九係與大衍厯同今開禧厯臨安府冬至景一丈八寸二分二十五杪夏至景九寸一分欲求臨安府夏至後差幾日而景與陽城夏至日等較以大衍厯晷景所差尺寸各幾何

答曰大暑後五日午中景長一尺四寸八分八十五杪

術曰以冬至景減夏至景餘為景差以為實置象限度九十一度三十一分四十四杪加十一度二十五分二十七杪半命度為寸得一百二寸五千六百七十一分半為法以除前差實得空寸九千六百六十四分四十杪不盡棄之自乗得節泛數九千三百四十分不盡棄之

——秦九韶《数书九章》天时类第五题

这道题说的是什么

古代用圭表测量日影长度来确定节气。表高固定,正午时表的影子落在圭尺上,读其长度。

已知数据:

  • 阳城(唐代观测站):冬至影长1丈2尺7寸1分50杪,夏至影长1尺4寸7分79杪
  • 临安(南宋观测站):冬至影长1丈8寸2分25杪,夏至影长9寸1分

问题:

  1. 临安的日影什么时候与阳城夏至日的影长相等?
  2. 与《大衍历》的日影数据相比,相差多少?

示意图

揆日究微示意图

圭表测影:正午日影长度与太阳高度角成反比,通过比较不同纬度的影长可以推算节气。

古人的算法

第一步:计算临安的影差

影差=冬至影−夏至影=18.225−9.1=9.125 尺\text{影差} = \text{冬至影} - \text{夏至影} = 18.225 - 9.1 = 9.125 \text{ 尺}

第二步:计算"象限"对应的影长变化率

秦九韶用了一个复杂的转换:将角度转换为寸的单位。

"象限度" = 91度31分44杪 + 11度25分27.5杪 = 102度56分71.5杪

"命度为寸":把角度直接当作寸数处理,得到102.56715寸作为"法"。

第三步:计算影长变化的非线性系数

节泛数=(影差法)2=(9.125102.567)2≈0.007934\text{节泛数} = \left(\frac{\text{影差}}{\text{法}}\right)^2 = \left(\frac{9.125}{102.567}\right)^2 \approx 0.007934

这个系数的平方,反映了影长随节气变化的非线性程度。

第四步:计算各节气的影长

秦九韶用了一个经验公式:每个节气有一个"乘率",乘以节泛数,加上夏至影的平方,开方得到该节气的影长。

例如,大暑的乘率是109:

大暑影2=109×9340+9102=1018060+828100=1846160\text{大暑影}^2 = 109 \times 9340 + 910^2 = 1018060 + 828100 = 1846160 大暑影=1846160≈13.59 尺\text{大暑影} = \sqrt{1846160} \approx 13.59 \text{ 尺}

第五步:插值求等影日期

阳城夏至影长 = 1.4779 尺

临安大暑后影长需要通过插值计算。秦九韶用了二分法:

  • 大暑后5日影 ≈ 1.4885 尺
  • 大暑后3日影 ≈ 1.4236 尺
  • 大暑后4日影 ≈ 1.4560 尺

阳城夏至影 1.4779 尺在大暑后4日和5日之间,更接近5日。

最终答案:大暑后五日寅时,临安日影与阳城夏至日影相等。

现代数学视角

这个问题本质上是三角函数的应用。

日影长度 LL 与太阳高度角 hh 的关系:

L=Hcot⁡hL = H \cot h

其中 HH 是表高,hh 是太阳高度角。

太阳高度角与纬度 ϕ\phi、赤纬 δ\delta 的关系:

sin⁡h=sin⁡ϕsin⁡δ+cos⁡ϕcos⁡δcos⁡θ\sin h = \sin \phi \sin \delta + \cos \phi \cos \delta \cos \theta

其中 θ\theta 是时角。正午时 θ=0\theta = 0,所以:

h=90°−∣ϕ−δ∣h = 90° - |\phi - \delta|

不同纬度的影长差异

阳城约北纬34.8°,临安约北纬30.3°。

夏至时太阳赤纬 δ=23.5°\delta = 23.5°:

  • 阳城正午太阳高度:h=90°−∣34.8°−23.5°∣=78.7°h = 90° - |34.8° - 23.5°| = 78.7°
  • 临安正午太阳高度:h=90°−∣30.3°−23.5°∣=83.2°h = 90° - |30.3° - 23.5°| = 83.2°

所以临安的影长比阳城短,这是符合预期的。

影长随节气的变化

秦九韶用的经验公式本质上是对 cot⁡(90°−∣ϕ−δ∣)\cot(90° - |\phi - \delta|) 的近似。由于太阳赤纬随时间近似正弦变化,影长也近似正弦变化,但秦九韶用的是二次近似(节泛数),比线性近似更精确。

跟高中数学的关系

本题对应高中数学的解三角形和三角函数。

思想延伸:秦九韶用经验公式近似三角函数,体现了"以简驭繁"的数学思想。在缺乏精确三角函数表的时代,用二次多项式拟合正弦曲线是一种聪明的做法。

运算练兵场:本题涉及角度换算、开平方、插值法,是对运算能力的综合训练。

综合题常客:高考中常以实际应用题形式出现,如测量塔高、船距等。

思考与拓展

  1. 如果表高是8尺,阳城冬至影长12.715尺,求冬至正午太阳高度角。

  2. 秦九韶用二次近似代替三角函数。如果改用线性近似,误差会多大?

  3. 现代天文学如何用球面三角精确计算日影长度?与秦九韶的方法有何本质区别?

  4. 查阅《周髀算经》,了解更早的日影测量方法。

一句话总结

秦九韶用插值法比较不同纬度的日影数据,体现了中国古代天文观测与数学计算的完美结合。

— Y. · 2026-11-07"
日影测量——圭表测影的数学 · 数书九章第15讲