学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 物理论文 > 天文学论文

中国古人如何制定日食食限的探讨

来源:学术堂 作者:韩老师
发布于:2014-11-24 共7349字
论文摘要

  一次完整的日食推算包括计算日食食甚时刻、食分大小和食延情况。中国古代的日食理论是一种较为完整的数值算法系统,在宋代已经趋于完善。

  某次合朔时,能发生日食的月亮到黄白交点的最大距离称为日食的食限。20 世纪 80 年代以来,天文学史家在中国传统日食理论的研究取得了大量成果,其中就包括对日食食限的专门研究。他们集中讨论 了 历 法 中 各 种 食 限 的 数 值 大 小 及 精度[1]470 -483,[2 -4]。而接下来重点研究的则是,在特定的历法中讨论某种食限是怎样定义的及其算法是否合理,有无明确的天文意义。日食算法的难点和核心问题是如何处理月亮视差对日食食限、食分和食甚的影响。那么,宋代历法家是怎样做的呢,他们的处理方法是否合理和有效呢? 本文将在已有研究的基础上,对此进行更深入的讨论。这里所论及的食限算法,不但包括食限的数值,还包括与之相关的判断依据和算法,如食分算法、交前后分算法等。我们首先给出食限相关算法的重建模型①,[5]然后对照重建模型梳理古代历法,以解释历法中算法的构造原理和天文学意义,旨在阐明中国古人是如何定出日食食限的,以及阴阳历食限为何不相等的原因。

  一 交食的判断与食限的定义

  现代天文学通过合朔时月亮黄经和黄纬是否在某个范围内来判断日食。例如: 当黄经大于 18. 6°( 或黄纬大于 94'50″) 时,则不可能发生日偏食; 当黄经小于9. 7°( 或黄纬小于53'58″) 时,则一定会有中心食发生。中国古代历法不计算月亮黄经和黄纬,因为中国传统天文学中没有黄极的概念。宋代历法有两种食限定义标准,一种是合朔时能发生日食的月亮距离黄道的最大高度,即月亮的极黄纬,历法中称之为月去黄道度; 第二种是月亮距离黄白交点的最大长度,即月去交点的白道距,历法中称之为去交日( 度) 或入交日( 度) 。

  现存的宋代历法中,除《应天历》、《乾元历》、《仪天历》及《明天历》外,都有“求月去黄道度”算法①。

  但是,它们并没有使用月亮的极黄纬来判断交食的发生。对于第二种食限,所有历法都给出了食限的数值及判断方法,入交日( 度) 是历法进行交食判断的唯一标准。由于宋代历法中并没有给出月亮极黄纬算法所对应食限的数值,那么,极黄纬算法也不可能是辅助和补充入交日算法进行交食判断的,它在交食判断上就显得毫无意义了。

  二 视差修正与食差算法重建模型

  由于月亮视差,判断合朔时有无日食要计算视月亮距离视黄白交点的长度。中国古代历法的算法思路是,先求得到合朔时真月亮到真黄白交点的距离; 然后进行视差修正,即求得合朔时真月亮到真黄白交点与视月亮到视黄白交点的距离增量 p,最后在入交泛日上加增量 p,就得到视月亮到视黄白交点的距离。

  薮内清、曲安京等人把距离增量 p 的重建模型表示为p =H0sinIsinzsinF ( 1)其中 H0为地平视差的最大值,I 为黄白交角,z 为月亮的天顶距,F 则表示黄道与过月亮的地平经圈的交角。与式( 1) 相对应,中国古代历法中视差算法的模型是p = k0+ Δe( 2)式中,Δe称为食差,它包括气差 Δq和刻差 Δk,k0是一常数。对于 k0,除《纪元历》外,其余史载宋代历法均取 0。

  若设当地的地理纬度为 φ,定朔时太阳的时角和黄经分别为 h 和 λ,则食差 Δe的重建模型由下式表示。[1]434 -435,[7]Δe= Δq+ Δk≈ k( sinhcosλ - coshsinλ)k0=H0sinIsinφcos{ε( 3)式中,ε 为黄赤大距,k = H0cosφsinε / sinI 是一常数。

  中国古代历法中的日食食差算法模型与重建模型是一致的,并且有着明确的天文意义。而若将视差算法放在整个日食推算中去讨论,应该怎样解释具体的推算术文,历法家又是怎样认识和处理视差对食限和食分的影响呢?

  在重建模型中,若取 φ = 34. 43°,ε = 23. 60°,②H0= 0. 95°,I 取平均值 5. 1453°,则可得 k0= 5. 48°= 5. 56 古度,k = 3. 50° = 3. 55 古度③。夏至所在日正午时刻,F =90°,z = φ - ε =10. 83°,根据式( 1) 可得 p 值为1. 9904°,为视差导致的真月亮到真交点与视月亮到视交点的距离在白道上增量的最小值。二分日日出时刻,z = 90°,F = 180° - ε - φ = 121. 97°,可得 p 值为8. 9863°,为此增量的最大值。春分日正午时刻,F =66. 40°,z = φ = 34. 43°,则 p = 5. 4884°,近似认为是此增量的平均值。

  在历法模型中,若按《纪元历》食差算法计算得到,夏至日正午时刻食差为 4. 4563 古度,春秋分日日出时刻的食差为 - 4. 4563 古度,因此距离增量 p与食差 Δe不是一回事,它不但包含食差 Δe,还包含k0。而春秋分日正午时刻,《纪元历》气刻差均为 0,这是食差最特殊的零点,视差造成的白道位移 p 即为常数 k0。《纪元历》的 k0取 5. 68 古度( 升交点)和 -5. 50 古度( 降交点) 。而重建模型中春分日正午时刻的 p = 5. 4884°与这两个值十分接近。通过以上的比较和分析,我们能够做出以下推测,在长期的观测和推算中,古代历算家有可能得到了某个特殊时刻的月亮视差,并求得此时真月亮到真黄白交点与视月亮到视黄白交点的距离增量 p0,进而对 p0进行修正,得到任意时刻的距离增量 p 和视差值。

  这个特殊时刻的视差应该是最容易观测和计算的,一般应该是一年中视差取平均值的时刻。而春分日正午时刻就是这个特殊时刻最理想的选择。此时,那个距离增量 p 就等于 p0,其他任意时刻的 p 值可以通过 p0加入食差修正而得到。同时,历法中食差算法模型中的 k0①就是春分日正午时刻黄白交点在白道的位移量 p0,而食差 Δe则是任意时刻视差造成的交点在白道上的位移与春分日正午该位移的差值。日食食差算法有可能是在这样的思路下设计出来的。宋代周琮在讨论日食视差时称:四正食差: ……苟非地中,皆随所在而渐异。纵交分正等同在南方,冬食则多,夏食乃少。假均冬夏,早晚又殊,处南北则高,居东西则下。视有斜正,理不可均。

  明代朱载瘫也对视差的成因和变化进行了解释:春分已后,日行赤道北畔,交外偏多,交内偏少。秋分已后,日行赤道南畔,交外偏少,交内偏多。是帮有南北差。冬至已后,日行黄道东畔,午前偏多,午后偏少,夏至已后,日行黄道西畔,午前偏少,午后偏多。是故有东西差。

  设立南北差是由于食差在二分前后有正负的变化; 设立东西差则是由于在二至点前后食差的最值发生变化。他们的解释与我们的分析是相同的。

  三 宋代历法中的日食食限算法

  北宋初期行用的《应天历》、《乾元历》、《仪天历》分两步来判断交食。第一步是根据入交泛日( 黄道内外分) 来判断是否发生日食。我们以《应天历》为例分析其交食的判断,《乾元历》、《仪天历》二历的判断方法与之类似。《应天历》术文称:置黄道内、外分,如初准已上、末准已下为入食限。……月在黄道内则日食,在外则不食。

  按照术文,如果真月亮到真交点距离在或偏食限以内,并且月亮位于黄道北( 内) ,则会有日食发生; 否则不会发生日食。在修正了月亮视差之后,历法给出第二步,即以入交定日来判断交食。《应天历》求“距交分”算法称:

  置交前后分,以黄、赤二差加减之,为距交分。如月在内道不足减者,返减入外道,不食; 如月在外道不足减,返减食差,为返减入内道即有食。

  由此可知,食差修正后的月亮在黄道的内外依然是判断有无日食的标准。即使是在第一步中已经推得月亮的位置在内道,但如果加入食差修正后,月亮的位置在外道,日食仍不会发生。《应天历》日食判断的第一步实际上并没有起到真正的作用。其后的宋代历法都直接以入交定日来判断。例如,《观天历》“求日入食限交前后分”术文称: ②置朔入交定日及余秒,以气、刻、时三差各加减之,如交中日已下为不食,已上去之,如后限已下为交后分; 前限已上覆减交中日,余为交前分。

  《观天历》判断有无日食的标准仍是月亮在黄道的内外位置。加入时差和食差修正后,视月亮到视交点的距离会在一个交点月内,这个距离减去交中就很容易判断视月亮在黄道的内外情况。但是,《观天历》此时使用的日食食限是或偏食限,而必偏食限在食分算法中才出现,其食分算法称:求日食分: 置交前后分,如阳历食限已下为阳历食定分; 已上,用减一万二千八百,余为阴历食定分。如不足减者,日不食。

  历法阴阳历食限分别取 7900 和 4900,据此可知,先前求得的交前后分如果大于 12800 就不会有日食发生。由此看来,《观天历》的或偏食限在其日食判断中并没有发挥作用。

  《明天历》的日食食限算法以小字形式给出:其去交定分不足减、乃覆减食差总数、若阳历覆减入阴历,为入食限; 若阴历覆减入阳历,为不入食限。凡加之满食限以上者,亦不入食限。

  根据术文,视差修正后,只有月亮位于黄道北且到交点距离小于必偏食限 1464 时才有日食发生,其他任何情形都不会有日食。在视差修正前,《明在历》不对有无日食做出任何判断; 视差修正后,它直接使用必偏食限判定日食,根本不使用或偏食限; 这些都是其进步之处。《明天历》的食限算法是《纪元历》之前历法中最为简洁的。

  北宋行用的最后一部历法是姚舜辅的《纪元历》。这部历法不再使用月在内外道的标准来判断日食,而以视黄白交点为标准来判断。《纪元历》首先求“朔入交定日”,其算法称:置朔入交常日及余秒,以气、刻差定数各加减之,交初加三千一百,交中减三千,为朔入交定日及余秒。

  接下来,《纪元历》将入交定日分为阴历和阳历,使其限制在半个交点月之内。推算术文称:

  求月行入阴阳历: 视其朔、望入交定日及余秒,如在中日及余秒已下为月在阳历;如中日及余秒已上,减去中日,为月在阴历。

  最后《纪元历》将视月亮的位置限定在四分之一交点月内,并判断视月亮依视白道在黄道的南北哪一侧,直接使用必偏食限定出有无日食,称为“求入食限交前后分”。算法术文为:视其朔、望月行入阴阳历,不满日者为交后分; 在十三日上下者覆减交中日,为交前分; 视交前、后分各在食限已下者为入食限[9]2830。

  《纪元历》的食限算法不再混入食分中的讨论,使食分与食限算法完全分开。《纪元历》判断交食的标准是视黄白交点,直接使用必偏食限一次就可以判断出月亮是否入食限。其食限算法无论在形式上还是思路上都与重建模型是相同的。中国古代历法中的日食食限算法在这个时候完全定型。

  四 月亮在黄道内外与日食的判断

  中国早期天文学家根据经验知道,月亮在黄道外侧时日食的发生机率要比月亮在内侧时小。周琮就曾提到: “月在阳历,校验古今交食,所亏不过其半。”隋代以前的历法,推交食术中就有判断月亮在黄道内外的算法。如《景初历》中有“推合朔交会月蚀月在日道表裹术”,正光历中有“推月在日道表裹术。

  然而到了后来,特别是发现月亮视差影响日食之后,人们发现即使月亮在黄道内侧,也可能不会有日食,而有些日食却也可能发生在黄道外侧。针对这些特殊情况,隋代和唐代早期历法就设计了详细的算法来处理。如《皇极历》中也设立了“推不应食而食术”和“推应食不食术”。但这些算法仅能调整一些特殊情况,精度也不高。

  这个时期,判断日食的基本思路是,首先判断合朔时真月亮的位置( 黄道内还是黄道外) ,根据“内道食外道不食”大致判断出日食的有无,然后再使用食差算法修正月亮与交点的距离,判断特殊情形下的日食,即得出是否外道有食或内道不食。我们暂时称这种日食判断的方法为“内外道法”。

  《纪元历》以前的唐宋历法中,每部历法的日食视差算法细节虽有差别,但它们的推算思路大致相同,其入交定日算法模型是入交定日 = 入交泛日 + Δe。 ( 4)然而,对比重建模型式( 2) ,( 4) 中缺少常数 k0,即这些历法中求得的入交定日不是视月亮到视交点的距离。而历法模型中的食差与重建模型中的食差原理上却是一致的,而且精度也很高。

  那么,只能是这些历法的食差算法与重建模型相同,但视差算法和食限算法可能与重建模型不同。因为重建模型中,日食的判断是以视交点为准的,而历法模型却依照“内外道法”判断,即以真交点为标准。那么,这两种模型又有着怎样的联系呢?

  如图 1 所示,OO'1表示黄道,M1O 表示白道; 按推测,月亮视差实际上是以春分正午时刻为基础进行修正的,则图中直线 O0O'0表示春分日正午时刻由月亮视差造成的视白道的位置。若设视月亮到视交点与真月亮到真交点的距离增量在春分日正午时刻为 p0,任意时刻这个增量为 p,那么两者的差值就是任意时刻的食差 Δe,即 Δe= p - p0。

  图 1 月亮视差与日食食限如果图 1 中 O 表示降交点,那么月亮运动的方向为 OM1的方向。假设月亮行至 M1点,此时视月亮位置在 M″1点,M'1点则为它在春分日正午时刻那条视白道上的投影。通过月亮 M1做直线 M1N,使其平行于黄道,并与视白道交于点 G。于是有 p =GM″1,p0= NM'1= O'0O0,此时入交泛( 常) 日即为OM1。如果有日食,月亮在外道,也就是“食差”与“入交泛( 常) 日”之和“入交定日”一定为负值,即入交定日 = 入交泛日 + Δe=入交泛日 + p - p0≤ 0。 ( 5)又 O0表示春分日正午时刻黄白交点的视白道投影位置,O'0则表示此时视交点的位置; p0= O'0O0就是两者之间的距离。于是以内外道判断交食的方法就能够转化成依黄白交点在春分日正午视白道上的投影点为标准来判断。据此也能判断内道应食而不食与外道不应食而食的情况。如图 1,M1虽在外道,但经过视差修正,得到 M1O + O1O'1- O0O'0=QO0< 0,会有日食发生; M2虽在内道,但 OM2+ M2”O'2- O0O'0> 0,不会发生日食。更特殊地,如果在春分日正午时刻,则不用视差修正,就有月亮在黄道外侧一定不会发生日食,而在黄道内侧一定会发生日食,这正与“内道食外道不食”的判断相符合。

  据式( 5) 可得入交泛日 + p ≤ p0, ( 6)这样,入交泛日与 P 之和小于 p0,月在黄道内,就有日食,大于 p0,月在黄道外则无日食。中国古代的必偏食限一般取 14 度。图 1 中,过 O0作黄道的平行线,可以看到只要合朔时视月亮在这条线以上( p0上侧) ,并且沿着视白道不超过 14 度,就会发生日食,p0就成为在黄道外侧判定日食的食限。唐宋历法中的入交定日的天文学意义是合朔时视月亮到食限下限 p0的距离,而不是视月亮到视交点的距离。只需加上一个常数,入交定日就可以转化为视月亮到视交点的距离。很明显,这个常数就是 p0,于是 k0= p0。这些历法的视差算法同样可写成 p =Δe+ p0= Δe+ k0。这样,以内外道判断日食的历法中的食限算法与重建模型在形式上也是一致的。

  五 日食的阴阳历食限

  视差修正后,依视黄白交点,食限在视白道上被平均分为两部分,黄道上下侧各有一部分。食分可以根据食限在视白道上计算。但以“内外道法”进行日食判断的历法,由于入交定日没有加入 p0,则它们的食限就相当于以真黄白交点起算,而在真白道上进行定义,必偏食限就会完全落在黄道的内侧。

  那么,这就要求交点处的食分一定为零而不是食分的最大值①,导致食分算法不能用统一的表达式来描述。于是,食限分为阳历食限和阴历食限,阳历食限是靠近交点的那段,阴历食限则是必偏食限减去阳历食限的那段。根据重建模型容易得到,视交点在真白道上的投影点就应该是阴阳历食限的分界点,这也是食分取最大值的点。图 1 中的 p0实际上就是阳历食限,它的理论值是 5. 4884°( 5. 5683 古度) 。如果取必偏食限为 14 古度,那么理论上,阴历食限的取值是 8 到 9 古度。如《崇天历》的阳历食限为 5. 30 古度,阴历食限为 8. 84 古度; 《明天历》的阴阳历食限分别为 9. 76 古度和 4. 88 古度; 北宋初期三历的阴阳历食限分别为 9. 6 古度和 4. 2 古度。各部历法阴历食限和阳历食限数值上的差异是由于各历对 p0的测算不同所导致的。

  《纪元历》之前的历法,阳历食限是春分日正午时刻真黄白交点与视交点在白道上的位置差 p0,也就是 k0,这个值是预先测定的。那就意味着这些历法只能先定义了阳历食限( 4 至 6 古度) ,然后才能得到阴历食限( 8 至 10 古度) ,在这种情形下,阴历食限一定会大于阳历食限。古代历法中阴阳历食限为什么不相等的原因也正在于此。

  使用“内外道法”依真交点判断交食,始终要考虑月亮是在内道还是外道,食分算法也会因此变得繁琐。而阳历食限取成 k0,相当于认为如果春分日正午时刻月亮在黄道外侧的话,则不可能有交食。

  但是,阴阳历食限理论上应该相等( 约为 7 古度) ,它们比 k0要大,那么此时月亮如果在黄道外侧 1 度以内,仍可能有交食出现。

  《纪元历》的视差算法中,不再考虑真交点,直接根据视月亮到视交点的距离来判断日食的发生,简化了算法。历法中的入交定日是视月亮到降交点的视交点的距离,那么在降交点处,由于视差使得视月亮沿着月行方向远离视交点,降交点的入交定日就是入交泛( 常) 日加上食差后,再加上春分日正午时刻视月亮在白道上的位移量 k0; 而在升交点处,就要减去位移量 k0。

  《纪元历》阳历食限取作 3400,而其 k0的值则取 3100( 交初) 和 3000( 交中) ②,两者是不一样的。由于《纪元历》的入交定日中没有加入时差修正,它的阴历食限和阳历食限仍然是不相等的。

  六 结果与讨论

  早期的中国传统历法直接以合朔时月亮在黄道的内外来判断有无日食,在内道则食,外道则不食。

  隋代以后,历算家开始将月亮视差引入到日食计算。

  他们选择春分日正午时刻的视差作为标准,通过修正得到任意时刻的视差,依此得到食差; 将这个距离差加在合朔时月亮的位置上,然后判断修正后的月亮位置是在黄道的哪一侧,仍然是在内道食外道不食。他们在设计食分算法时,又不得不将食限分成两部分,取阳历食限为春分日正午时刻黄白交点在白道上的位移量 k0,而阴历食限则用必偏食限减去阳历食限得到。这样处理就造成了阴阳历食限的不相等。《纪元历》以前的所有唐宋历法都是这样判断日食的发生与否和计算日食的食分的。

  《纪元历》放弃使用“内外道法”判断日食,首次明确提出了食限中的常数 k0,并赋予其独立的意义,阳历食限的定义不再与之相联系。这不仅表现在数值和精度的变化,更重要的是它创造性地给出了一种更为合理的判断日食的思路。这里,我们可以考虑一个问题,如果已经知道计算食差是为了计算视月亮到视交点的距离,那么想到依照视交点来判断日食就是很自然的事。然而,《纪元历》之前的历法根本没有这样做。这就意味着它们可能根本没有认识到视月亮、视白道以及视交点等概念,它们设计食差算法的目的并不是修正视月亮,而是修正真月亮,用以判断修正后的真月亮在黄道的内外。由于春分日正午时刻视月亮到视交点的位移量与阳历食限十分接近,于是按这种思路建立的食差和视差算法在形式上可以与《纪元历》的相同,这是一种巧合。虽然通过变换,这些历法的食限算法与重建模型在形式上能够达到一致,并可认为这些历法中也隐含着表达出了常数 k0,但是它们判断日食始终是以真黄白交点为标准的,这与重建模型的思路是完全不一样的。只有《纪元历》依照视交点判断日食,它的食限算法与重建模型基本一致。

相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站