(上海交通大学科学史系教授)

所谓“天文历史年代学",就是利用天文学的方法,去解决一些历史学家难以解决的历史年代学问题。为什么历史年代学问题可以借助天文学来解决?这要从中国古代的政治观念说起。

在古代中国人心目中,如果帝王的统治(政治)是开明的,上天就会呈现出一些好的天象,风调雨顺,并出现一些“祥瑞”的天象;如果政治黑暗,上天就会呈现“凶"的天象来警告统治者,还会出现水旱灾害、地震等,甚至会把帝王的天命夺掉给另一个人,这种思想在古代根深蒂固。所以,每当他们(帝王)作重大决策时就要去观天,把当时的天象记录下来,然后,根据记录来判断自己想做的事能否成功;如果想做的事涉及到改朝换代,那就要更慎重研究天象记录了。首先要观测天象,天命是否归我?当然改朝换代最终需要付诸军事行动来完成,但完成后是否被天下百姓所接受?这不同现今只要军事力量强大,你不接受也得接受。但在古代并不是这么简单,你得让百姓承认你有这个王权。

(世经》:推算历史年代的雏型

由于古人的思想观念是这样的,所以他们就要观天,把当时的天象都记录下来。既然一个重大的历史事件前后往往会记录若当时的一些天象,那么后世的人们就会想,如果这些天象是周期性的,我们只要重新去推算这些天象,不是就可以知道某些未留下确切年代记载的历史事件的年代了吗?这个想法从汉代(西汉末年的刘歆开始)就已经有了。刘歆给我们留下的一部历法《三统历》,其中专门有一章称为“世经”,记载了当时用天文学方法去推算历史上一些有关天象的记录。尽管刘歆的这套历法对有些历史年代不能作出精准的推算,但他已经掌握了一种初步的推算方法,即利用周期性函数来推算历史的年代。比如在“世经”中核算了春秋中记载的几十次日食(日食是一个可以推算的天象),刘歆的推算大部分都是正确的。“世经”可以说是世界上第一个用天文学方法去解决历史年代学的成果。

关于“武王伐纣”的年代,刘歆也推算过,他所推算出的年代与我们今天推算的结果大约相差70年左右,相差并不是很大。刘歆的基本思路,现在看来完全是对的。我曾在“断代工程”的一次会议上说:如果把我现在用的奔腾电脑给刘歆用的话,说不定他也能计算出“武王伐纣”的确切年代了一一当然这 是半开玩笑的说法,事实上当时他所掌握的天文学方法也太落后。

计算机在“新代工程”中功不可没

然而仅仅依靠天体力学并不能解决像“武王伐纣”这样复杂的问题,这里还有一个必要的条件是计算机的使用。天体力学在理论上可以计算得十分准确,但是你要去解决历史年代学问题的时候,就不是我们想知道3000年前某月某日九大行星的位置在哪儿这么一个容易计算的问题。如果能指明几月几日,你岂不是已经知道那个事件的年代了。在解决历史年代学问题时,需要做大量的计算,因为一个事件发生在什么年代你并不知道。不知道,这就意味着你要对一个很长的时间段进行地毯式的计算。比方说,我连续计算它100年,把每天的天象都排出来,没有计算机是不行的。所以说,天文历史年代学要进行卓有成效地计算,也就是这几年才有可能,再往前是没有这个条件的。

本世纪虽然已有不少中外学者在研究“武王伐纣”年代时考虑到了天象,但是他们一般只用一种或两种天象来计算。因为他们不可能对很多天象都进行计算,当时没有这个条件(一个天象就可能要计算几个月)。也许他们心里也明白,应该把所有的天象都进行计算,但实际上在当时是力不从心的。另外还有一些研究者,多年来他们一直使用着19世纪的一一现在说起来就是两个世纪前的星历表。这些因素都导致许多结论是偏颇的、各执一端的。

“武王伐纣”的事件非常奇特,在中国历史上所有的重大事件中就数它留下的天象记录最多。根据我们的普遍搜寻,一共有16种天象之多。通常,我们在历史上找到一些改朝换代时留下的天象记录,一般有1~2项或2~3项记录就不错了。“武王伐纣”为什么会有这么多天象记录?这可以从中国古代的政治思想史上得到解释。

“武王伐纣”是中国历史上第一次有详细文献记录的改朝换代,我们今天讲的“革命”这个词语,就是从“武王伐纣”开始的。所谓革命,就是要把对方的“天命”(统治人间的权力是天给的)革掉,这个行动称为革命。在周朝这个革命之前,商朝的成汤也是从夏朝的夏桀手中夺了天下,但对成汤的行为留下了多少具体记载呢?基本上没有记载留下来,也没有什么文物能证明这件事,只不过是个传说。

学科背景在“断代工程”中的应用

我们必须注意到,天命理论实际上就是周朝人创立的。周朝人以一个诸侯小国反叛中央大国,并最终把大国打败,成了天下的主人,他们当然要造一套理论,竭力让天下百姓知道,他们的天命是合法的。我们现在所知道的这些天命理论主要来自儒家学说;而儒家是“祖述尧舜,宪章文武”的。周朝人所创立的改朝换代理论,本来是为自己服务的。儒家把成汤灭夏也纳入自己理论的范围,所以我们经常看到“汤武革命”的说法,表面上包括了商之前的夏,实际上这些说法是从周朝人开始的。

正因为这样,周朝人留下了大量的关于“武王伐纣”获胜时前后的天象记录。但这些天象记录多了也挺麻烦,如果历史上只留下一个天象记录,而且这个天象确实发生过,并且也是可以回推的,我们的天文历史年代学的任务就很简单,只要推算这个天象就可以得出结论。但“武王伐纣”时记载有16 种天象,这16种天象从理论,上说在推算过程中都应该考虑进去。以前的推算过程为什么没有把这些天象都考虑进去呢?一方面是当时的条件限制,另一方面是学科背景造成的。有些文科学者对逻辑上的事情比较疏忽,认为挑选一个比较符合的天象就可以了,这是知识背景造成的区别;对于我们学理工科出身的人而言,认为这16种天象都应该考虑是非常自然的。

怎么考虑或计算呢?我们的具体方法是:先对这16种天象进行验算。

历史上对“武王伐纣”年代的探讨已经有了上百篇的论文,其中提出了44种年代——3年前我们的课题启动时统计的是44种,但这两年又出现了新的说法,实际上不止44种。对那么多的不同说法,首先我们考虑这些说法中的年代分布,前后相距100多年的时间,然后我们对16种天象在100多年的时间段内进行验算,如果有某种天象在这100多年的时间段内不可能发生的,我们就将这种天象排除(有些天象是古人误记)——我们强调, 绝不能遇到天象记录与自己的假说不一致时,就轻率地将天象记录说成是后人的附会;但如果天文学的计算表明在这100多年的时间段内某种天象确实不可能发生,那就是非常过硬的证据,它只能是古人误记。

也许有人会问:你干吗只验算这100多年,为什么不多验算一些年代?那是因为“武王伐纣”的年代毕竟有个大致范围——你总不能设 想周武王是在去年伐纣的吧(众笑)? 100 多年的时间已经非常宽泛了。所以,我们把这100多年都验算了,排除掉若干种天象,那些通过验算的天象,就是在这100多年时间段内确实可能发生的。

但是还有些天象虽然在这100多年内确实可能发生,却是不能用来定年的。

这听起来似乎很抽象,必须举一个例子。

比如说很有名的哈雷彗星,中国已故的南京紫金山天文台台长张钰哲教授曾发表过一篇论文,他研究了哈雷彗星历史上的记录,发现了20多次回归在中国古代文献上都有记录,他在推算“武王伐纣”的年代时,这16种天象记录中有一种就记录着“彗星出而授殷人其柄。”这句话的意思是:“武王伐纣”时天上出现了彗星;授殷人其柄,表明了这颗彗星的彗头在东面(殷朝人在东面,武王从西面去讨伐;古人把彗星比你扫帚,彗头被看成是扫帚的柄)。张钰哲教授根据上述信息推算出:在公元前1057年有一次哈雷彗星的回归,他认为,如果“武王伐纣”时出现的彗星是哈雷彗星的话,那么,“武王伐纣”的年代是公元前1057年。这个结果可以说是天文历史年代学在我们做出的“武王伐纣” 年代之前的最为轰动的一个结果,张钰哲教授的这篇论文发表在《天文学报》上。当时北京师范大学的一位教授看到这篇论文非常振奋,并在《历史研究》上写了一篇专门介绍张教授这个结果的文章。历史学家通过《历史研究》刊物知道这一结果后,当时都认为这是最权威的结果。如现在上海博物馆任副馆长的一位学者对我讲,当时张钰哲教授的结论被我们看成是迄今为止最科学的结论。

为什么哈雷彗星不能用来定年?

然而现在我要讲的是,偏偏哈雷彗星这个天象是不能用来定年的天象。为什么是这样的呢?我的第二位博士研究生卢仙文的博士论文是专门研究这个问题的,在他的博士论文中就指出了:先要解决“武王伐纣”时那颗彗星它是哈雷彗星的可能性这个问题;因为张钰哲先生说的是“如果”它是哈雷彗星的话,那么“武王伐纣”是公元前1057年;而如果它不是哈雷彗星的话,那么结论当然不成立了。现在分析“武王伐纣”时出现的那颗彗星它是哈雷彗星的可能性有多大?这是可以分析的,因为彗星它有不同的类型,我们知道不同类型的彗星在整个彗星中占的比例。分析得出的结果是:“武王伐纣”时出现的那颗彗星是哈雷彗星的可能性只有0. 3%!我们不能把结论建立在0. 3%这样小的概率上,因此这个天象是不可用来定年的。

在16个天象中最终确认可以用来定年的、同时它又是在100多年时间段内可能出现的天象一共是7个。在确定了7个天象后,接下来的工作就是寻求一个让这7个天象都符合的年代。如果我们找不到这样的一个年代,这就说明目前的天文学研究还不能解决这个问题;而如果找出来了几个年代,同样也说明天文学研究的作用有限——如果出现几个年代就存在一个取舍的问题,取舍时已经不能再用天文学的条件了。因为天文学的条件在整个演算过程中已经用尽了,势必要引用其他手段来取舍。

我们使用现今国际天文学界公认最先进的星历表DE404——这 是由该星历表的研发负责人Stanish无偿赠送给我们的——来进行我们的推算。 幸运的是,做出来的结果只有一个(年代),这个结果就让这7个条件(天象)都符合了。整个过程主要是依靠计算机的计算(我的助手钮卫星博士经常是晚上睡觉前将程序放入计算机,到第二天早上算出一个结果)。这7个条件都能吻合,确实是很奇妙的,它给出的不仅是一个年代,同时还是一个日程表,因为在这7个条件中也包括了日程安排。周朝人当时已经有了记录重要事件的习惯,同时也记录了这天的天象。所以历史上留下了一些“武王伐纣”时的大事记,同时也不能排除后来的历史学家删改这些记录,或者把一些没有重大事件记录的日子给拿掉了,留下的记录都是一些有事情的。比如说今天出兵,隔几天发生合朔,再过几天渡过了黄河渡口等。一旦做出符合这7个天象的结果的同时,它也是就一个日程表。

“武王伐纣”的具体年代和过程

公元前1045年12月4日,周朝的军队从周地出发,出发时周武王并没有随军,大约行军一星期左右,周武王再从周地出发,稍晚时到达军中。到了第二年(公元前1044年)的1月3日,军队渡过了孟津(黄河渡口)。两年前,周武王曾率八百诸侯到过孟津渡口,当时在渡口作军事示威,诸侯们对周武王说可以讨伐殷纣了(这就需要渡过黄河去),周武王对众诸侯说,你们不知道天命,现在还不行,大家就回去了。过了两年,公元前1044年1月3日,周武王再次来到了孟津,并挥师渡过了黄河,正式向商朝宣战。渡河后第6天(公元前1044年1月9日)的清晨,在牧野地方开始决战。相传当时商朝军队有70万人,但在决战时都倒戈了,因为商朝的统治已经不得人心了,周武王的军队摧枯拉朽般地将商朝军队击溃。这就是历史上有名的“牧野之战”。

对“牧野之战”的年代,目前文献上没有确切地记载,各种推算很多。但这一天是有文物记载的,1973年在陕西出土的一个叫利簋的青铜器,簋是一种盛酒的器具,被称为利的人,是周朝的一个史官,他在“武王伐纣”的战役中立了功,周武王为了奖励他,就为他铸了这个簋,当时大臣或者诸侯,谁要是立了大功,就会赐你一个青铜礼器,上面铸有你的功绩——这和现代的 勋章、奖状等类似。从陕西出土的利簋上铸的文字清楚地记载着“牧野之战”的日干支是甲子,这天早上有岁星上中天的天象(“岁鼎克昏”);一个天体“上中天”,是指它走到当地子午线,恰在正南方(太阳走到上中天的位置就是当地的中午)。现在我们来推算当时的天象,公元前1044年1月9日这天的日干支就是甲子,而且这天早上在牧野当地时间4点55分,我们可以看到岁星——也就是木星上中天的天象,这些天象条件是如此奇妙地吻合。

岁星上中天这个天象是目前唯一在文物上出现的天象,其他的天象都是从文献上留下的;而文献上留下的记录本身陈述的年代又在“武王伐纣”之后,至少间隔几百年甚至上千年。所以,有些人对文献记录的真实性是有怀疑的。我们的做法是不管它可疑不可疑,用天文学的方法去验算它,不可能发生的天象已经被排除,凡是可能发生的就对其进行推算。

因为7个条件同时满足是一个概率非常小的事件,不是随便可以满足的,所以,可以相信古人确实留下了一些真实的记录。我们今天能够回推过去并让这些条件同时满足,那是因为古人如实的记载了天象。只有记载是真实的,推算过去才会如此吻合。有人曾推算出别的结论,但不能符合这7个条件中最关键的几条,那就无论如何不能成立。

天文历史年代学的其他应用

上面讲述的主要是围绕“武王伐纣”所展开的一系列工作,另外,还有其他一些事件也是可以用天文历史年代学来检验的。我们最近又做了一项工作,即推算孔子的生年。这项工作可以说是一个特殊的例子。首先,史籍记载:孔子出生前50天有一次日食。日食与月食不同,日食发生的次数比较少,每次发生时在地球上只有一个很小的范围内才能看到,这就使日食的筛选能力大大超过月食;第二,孔子生年的争议范围很小,只有两年(公元前552年还是公元前551年)。争议的范围小、日食的筛选能力又很强,所以这个问题比较容易解决。

在推算当时的日食时,发现在公元前552年8月20日,在曲阜确实可以看到一次日食,而争议的另一年根本没有日食发生。日食一旦确定,孔子的诞辰也就确定了。以前人家为什么没有想到呢?因为这中间还有一个难关,即怎样把这次日食发生的时间对应到公历中来,这涉及到一个换算问题。

通常的思路是,首先要知道当时(春秋)用的是什么历法?知道后就将这个历法与公历去对应—— 因为春秋时代的日食当然是用当时的历法语言记载的。但偏偏对春秋的历法是有争议的,春秋时用什么历法到现在还没有解决。既然没有解决,那么换算就会出问题。

我们在计算过程中想到了一个“巧取”的办法,我们采用的方法是从根本上抛开了春秋时的历法,用天文学上的“儒略日”来表征这次日食。“ 儒略日’’

是天文学家常用的一种计算方法,从公元前4713年起,这个时间记录系统中是没有年和月的,只有日,逐日加起来连续计算。用“儒略日”来表征这次日食发生的时间,然后把这个时间与公历去对应是很容易的。我们要解决的是公历哪年几月几日是孔子的诞辰,并不需要去解决当时历法中的年月日如何安排。所以绕开了当时的历法,就可以非常明确地推算出孔子的生日。我们推算出的孔子诞辰是:公元前552年10月9日。

对于孔子诞辰一直有争议。为什么呢?一是孔子的家族从来不用公元前552年这个日子,他们用后面一年的日期即公元前551年;二是古人相信,圣人的诞生之年是不可能有日食出现的——因为日食是一个不祥的天象,所以坚持用公元前551年。我们今天站在科学的立场上来看,这些理由当然是不可信的。以前常见的孔子诞辰,在年份上依据主张公元前551年出生的史料,在月、日上却又依据明确记载为公元前552年的史料,这种“各取所需”的做法在逻辑上也是根本无法成立的。

在谈及孔子生年时还涉及到一些戏剧性的问题。1999年我们在纪念孔子诞辰2550周年,事实上,按照我们的推算,19999 年确实是孔子诞辰2550周年,但是孔子家族的人相信的是后一年(公元前551年出生),可是1999年他们也在庆祝孔子诞辰2550周年,这不就不对了吗?按公元前551年的说法,他们应该是在纪念孔子诞辰2549周年。因为很多人在关于周年的问题上又犯了一个低级错误,他们未曾注意到,由于公元零年是不存在的,所以计算跨越公元前后的周年问题时应该减去一年。

比如说1989年邮电部发行了一套纪念孔子诞辰2540周年的邮票,当时邮电部相信孔子的生年是公元前551年。从公元前551年算到1989年其实是2539年,不是2540年。当时邮电部发行这套纪念邮票时也没有考虑到公元零年并不存在,其实这套邮票是错的,但是现在根据我们考证出来的结果,这套邮票又对了。

我曾经对媒体说过,凡是在1999年举行纪念孔子诞辰2550周年活动的人,他只有两种选择: 一是同意我的结论,一是承认自己犯了一个低级错误——当然他们都不愿意承认犯了低级错误(众笑)。

天文历史年代学可以有多种的应用,一般对于早期的历史事件,应用的比较多,与考古学联系比较密切,因为早期的历史记录不完备,所以要借助天文历史年代学。

附记:

本文由朱泽民先生根据演讲录音整理而成,在此深表谢忱。