楚国鲁阳公挥戈“回日”与日食事件
2023-05-27武家璧
武家璧
(北京师范大学 历史学院,北京 100871)
据《淮南子》记载,楚国的鲁阳公与韩交战,战酣日暮,鲁阳公挥戈向日,将落日扯回到天空中,继续再战!这场战事引发“时间倒流”的假想,在中国历史上产生了很大影响,古人很少怀疑其真实性,但从现代科学知识来看,鲁阳公挥戈“回日”是不可能的。笔者认为合理的解释是发生了大食分的“云遮日食”:当“食甚”时人们以为到了“日暮”;当复圆时人们又以为“日返三舍”。下面笔者从“日食”的角度,考证鲁阳公酣战事件的真实性和具体年代,并对这场“云遮日食”及其科学意义进行探讨。
一、“日返三舍”是一次“云遮日食”
鲁阳公酣战事件的文献记载,载于西汉淮南王刘安编撰的《淮南子·览冥训》:“鲁阳公与韩构难,战酣日暮,援戈而撝之,日为之反三舍。”东汉高诱注:“鲁阳,楚之县公,楚平王之孙,司马子期之子,《国语》所称鲁阳文子也。楚僭号称王,其守县大夫皆称公,故曰鲁阳公。今南阳鲁阳是也。”[1](P447)东汉王充《论衡·对作篇》载:“鲁阳战而日暮,援戈麾日,日为却还。”[2](P1183)又《论衡·感虚篇》载:“传书言:鲁阳公与韩战,战酣,日暮,公援戈而麾之,日为之反三舍。……或时战时日正卯,战迷,谓日之暮,麾之转左,曲道日若却。世好神怪,因谓之反,不道所谓也。”[2](P230)
如果真是“日返三舍”就等于“时间倒流”,这明显违反人们的经验和常识,于是王充解释为一种错觉:战争实际发生在早晨卯时,鲁阳公误以为是傍晚。王充的这一解释过于主观牵强,很难设想战斗人员会将早晨误以为是傍晚,没有及时纠正而被记载下来。我们认为这是一场发生在下午的“云遮日食”,由于云层遮挡了日食的全部过程,人们并不知道发生了日食,反而把天空的“明—暗—明”现象当成了傍晚时的“日返三舍”。
在此,我们有必要交代一下日食的相关知识。太阳直径是月球直径的400倍左右,日地距离也是月地距离的400倍左右,月绕地和地绕日的轨道近似在同一平面内,从地球上看去日月两个天体具有近似相同的角直径,当月球从地球和太阳中间通过(新月)时,太阳有可能被月球遮住,就发生了日食。月球的黑影落在地球表面上,向东扫过狭长的区域,称为日食带。当月球靠近近地点时(超级新月),月球的本影大于日面,完全遮住整个太阳,就是日全食。[3](P11~12)当观测者处于月球本影范围内,便能看到日全食;而处于半影范围的观测者会看到日偏食,如图1所示。当月球远离近地点时,月球的本影小于日面而不能完全遮档太阳,就会发生日环食。
图1 日食示意图
据统计,每世纪平均发生日全食约67次,月影扫到地面的本影只有几十到200多公里宽,地面上只有少数地区(本影带内)才能看到日全食,而且时间一般为几分钟,最长也只有7分多钟。[4](P215)中心食带与日食南界和日食北界为三条平行线,两两之间的距离为0.55个地球半径。[5](P9)本影带的宽度可达270公里,半影带宽度可达7000公里,长度数千公里。对于同一地点而言,每年能看见日全食的平均机会是1/360[3](P12),大概每300到400年才出现1次日全食,而在两年半内可见日偏食1次[6](P344)。因此鲁阳公酣战时的云遮日食为日全食的可能性极小,大概率是一次大食分的日偏食或者日环食。
如果没有云层遮挡,人们可以清楚地看到日食的全过程,但如果日食发生在阴天或者全过程都有云层遮挡,并且观测地靠近中心食带而发生大食分的日偏食,人们就容易产生一系列错觉。下面以日全食过程的五个阶段为例[7](P33),说明在“云遮日食”的过程中,人们可能产生的三种错觉:
①初亏—②食既——对应傍晚
③食甚——对应“日暮”
④生光—⑤复原——对应“日返”
这三种错觉,同样适用于日环食和大食分偏食。日食的五大过程及其可能产生的三种错觉,如图2所示:
图2 “云遮日食”的错觉示意图
由于食分较大(>0.8)并且有云层遮挡,从“食始—食既”阶段,天空逐渐暗淡下来,但是人们并不知道已经发生了日食,而是依据以往的经验,感知到太阳的昏暗程度已经相当于日暮黄昏。驻守在楚国北部边境的鲁阳公与晋国的韩卿正在进行一场大战,战事胶着至食甚(食分最大)时刻,天昏地暗,鲁阳公贪功好战,不愿退兵。我们可以设想这样的情节:正在酣战之中的鲁阳公明显感觉到时间过得太快了,可能有挥戈回日的举动,以发泄愤懑和不满;没想到“奇迹”发生了:日食进入“生光—复原”阶段,天空逐渐明亮起来,鲁阳公如愿以偿,于是继续战斗!当日食结束时,太阳从云层中钻了出来,人们错误地以为太阳是从地平线以下返回到天空的,太阳的高度与地平线之间足足有“三舍”的距离——实际上太阳并未落山,只是比原来偏西了一些。于是人们将这次“日返三舍”的现象归结为鲁阳公有“回天”之术。实际上这场战争与一次“云遮日食”同步,下面为行文方便不妨称之为“鲁阳公日食”或者“鲁阳日食”。
鲁阳公与韩之战本身并不重要,除了《淮南子》《论衡》之外,汉以前典籍并未留下其它相关记载,此战并未对楚国前途命运或者列国战争造成多大影响,《淮南子》也仅仅是因为此战发生了“日返三舍”的奇特现象,才记录下来。所谓“日返三舍”意味着时间倒流,根据现代科学知识,这是不可能发生的事件。因为宇宙的根本规律是时间律和因果律,即时间不能倒流,否则将因果倒置。为此爱因斯坦提出“光速不可超越”定理作为“相对论”的基石。通俗地说:妈妈必须先于儿子出生,因为妈妈是“因”,儿子是“果”;作为足够远处的观察者,我们必定先看到妈妈,后看到儿子;假若从妈妈身上发出的光以光速传播,而从儿子身上发出的光以超光速传播,结果就会出现“时间倒流”——人们先看到儿子,后看到妈妈——也就是说“先有儿子,后有妈妈”,这样倒“因”为“果”,完全违背了宇宙的根本规律。因此只要稍稍具备现代科学素养,就不会相信“时间倒流”的神话。
中国古代很少有人怀疑鲁阳之战“日返三舍”的真实性,因而在文学作品中对“鲁阳戈”“回天(日)”术等大量引用和宣扬。如西晋左思《吴都赋》记载:“鲁阳挥戈用高麾,回曜灵于太清;将转西日而再中,齐既往之精诚。”[8](P232)东晋郭璞曾说道:“愧无鲁阳德,回日向三舍。”[8](P1021)南朝宋谢灵运:“苟无回戈术,坐观落崦嵫。”[9](P503)南朝梁萧纪:“想君愁日暮,应羡鲁阳戈。”[10](P307)南朝梁刘孝威说:“秦云犹变色,鲁日尚回轮。”[9](P523)唐朝卢照邻:“别有豪华称将相,转日回天不相让。”[11](P519)唐朝岑参:“惜别津亭暮,挥戈忆鲁阳。”[11](P2080)李商隐:“酣战仍挥日,降妖亦斗霆。”[11](P6253)唐朝王翰:“壮士挥戈回白日,单于溅血染朱轮。”[11](P1603)宋代苏辙:“鲁阳挥长戈,日车果再斜。”[12](P9826)由此可见,鲁阳公挥戈“回日”事件引起古人极大的好奇心,在历史上产生了很大的影响。
“回日”事件明显违反人们的经验和常识,也有少数人选择不相信,如王充《论衡·感虚篇》记载:
阳公志在战,为日暮一麾,安能令日反?使圣人麾日,日终不反。阳公何人,而使日反乎?……阳公争斗,恶日之暮,以此一戈麾,无诚心善言,日为之反,殆非其意哉!且日,火也,圣人麾火,终不能却;阳公麾日,安能使反?[2](P231~233)
从王充所发议论来看,他并不反对“日返”的说法,而是认为鲁阳公“志在战”“无诚心善言”,他怎么能够感动天而使“日返三舍”呢?看来王充对这个问题的批评,思想水平并不高。
北魏张渊《观象赋》记载:“鲁阳指麾,而曜灵为之回驾;严陵来游,而客气著于乾象。斯皆至感动于神祗,诚应效于既往。”自注:“鲁阳,古之贤人,以手麾日,能再回也。”[13](P1952)唐李淳风《乙巳占序》记载:“鲁阳麾指,而曜灵回驾……此则精诚所感而上灵悬著也。”[14]左思《吴都赋》李善注:“昔光武合呼沱水,邹衍有陨霜之应,精诚之感通天地,人神以相应。鲁阳公麾日,抑亦在此之谓也。”[8](P232)是皆认为鲁阳公恋战的“精诚”感动天地,故此有“回天”之应。“天人感应”是古人对“时间倒流”理所当然的解释。南宋诗人范成大则认为这种事情象女娲“炼石补天”一样,根本没有可能,其诗曰“日岂挥戈及,天无炼石功”[12](P26019),表示了对挥戈“回日”术的根本怀疑。
要理解古人的认识,首先要了解当时的计时制度。战国时期盛行一种不等间距计时法,其时名除了“日中”和“夜半”相对确定之外,其它时名对应的时间长度和起始时刻都不确定,在夜晚主要根据日光影响的程度来确定,如日落、黄昏、定昏、平旦、日出等;在白天则主要根据太阳方位来确定,如《淮南子·天文训》所称“(日)行九州七舍…以为朝、昼、昏、夜”。高诱注“凡十六所,为九州七舍也”。[1](P237)这实际上是一种依据太阳方位来划分的“十六时”制。湖北天门彭家山楚墓出土的席镇铭文“於轨九州,顺日右行”,就是针对这种计时法而言的。[15]云梦秦简出土《秦楚月名与日夕分表》,其昼夜的日分、夕分随月份而呈周期性变化,农历十一月(冬至)为日5分、夜11分,五月(夏至)为日11分、夜5分,二月八月(春秋分)为日8分、夜8分,每天的总分数为十六分。笔者分析了《日夕分表》的数据后认为,这种“十六分”为地平历数据[16],是依据太阳在地平圈上的昼弧和夜弧的比率来划分的,与时角圈上的昼夜弧有着本质的区别,因此先秦十六时制是不等时的,与秦汉以后盛行的等间距十二时完全不同。在十六时制的情况下,人们在白天不使用漏刻,而是通过立竿测影来确认时间的变化;如果遇上阴天就依据人眼对日光影响的感知程度来估计时间的变化。例如人们感觉到天空逐渐昏暗下来,就以为到了日暮黄昏,很可能是这种计时习惯导致人们在云遮日食的时候产生“日返三舍”的错觉。
二、鲁阳日食的年代范围
大约公元前数个世纪,迦勒底人(Chaldean,意为占星者)发明了预测日月食的简单方法:日月的223个回合周期(朔望月29.5306日)等于242个交点周期(交点月27.2122日)[6](P328),[17](P188),用算式表达为:
日食间隔期是两者的公倍数,约为6585.3日,合18年11日8时,称为“沙罗周期”。[18](P149)据古希腊的希罗多德《历史》[19](P37)记载:泰勒斯曾经预言一场战争期间的日食,于是双方停止战争缔结了和平协议。[3](P11)这是沙罗周期的最早应用。
现代天文学家仍然采用沙罗周期对日月食进行系列编号:把近现代已经发生的日食和进行了科学观测的日食编入“沙罗系列”之中,同一“沙罗号”的日食遵守“沙罗周期”依次重复出现;一个沙罗周期(18.3年)内约发生40次日食,均属于不同系列,故任何时候都有约40个沙罗系列正在进行。某一沙罗系列开始时,月球半影登陆南极区,为最小食分的日偏食;然后每次北移约300公里,食分逐渐增大到日全食,再逐渐减小到最小食分日偏食;大约70次后月影移出北极区,该沙罗系列结束。每个系列经历1152~1444年,包含沙罗周期次数68~75次。[7](P66,69)虽然利用沙罗周期很难准确地推算日食时刻,但推算日食的日期很少出错。[18](P150)这样就可以将历史上发生过的日食,全部回推在“沙罗系列”之中,具体表示为“某某沙罗号的第几次日食”。
给定一个时间段,就可以找出这段时期内全部日食的沙罗系列号,同一沙罗号中的次序及其日期等。因此,要证认“鲁阳日食”发生的年代日期,首先要大致框定此次日食发生的年代范围,这主要依据鲁阳公本人的活动时代而确定。据《国语·楚语下》记载:“(楚)惠王以梁与鲁阳文子,文子辞,曰:‘梁险而在境,惧子孙之有贰者也……惧子孙之以梁之险,而乏臣之祀也。’王曰:‘子之仁,不忘子孙,施及楚国,敢不从子。’与之鲁阳。”三国吴韦昭注:“文子,平王之孙,司马子期子鲁阳公也。”[20](P527~528)孙诒让《墨子间诂》引贾逵注《国语》曰:“鲁阳文子,楚平王之孙,司马子期之子,鲁阳公。”[21](P431)《左传·哀公十六年》记载,楚惠王十年(前479)发生“白公胜之乱”,楚令尹子西、司马子期被杀,叶公子高(沈诸梁)平定叛乱后,任命子期之子公孙宽为司马。[22](P1704)公孙宽在何时被封为鲁阳公,担任司马之职止于何时或者卒于何年,史籍均无记载。虽然如此,我们还是大致可以确定公孙宽任司马之职的年代范围,应该超不出惠王时代,即自惠王11年(前478)接替叶公至57年(前432)惠王去世,共任职47年之久。假设他初任司马时已经成年,那么至惠王末年他已年至70岁左右,尚属合理范围。鲁阳公与韩之战是春秋末年楚国与晋国之间发生的一场边境战争,晋国的主将是韩卿,最有可能是韩康子(?~前425)。有了这样一个年代范围,就可以依据大食分日食发生的时间和地点来考订鲁阳公与韩交战的具体年代。
三、鲁阳日食的发生地点
日食发生的地点,取决于“鲁阳公与韩战”是一场防守战还是进攻战,如果是防守战,战斗应在鲁阳本地进行;如果是进攻战,则有可能在与楚国边地“汝畛”相邻的郑、韩境内,即从梁地(汝州)向北翻过箕山进入到颖水上游地区,这里有负黍、阳城等著名城邑,是郑、韩、楚、魏等国争相夺占的军事要塞,如图3所示。
图3 鲁阳位置示意图
据上引《国语·楚语》记载,鲁阳并不是楚国的最北边境,比鲁阳更靠北的郑、楚边境有“梁”,如图3所示。《左传·哀公四年》记载:“楚人……为一昔之期,袭梁及霍。”[22](P1626)《太平寰宇记》记载:“汝州临汝郡,今理梁县……即《左传》谓‘楚袭梁及霍’是也。”[23](P142)可知楚国边境的“梁”邑在宋代的汝州治所梁县,即今河南省汝州市。
关于鲁阳,《汉书·地理志》记载,南阳郡属县“鲁阳,有鲁山,古鲁县,御龙氏所迁。鲁山,滍水所出,东北至定陵入汝”。颜师古注:“即《淮南》所云鲁阳公与韩战,日反三舍者也。”[24](P1564)《楚世家》记载:“(肃王)十年,魏取我鲁阳。”《正义》引《括地志》云:“汝州鲁山本汉鲁阳县也。古鲁县以古鲁山为名也。”[25](P1720)《水经注·滍水》:“滍水,出南阳鲁阳县西之尧山……滍水又东迳鲁阳县故城南……昔在于楚,文子守之,与韩遘难,战有返景之诚。”[26](P722~723)按汉志曰“鲁山滍水所出”,而郦注称“滍水出…尧山”,是谓尧山即鲁山。滍水即今汝水支流沙河,实出伏牛山脉之主峰尧山。《元和郡县图志》卷六“汝州”载:“鲁山县,本汉鲁阳县,古鲁县也,属南阳郡鲁阳公与韩战酣,挥戈,日为退三舍,谓此地也。”[27](P166~167)《墨子·耕柱篇》载“子墨子谓鲁阳文君”,孙诒让《墨子间诂》转引毕沅注曰“其地在鲁山之阳”。[21](P431)现今鲁山县境内已没有称“鲁山”的山峰,原鲁山有人认为是现在的露山[28](P27~28),在河南鲁山县东北,接近襄城县境。尧山又称石人山,位于河南省平顶山市鲁山县西部,地处八百里伏牛山东段的脊顶,主峰海拔2153米[29](P19),尧山是汝水上游支流沙河(滍水)和北汝河的共同发源地。
《水经注》的作者郦道元(约470~527年)曾经在北魏宣武帝永平(508~512)年间出任鲁阳太守,对今“鲁山—汝州”一带的地理形势和历史典故非常熟悉,他判断鲁阳君“返景(影)”(日返三舍)之战是发生在鲁阳本地的一场防守战。《元和郡县图志》大抵沿用《水经注》之说,至《太平寰宇记》则指出日食之战发生的具体地点在“鲁阳关”:
鲁阳关,《淮南子》云“鲁阳公与韩战酣,日暮,援戈而撝之,日为之反三舍。”即此地也。汉改为关曰鲁阳。今有水,俗名三鸦水。南自邓州向城县,流入关是也。……三鸦路,在(鲁山)县西南,七十里接邓州南阳县界。[23](P150~151)
如图3所示,鲁阳关是“楚方城”北长城上的著名隘口。从交通状况和地理形势分析,除非楚国方城以外的城池全部丢失,包括鲁阳已经失守,战争才有可能打到楚长城的隘口鲁阳关。而楚惠王时期的楚国正处于对外扩张的强盛时期,大司马鲁阳公的封地被占领几乎是不可能发生的,因此《太平寰宇记》推断的韩方进攻“鲁阳关”的情况并不存在。笔者主张“鲁阳公酣战”是楚国向北扩张或者报复惩罚韩方的一场进攻战,战争应该在楚国境外进行,战场很可能在颖水上游或者楚国边境的梁地(今汝州),最保守的估计也应在鲁阳城外进行,故此我们把阳城(北纬34.42°)[30]作为日食发生的北界;把鲁阳(鲁山县城)(北纬33.2°)作为日食发生的南界。为了保守起见,在下面的天文计算中一律以鲁阳地点(112.91°E,33.74°N)为计算条件。
四、鲁阳日食的食分和时刻限制
为了确认“鲁阳日食”的具体年代,还需要根据文献提供的相关信息估算日食的其他相关参数,如食分、日食时刻及太阳高度等,这些参数均不能准确地认定,但可以大致确定一个适当的范围,然后综合这些条件进行筛选,就可以在相应的年代框架内挑选出符合这些条件限制的日食。
天文学上用“食分”来表示日月食的程度,食分越大,被遮掩的程度就越大,食分大于等于1为全食。日偏食的食分用日面直径的被遮部分与太阳直径的比值来表示,它并不表示太阳圆面被遮掩的面积。但是各次日全食时的月、日直径之比不同,日全食延续时间也因此而不同,为了显示这一差异,食分的概念在日全食时被定义为月球本影直径和日面直径的比例,因此大于等于1,最大食分可达1.08。
如果食分过低,肉眼难以看出太阳大小和视亮度在发生变化。刘次沅给出不同食分对天光亮度的影响[31],在正常情况下可以感觉0.5食分时天光变暗,0.8食分则明显感觉到天光变暗。如果食分为0.8,再加上阴天或者下雨的屏蔽,天空就会像傍晚那样昏暗。鲁阳日食,人们感觉到了“日暮”,据此可做出如下推断:
一是食分不小于0.8,不一定是日全食,可能是大食分偏食或者日环食;
二是鲁阳位于中心食带附近、0.8食分线以内区域;
三是有云层遮挡日食,人们未看到日食过程,但看到了复圆之后的太阳高悬在空中;
四是日食发生在下午,太阳已经偏西,故食甚时人们误以为到了“日暮”。
依此我们首先把食分0.8作为筛选“鲁阳日食”的限制条件。食甚时刻可依据“日暮—日返三舍”的记载来做出判断。关于“三舍”,王充《论衡·感虚篇》载:
星之在天也,为日月舍,犹地有邮亭,为长吏廨也。二十八舍有分度,一舍十度,或增或减。言日反三舍,乃三十度也。日,日行一度,一麾之间,反三十日时所在度也?如谓舍为度,三度亦三日行也,一麾之间,令日却三日也。[2](P230~233)
王充并不知道“日返三舍”究竟是多少度,他将“三舍”看做“日行度”而作了两种推测,即“三舍等于三十度”或“三舍等于三度”。实际上人眼所见太阳位置的变化,主要是由地球自转导致天体东升西落而产生的,这种位置变化很快(一天转360度)。太阳在黄道上行进的速度很慢(日行1度),而且其方向(自西向东)与地球自转效应(天球自东向西转)是相反的,人们能够感觉到天体自东向西的升落运动,但肉眼基本上无法分辨太阳在黄道上的移动。因此王充把“三舍”解释为太阳行进的“黄道度”(日行度)是不恰当的,应当以度量地球自转速度的“时角”来计量。笔者认为“舍”作为天体位置的度量单位,相当于文献记载的“顷”。[32]《尚书·考灵曜》载:“昼夜之量,三十六顷率”[33](P348);“分周天为三十六顷”[33](P360)。这表明我国古代天文历算中确有以10°为单位的设置,我们认为“舍”相当于“顷”,那么“三舍”等于30度,在数值上与王充的说法一致。由于反映的是太阳周日视运动的位置变化,故以“时角”或纬圈上的数值度量为宜。
“日暮”是太阳已落入地平线以下,但不是很深,人眼还能感觉到“暮光”的时段,俗称傍晚或者黄昏,那么“日返三舍”应该理解为:鲁阳公等本以为太阳已落入地下“一舍”(10°),但实际上“天再明”时发现太阳仍然在地平线以上“二舍”(20°),故此认为太阳已从地下返回天空,共计倒退了“三舍”。左思《吴都赋》谓此“将转西日而再中”,认为“日返三舍”是再次回到了“天中”,显然没有这种可能,因为从地下回到天中远超“三舍”,应在六舍至九舍之间。由此可以判断鲁阳日食复圆时,太阳距离日落地平的时角约为“二舍”即20°左右,如图4所示。
(虚线太阳表示假想中的“日暮”日入地下)图4 “日暮”与“日返三舍”示意图
至于食甚时的时角,要考虑日食全过程的长度。日全食一般只有几分钟就过去了,在最合适的条件下也只有7.5分钟,但先要经过1到2小时的偏食阶段。[18](P227)近地食的时间为5时14分,远地食为6时15分。[6](P346)鲁阳日食不一定在中心食带上,我们设定其全长约为4小时,那么从食始到食甚为2小时;再加上“日返三舍”的时角,得到错觉“日暮”时的食甚时刻,太阳距离日落地平线的时角距离为:
20°+30°=50°
为了得到地方恒时,我们需要计算半昼弧。我们定性地讨论问题,不必考虑蒙气差和太阳视半径等因素,采用简单的半昼弧公式:
cost=-tanδ·tanφ
其中t为太阳落入地平线的时角即半昼弧,φ为观测地的地理纬度,δ是太阳赤纬,夏至等于黄赤交角ε,冬至等于-ε值。陈遵妫在《中国天文学史》中列出ε每隔500年的参考值[34](P160),内插可得前450年左右(鲁阳公时)ε=23.75°,鲁阳纬度φ=33.74°,代入半昼弧公式,算得:
冬至半昼弧:t=72.91°
夏至半昼弧:t=107.09°
由此可估算食甚时刻的地方恒时为:
最早:12+(72.91-50)/15 =13.53
最迟:12+(107.09-50)/15=15.81
化算为北京时间,并充分考虑有±1小时误差,得到食甚时刻的范围为:
13.53+(120-112.91)/15-1≈13.00
15.81+(120-112.91)/15+1≈17.28
于是我们得到筛选鲁阳日食的两个参数值的范围:食分为0.8~1.08,食甚时刻为13.00~17.28时。
五、由《日食表》内插求解鲁阳日食数据
现代天文学据白塞耳根数(影的坐标、方向、半径、影锥半顶角等)可计算日食的中心线、南北界限及初亏复原等时线等,从而绘制出日食路线图。通用天文软件Stellarium具有强大的天文计算功能,美国太空总署(NASA)网站发表艾斯潘纳克(Espenak)的《6000年日食表》等,利用这些共享软件可以立马输出历史日食的相关数据和路线图。然而依据引力理论计算所得日食中心线上的点(λ*,φ)为均匀变化的历书经度(平黄经λ*),在化算为经度(λ)的过程中,因时差(地球自转改正值ΔT)的不确定性而导致结果差异。一般来说,经度差与时差之间有如下关系[7](P122),[35]:
于是有:
λ=λ*+1.002738ΔT
这里ΔT的单位为秒,T为世纪数(自公元1800年起算[38](P113~116),c的单位为:秒/世纪2。不同《日食表》主要由n和c取值不同,导致在远距历元上的结果差异。
日食时月影自西向东扫过地面的速度(约1公里/秒)快于地球自转的速度(赤道上最大速度不到0.5公里/秒),月影在地面上仍然以约1700公里时速扫过几千公里的行程[18](P227)。月影并非沿着纬圈平行移动,在经纬度均匀分布的直角坐标地图中,日食带形状接近半个周期的正弦曲线,只是相位不同而已。故此从已知点求未知点的日食数据,至少需要在三个地点之间进行平面内插。历史日食一般有工具书《日食典》或《日食表》可供查找,但工具书中仅列出若干有限地点的参考值,求任意地点的日食数据须从已知地点数据中插值求得。
内插公式如下:xi、yi分别为已知地点的经、纬度,zi为已知食分或食甚时刻,基于此以所求地点的经纬度x、y而求其z值(食分或食甚时刻),有如下公式[5]P27~29)(:
其中a=(x1-x3)(y2-y3)-(x2-x3)(y1-y3)。下面以张培瑜《日食表Ⅰ》为依据,计算鲁阳公时期鲁阳地区的日食数据。鲁阳(今鲁山县)位于历史文化名城西安、郑州和江陵之间,故在此三地的日食数据之间进行平面内插,可求得鲁阳的日食数据。已知三地的经纬度为:
西安:x1=108.95y1=34.28
郑州:x2=113.67y2=34.77
江陵:x3=112.27y2=30.30
代入公式求得a值,并得到求z的数值计算公式:
z=22.5072z1- 26.8185z2+ 5.3113z3
-(0.218z1- 0.195z2- 0.024z3)x
+(0.0686z1+ 0.1626z2- 0.2312z2)y
式中x、y为所求见食地点的经、纬度,本例见食地点是鲁阳,参考河南省鲁山县政府门户网站《走进鲁山》栏目,查知:x=112.91°,y=33.74°。当将z1、z2、z3代入表列的已知食分时,所求z值为鲁阳食分;当代入已知地点的食甚时刻(表中简称“时”以小时为单位),则z值为所求食甚时刻。计算结果列入表1。
表1 据张培瑜《日食表Ⅰ》计算的鲁阳日食
表中的日食类型和沙罗系列号参考Stellarium软件,日期干支参考刘次沅《日食表Ⅱ》。同理,据刘次沅《日食表Ⅱ1-2》所载西安、北京、南京三地的日食数据,计算鲁阳日食数据,见表2所示。
表2 据刘次沅《日食表Ⅱ1-2》计算的鲁阳日食
六、证认“鲁阳日食”是前451.3.20日环食
将内插计算得到的鲁阳日食三套数据,以食甚时刻为横坐标、食分为纵坐标,展开为散点图(图5),然后以食分=0.8~1.08分,食甚时刻=13.00~17.28时为上下限,画出一个方框,方框之内的数据点就在误差允许的范围之内,从而筛选出鲁阳日食只有两个年代选项:公元前457年12月16日的日全食,公元前451年3月20日的日环食,如图5所示。
图5 “鲁阳日食”的年代示意图
下面依据具体日期的半昼长,对这两个年代进行分析。查SkyMap软件[主界面·工具栏tools→下拉菜单Eclipses→选项SolarEclipses→对话框(年月日选项)→按钮Local Circumstance][5](P20),得到日食当天的太阳赤纬:前457年12月16日食,太阳δ=-23.3773,接近于冬至点和近地点,月本影大于日面,故此为日全食;前451年3月20日食,太阳δ=-2.5306,接近于春分点并远离近地点,月本影小于日面,故此为日环食。将δ值分别代入半昼弧公式cost=-tanδ·tanφ算得t,再定义一个“日返三舍”前的鲁阳(E112.91°)食甚时刻:
这里估计从食甚到复圆长达2小时(30°),再加复圆时“日返三舍”的时角(20°),然后以半昼长(t)减之,就是正午到食甚的时差。在无计时工具情况下,人们对时间变化的感觉可能存在较大差异,已考虑日食过程长达4小时的情况,再设置±1小时误差,就可以保证不至于漏掉可能的合理选项。计算结果如表3所示。
表3 “鲁阳日食”的判别分析
表中由半昼弧推得的食甚时刻(τ)反映了鲁阳公对云遮日食的感觉,即由“日暮”感觉到“日返三舍”,由《日食表》内插得到的食甚时刻(z)只有与τ值相符合(即z⊂τ)才是所求的鲁阳日食。由表3看出,只有公元前451年3月20丁卯日下午3时左右的那场日环食(沙罗系列号61)才是鲁阳日食,食分≥0.92,在云遮条件下,完全能产生“食甚=日暮”和“复圆=日返三舍”的错觉。食甚时刻的太阳高度(h)可由下式计算:
sinh=sinφ·sinδ+cos(τ-180°)
依《日食表Ⅰ》取τ=14.29h,算得地平高度h=41.4°,这就是“日暮”时太阳的实际高度,悬在半空中。由此可计算两小时(30°)后“日返三舍”时的太阳高度角为h=19.58°。
日月运动的不确定性导致各种日食典的差异,表现为日食图在地图上东西方向的位移。[5](P23~24)本文的合理假设是:鲁阳靠近日食中心带(全食或环食带)附近,因此具有很大的食分。刘次沅《日食表Ⅱ1》给出了BC451.3.20的日食图(图6)[5](P162),然而其中心食带从我国西部的内蒙—甘肃—陕西—四川—西藏地区穿过,鲁阳离中心线较远,导致其食分偏小(<0.8),不甚合理。为了说明问题,我们从Espenak的日食图表及Stellarium的“天文计算”(默认ΔT值)中导出BC451.3.20的中心线数据,成图之后发现两者彼此很靠近,但仍然从黄河以西穿过(图6),鲁阳地区离中心食还是很远(食分<0.8)。中国科学院国家天文台“国家天文科学数据中心”(NADC)官方网站有“公众频道·日食计算器”栏目,可搜索《日食列表》并输出数据和日食图,我们搜索到BC451.3.20的日食图(ΔT=16280.42)与Espenak日食图近似相同(食分<0.8),均不能很好地解释鲁阳日食(大食分)的“日暮”错觉现象。为此,本文采用张培瑜《日食表Ⅰ》参数,算得鲁阳食甚时刻14.29h,其与刘次沅《日食表Ⅱ1》所推鲁阳食甚(15.24h)的时差为(15.24-14.29)h=14.25°,故将刘次沅日食图中的日食带向东平移14.25°,得到一幅新的日食路线图(相当于地球自转改正ΔT=18520″),此即鲁阳日食的环食带路线图,如图6所示。
图6 公元前451年3月20日“鲁阳日食”路线图
另外,在“国家天文科学数据中心”(NADC)网站的“日食计算器”是依据NASA网站Espenak日食图的c值得到本年ΔT=16280.42而计算的日食路线图,本文认为张培瑜日食图的c值更合理,故改为张培瑜日食路线图,得到本年ΔT=18520,亦可得到此图。图中可见中心食带从中原地区穿过,鲁阳离中心食非常靠近,故此食分达到0.92,因而在“云遮日”的条件下能使人产生“日暮”的错觉。
七、余论
鲁阳公酣战事件提出了一个关于“时间倒流”的问题,大多数古人对此深信不疑,这大概顺应了人们希望“时间倒流”的深层次关切。古往今来人们对此事多所称引,但终究无人探明其真相。笔者将此事解释为一次由“云遮日食”引起的错觉,首次对“回日”事件进行科学解释。
古代文献有关于日食错觉的记录,例如把清晨或者黄昏时“带食出没”的日食记为“天再旦”“天再明”“天再昏”等。古本《竹书纪年》载“懿王元年天再旦于郑”,《夏商周断代工程》专家组推定为公元前公元前899年4月21日早晨发生的日环食[40](P62),有关专家对此类“带食出”日食所造成的“明—暗—明”天光变化进行了实测研究,认为“天再旦”现象是客观存在的。[41,42]另有文献记载公元1361年“带食没”的日食为“天再明”。[43]彭瓞钧等认为文献记载禹征三苗的“天再昏”现象(《墨子·非攻下》记“日妖宵出”,《竹书纪年》记“日夜出”),可能是一次日落时的日环食。[38,44]然而鲁阳日食发生在下午,食甚时(14.29h)的时角为2.29h=34.35°,太阳高度为41.4°;复圆时的时角为4.29h=64.35°,太阳高度为19.58°,距离日落的时角为88.31-64.35≈24°,即大约在复圆后1.6小时才日落地平线,因此不能用“带食没”来解释鲁阳日食所引起的“日返三舍”的错觉现象。为此,我们特地提出“云遮日食”的假说,为解释这一认识史上的奇特现象创造新的范式。现代天文学有关日食的计算方法建立在近代几百年精密观测的基础之上,但将其推广到几千年以前仍然会产生很大的误差。尽管现代日月位置的计算公式参考了古代观测记录,但由于古代记录的精确度和可信度都有限,所以天文学家更希望找到尽可能多而精确的古代天象记录来改进计算方法。[42](P62)千年以上的日食一般仅记录日期,如载某某日期(干支)“日有食之”云云,没有提供食分和食甚时刻等相关信息。鲁阳日食可以相对确定食分和食甚时刻的大致范围,因此具有更高的科学价值。以鲁阳日食为例,比较一下国内通行的张培瑜、刘次沅日食表,参考国际著名天文网站Stellarium、Espenak和SkyMap等日食计算,我们认为只有张培瑜日食表更符合实际,并以此导出相对精确的地球自转改正值(ΔT),从而对确定常数c值具有参考意义。总之,对鲁阳公酣战日食进行研究,不仅解决了一个楚国历史事件的年代问题,而且具有认识论上的意义,有一定的科学价值。