夏商周断代工程转帖(一)

来源:百度文库 编辑:神马文学网 时间:2024/04/27 23:34:34
  

巡天——赵玉春

 正文 字体大小:大

夏商周断代工程转帖(一)

(2009-02-02 18:21:36)转载 标签:

杂谈

《国语》伶州鸠所述武王伐纣天象及其年代 (2009-01-13 15:37:00)

作者简介: 江晓原钮卫星:(上海交通大学科学史系,上海,200030)
文章来源: 《自然科学史研究》18卷4期(1999)

《国语》伶州鸠所述武王伐纣天象及其年代
江晓原 钮卫星

摘 要

  《国语·周语下》伶州鸠对周景王所述武王伐殷时天象,是天文历史年代学上罕见的珍贵文献。本文先采用国际天文学界最权威的行星星历表数据库及计算、演示软件,对这一文献中的每一项天象都进行了全面计算、检验和演示,并结合《尚书·武成》、《逸周书·世俘》、利簋铭文、《淮南子·兵略训》、《荀子·儒效》等有关记载,从而表明:伶州鸠对周景王所述之一系列武王伐纣天象,实际上是武王伐纣过程中按时间顺序排列的天象实录,它们可以与武王伐纣之役的日程逐一对应吻合。这一发现,对于确定武王伐纣之年代,具有极其重要的、决定性的意义。同时也是天文历史年代学极具典型意义的个案之一。由此我们重现了武王伐纣之役的日程表,并确定牧野之战的日期为公元前1044年1月9日。

  

    所谓“天文历史年代学”,意为利用天文学方法,以解决历史学中之年代学问题。它实际上是天文学史或历史学之下的一个交叉学科的小分支。“天文历史年代学”之名,虽是由我首次明确提出,但此小小学科分支是早就存在着的。至少,西方学者早在几个世纪之前就已经在运用天文学方法解决历史年代学问题了。

  然而,天文历史年代学首创之功,恐怕确实要归于中国人。两千年前,西汉末年之超级学术大师、新莽“国师”刘歆,堪称天文历史年代学之祖。其《三统历·世经》是历史上第一部天文历史年代学的成果。天文历史年代学之基本思路,刘歆都已经有了。我曾不止一次说过,若有人将今日之天体力学公式和奔腾电脑送给刘歆,刘歆大约也能正确解决武王伐纣的年代问题──这固是玩笑之辞,但并非毫无道理。

  依据早期史籍中关于武王伐纣时的各种天象记载,以天文学方法来求解武王伐纣之年代,并设法重现武王伐纣时之日程表,是一件相当复杂的工作。在完成这一工作的过程中,我们设计了几种不同的方案。非常令人惊异的是:这几种方案所得的结果,全都导向一个完全相同的结论!本文就是上述方案之一。

 

一、文本之释读

 

  《国语·周语下》伶州鸠对周景王所述武王伐殷时天象∶

昔武王伐殷,岁在鹑火,月在天驷,日在析木之津,辰在斗柄,星在天鼋。星与日辰之位皆在北维。

    对于这段叙述中字面及术语之释读,前贤多从韦昭注。韦昭三国时人(公元204~273年),他的注有多大的可信程度,今人当然可以提出怀疑──事实上有人连《国语》中的这段记载本身都疑为伪作。[i] 但解决这一疑惑的原则其实极为简单,那就是:若有比韦昭更可信的不同释读,自然应该舍韦昭而就彼;但若并无更可信之释读,却又无端怀疑韦昭之注,那除了导致历史虚无主义的结论之外,对解决问题毫无帮助。

  实际情况是,韦昭注本不仅是现存最早的注本,而且其注“保留了今已亡佚的东汉郑众、贾逵,三国虞翻、唐固等注本的片段”。[ii] 再说历代学者对韦昭注也无异议。因此目前唯一合理的选择,只能是以韦昭注作为我们工作的出发点。

  疑惑既除,接下来就可逐句释读:

  岁在鹑火:意为木星在鹑火之次,此句不会有歧义。

  月在天驷:“月在天驷”从字面上理解,当然是指月球运行至与天驷在一起之处。根据我们的研究,此句关系极大,却常被研究者所忽视。“天驷”者,星名也,即天蝎座π星(Scoπ),特别值得注意的是,这颗星也正是二十八宿中房宿的距星。此处韦昭注云:“天驷,房星也。”正可证明这种解释。[iii]

  日在析木之津:韦昭注:“津,天汉也。析木,次名。”《左传》、《国语》提到“析木”时总跟着“之津”二字,“津”为天河,说明“析木”所指的天区位于黄道上横跨银河之处,《汉书·律历志》中,《三统历》定析木之次对应范围为尾10度,跨箕宿,至斗11度,案之星图,正在银河之中。这也说明《三统历》所述二十八宿与十二次之间的对应关系,应有很早的起源(注意我们据此确定析木之津的范围时,并不要求在商周之际就存在十二次系统)。析木之津所占天区,公元前1100年~公元前1000年间的黄经范围在223°~249°之间。

  此处先要特别指出:月球运行每月一周天,太阳每年一周天,因此很多稍具天文常识的学者都会认为,“月在天驷”每月都会出现一次,因而是一年可以见到12次的天象,而实际上精密的天文学计算和演示都表明,这种天象在周地竟要平均10年才能与“日在析木之津”同时被观测到一次。[iv]

  辰在斗柄:韦昭注:“辰,日月之会。斗柄,斗前也。”此句可以产生两处争议:“辰”为何意?“斗柄”何指?需要逐一分析。先讨论“辰”。在古籍中,“辰”可以有8种用法,列出如下:

1、日月交会点,即合朔时太阳所在位置。

2、大火(即天蝎座α,中名心宿二)。如《国语·晋语四》:“岁在大火,

 大火,阏伯之星也,是为大辰。”又《苏武诗》:“昔为鸳与鸯,今为参

与辰。”

3、北极星,即“北辰”。如《尔雅·释天》:“北极谓之北辰。”又虞世南

《奉和月夜观星应令》:“天文岂易述,徒知仰北辰。”

4、泛指众星,如星辰、三辰。

5、十二时辰之一,七至九时。

6、日子、时刻。今吴语中犹将“时间”称为“辰光”。

7、十二地支之五

8、“晨”之通假字。

    上述8中用法中,第4种在此处没有意义,第5、6、7、8种可置勿论。需要讨论的是前面三种。或许有人会问:韦昭注为何一定对?“辰”在此处为何不能理解为心宿二或北极星?其实天文学常识早已排除了这两种可能性:因为“斗柄”无论何指,肯定是指恒星无疑,而心宿二或北极星也都是恒星,天文学常识告诉我们,恒星是相对固定的(“恒星”正是由此得名),一颗恒星不可能跑到另一颗恒星那里去。如果将“辰”在此处理解为心宿二或北极星,那岂不是和说“天狼星在织女星”一样荒谬?所以韦昭注“日月之会”(即太阳和月亮运行到黄经相等之处)在这里确实是唯一合理的释读。

  接下来再谈“斗柄”。“斗”可以指北斗,也可以指南斗,即二十八宿中的斗宿。但“辰”既然是“日月之会”,就完全排除了北斗的可能──太阳和月亮只能在黄道附近运行,它们永远不可能跑到北斗那里去。所以“斗柄”只能是指南斗。

  这样,“辰在斗柄”的唯一合理释读就是:日、月在南斗(斗宿)合朔。

  星在天鼋:韦昭注:“星,辰星也。天鼋,次名,一曰玄枵。”辰星即水星。水星常在太阳左右,其大距极限仅28°左右──也就是说水星之多只能离开太阳28°远。此句意为“水星在玄枵之次”。这也给出了相对独立的信息──在武王伐纣的过程中,应该能见到“星在天鼋”的天象。

  星与辰之位皆在北维:此句没有独立信息──当太阳和水星到达玄枵之次时,它们就是在女、虚、危诸宿间,这些宿皆属北方七宿,此即“北维”之意也。

 

二、天象之验算

 

  文本之释读既已解决,乃可验算伶州鸠所述各项天象及有关天象──文本背后的天文学含义将通过这些验算而进一步显现。但在此之前还要先对验算所用的天文学软件有所交代。

  在对上述天象进行检验计算,以及此后的回推、筛选计算中,行星、月球历表为必需之物,而天文学前沿研究所用历表时间跨度不够(一般只有几百年,我们的研究需要三千年以上)。1963年斯塔曼(Stahlman)曾用分析方法算出太阳和行星公元前2000年~公元2000年间的位置表,以供天文史研究之用。但该表精度不甚高,而且使用不便,所以有的学者干脆自己用天体力学方法回推,并且都号称自己的方法最精确。由于他们的源程序通常都秘不示人,故他人皆无从比较其优劣。

  而在国际上,美国著名的喷气推进实验室(JPL)之斯坦迪士(Standish)等人,长期致力于行星和月球历表的研究工作,他们用数值积分方法,结合最新的理论模型和观测结果,研制出了与各个时期的科学水平相适应的系列星历表,提供给全世界学者使用。绝大多数JPL星历表时间跨度较短,目的是供天文学前沿、航天等领域应用。到八十年代他们又制作了长时间跨度的行星历表DE102(公元前1411年~公元3002年),在国际上得到广泛使用(但国内天文史专家不用)。

  最近斯坦尼士等人又研制了时间跨度更长的行星历表 DE404(公元前3000年~公元3000年),它不但吸收了雷达、射电、VLBI(甚长基线干涉)、宇宙飞船、激光测月等等高新技术所获得的最新观测数据,而且在力学模型上有所改进,保证了积分初始值的精确性和理论的先进性。并且在积分过程中,不但与历史上的观测记录进行了比较,而且同时对比了纯粹用分析方法所的结果。这样就进一步保证了星历表的稳定性和可靠性。[v] 

  经我们与斯坦尼士本人联系,他将全套DE404数据库及计算软件无偿提供给我们使用。这也可算国际天文学界对夏商周断代工程之间接支持。

  另一个比较重要的软件是Skymap3.2,这是一个非常先进的天象演示软件,能够在给定观测时间、观测地点之经纬度后,立即演示出此时此地的实际星空,包括恒星、太阳、月亮、各行星、彗星乃至河外星云等几乎所有天体的精确位置。我们用DE404检验了该软件的精度,发现在前推3000余年时,其误差仍仅在角秒量级,这对本专题的研究来说已经绰绰有余。[vi]

 

  接下来逐条进行验算:

  岁在鹑火 前贤几乎全都将目光集中在“岁在鹑火”的天象上,此天象看似简单,其实大有问题。在一些先秦文献中,“岁在某某”(后世又多用“岁次某某”)是一种常见的天象记载。这类天象记载的真实性,前贤很少怀疑。有不少学者在处理先秦年代学问题时,还将岁星天象记载作为重要的判据来使用。然而,先秦文献中的此类记载其实大可怀疑。我们曾对《左传》、《国语》中有明确年代的岁星天象记载进行地毯式的检索,共得9项;然后针对此9项记载,用DE404进行回推计算,结果发现竟无一吻合!对这一无可置疑之事实,此处无暇讨论其原因。只是陈述事实,至于合理解释,则尚待高贤之论也。[vii] 但至少已经可以看出,用“岁在鹑火”作为确定伐纣之年的依据,是不可靠的。所以在下面的工作中,我们先不使用“岁在鹑火”──但考虑到伶州鸠所述天象的特殊性,不妨用作为辅助性的参证。

  月在天驷与日在析木之津 第一步,从“月在天驷”和“日在析木之津”入手。先设定(注意,也可使用更宽泛的设定,但最终仍导致相同结果。[viii] ):

  (1)太阳黄经在223°~249°范围内(日在析木之津)

  (2)月球与天驷星之黄经差小于2°(月在天驷)

  (3)月球黄纬小于负4.5°[ix]

以DE404数据库计算公元前1119~公元前1000年间日、月位置,发现只有表1中所示13个日子能同时满足上述三条件:

 

表1:月在天驷·日在析木之津及岁星天象表

 

日期(公元前)
日干支
岁星天象

1119.12.12.
丁卯
东面不见

1101.11.24.
甲申
东面不见

1100.12.11.
丙午
东面不见

1099.12.1.
辛丑
东面不见

1082.11.24.
癸亥
岁在南偏西

1081.11.13.
戊午
东面可见,但金、土在左右

1062.11.14.
戊戌
东面不见

1062.12.11.
乙丑
东面不见

1045.12.3.
丁亥
东面只岁星可见,且位置极好

1043.11.14.
戊寅
东面不见

1043.12.11.
乙巳
东面可见,但位置太低

1026.12.4.
丁卯
东面不见

1007.12.4.
丁未
东面不见

 

这个初看起来似乎每月都可发生的天象,为何实际上要10年左右才能见到一次?主要有两个原因:一是月球轨道与黄道之间有倾角,只有当月球黄纬在负5°左右时,月球才会恰好紧挨着天驷,位于其正上方或正下方,甚至掩食天驷。这才是真正的“月在天驷”。二是这种天象通常都发生在清晨周地地平线附近,往往还未升上地平就已天亮,或在天亮后才发生。使用SkyMap3.2软件演示当时天象,完全证实了这两点。图1右下方就是公元前1045年12月3日这天清晨5:30在周地所见的“月在天驷”天象(这次“月在天驷”只能被观测到三个多小时)。

  在表1这13个日子中如何选择,则不能不求助于伶州鸠所述天象之外的历史文献:

  东面而迎岁 古籍中所保留的武王伐纣时天象记录中,关于岁星(即木星)天象,除前述伶州鸠“岁在鹑火”之外,另有三条,皆极重要:[x]

武王伐纣,东面而迎岁。(《淮南子·兵略训》)

武王之诛纣也,行之日以兵忌,东面而迎太岁。(《荀子·儒效》)

武王征商,佳甲子朝,岁鼎克昏,夙有商。(利簋铭文)

前两条表明周师出发向东行进时见到“东面而迎岁”的天象。后一条表明牧野之战那天的日干支是甲子,而且此日清晨在牧野见到“岁鼎”──即木星上中天。[xi]

  周师出发之日,依韦昭注日干支为戊子,谓“武王始发师东行,时殷十一月二十八日戊子,于夏为十月”,其说应本于刘歆《三统历·世经》(载《汉书·律历志下》)“师初发,以殷十一月戊子”之说。刘歆之说可信与否,原可怀疑,但除此之外,并无别说,则此处先以此为假设,由此出发进行推理,若结果与其它文献不能吻合,自可疑之;若处处吻合,则自应信其为真也。

  现在观察表1,其中日干支最近于戊子者为为公元前1045年12月3日丁亥,次日就是戊子。[xii] 非常奇妙的是,偏偏只有这一天真正符合“东面而迎岁”的天象!这天清晨5:30在周地向正东所见之实际天象见图1。其余各日,或东面不可见岁星,或虽可见但与金星、土星一同出现,惟独此日以及此后多日皆能在清晨见到岁星(而且只有岁星)出现在东方天空。

  至此我们可以初步设定,武王伐纣之师于公元前1045年12月4日出发。[xiii]

  《武成》与《世俘》之历日 出兵之日既定,则另两条史料就可发生重大作用:其一为《汉书·律历志下》引《尚书·周书·武成》曰∶

惟一月壬辰,旁死霸,若翌日癸巳,武王乃朝步自周,于征伐纣。

粤若来三(当作二)月,既死霸,粤五日甲子,咸刘商王纣。

其二为《逸周书卷四·世俘解第四十》∶

惟一月丙午旁生魄,若翼日丁未,王乃步自于周,征伐商王纣。越若来二月既死魄,越五日甲子朝,至,接于商。则咸刘商王纣。

上述两条史料通常被认为同出一源。其中“死魄”指新旧月之交,此时月亮完全看不见──理解为朔亦无不可。“生魄”指望。对于此类月相术语之定义,多年来“定点”、“四分”等说聚讼纷纭,迄无定论。去岁李学勤先生发表论文,证明在《武成》、《世俘》等篇中,依文义月相只能取定点说,一言九鼎,使武王伐纣之年研究中的一个死结得以解开。[xiv]

  《武成》与《世俘》历日对表1也有筛选作用:在周师出发后、甲子日克商前,应有两次朔发生,第一次日干支为辛卯或壬辰;第二次则约在克商前五日左右,日干支为庚申或辛酉(考虑周初对朔的确定有一日之误差)。因此出师之后十余日即遇日干支为甲子,则该日即应排除,因为在此十余日内不可能有《武成》所记载的两次朔发生;若考虑下一个甲子,则从出师至克商长达七十余日,又与《武成》所载不合。[xv] 又,出师之后的两次朔,其日干支不是《武成》所要求的辛卯或壬辰及庚申或辛酉,则该日亦应排除,因为显然与《武成》历日不合。

  《武成》及《世俘》历日可以为我们提供了一个伐纣战役日程表,与这个日程表结合起来考察,就能揭示出伶州鸠所述一系列天象的真正面目。下面我们借助DE4040,以精确回推之实际天象,来检验《武成》及《世俘》历日与伶州鸠所述一系列天象之间的吻合程度。

  辰在斗柄 这是指日月合朔于南斗之处。周师出发之日为公元前1045年12月4日,计算表明,三日后出现一次朔,为公元前1045年12月7日,日干支为辛卯,次日即壬辰,这与《武成》篇“惟一月壬辰旁死霸”非常吻合──“旁死霸”可以理解为“旁朔之日”,那就没有误差了。况且考虑到周初确定朔的水准,一天的误差是完全可以容忍的。此次朔时的太阳黄经为246.27°,考虑岁差,计算当时二十八宿中斗宿的位置,在黄经237.64°~261.51°之间,朔正好发生在此宿中!

  “辰在斗柄“既已证实,不妨在此将《武成》、《世俘》中其余月相与干支记录一并验证如下:

  辛卯日在南斗之宿出现朔之后15天,即公元前1045年12月22日,望,日干支为丙午,《世俘》篇云“惟一月丙午旁生魄”,与实际天象精确吻合。

  下一个朔,据《武成》篇“既死霸,粤五日甲子,咸刘商王纣”,该甲子日(即牧野之战克商之日)为公元前1044年1月9日,则既死霸为公元前1044年1月5日庚申,计算表明,实际的朔发生于次日辛酉,仍仅一日误差。

  这里有一点值得特别指出:通常都认为《世俘》篇中的“惟一月丙午旁生魄”应据《武成》改为“壬辰旁死魄”,“若翼日丁未”应据《武成》改为 “癸巳”,但据我们上面的验算,这样的改动不仅是不必要的,而且很可能是错误的,因为丙午这天正是旁生魄──望;而“若翼日丁未”自然也是正确的陈述。我们可以给出一个新的解释:

  将《武成》“王朝步自周”释为“武王自周地出发”(注意:周师已经先期出发),将《世俘》“王乃步自于周”释为“武王从周地来到军中”。武王于一月壬辰旁死魄之次日从周地出发,至一月丙午旁生魄的次日与大部队会合。这样的解释合情合理,又不必改动文献,就可使《武成》、《世俘》两者同时畅然可通,应该是更可取的。

  星在天鼋 “天鼋”者,玄枵之次也,在武王伐纣时代,位置约在黄经278°~306°之间。我们借助DE404计算从公元前1045年12月至公元前1044年3月的水星黄经,结果发现:

  从公元前1045年12月21日起,水星进入玄枵之次。此时,它与太阳的距角达到18°以上。而按照中国古代的经验公式,上述距角超过17°时,水星即可被观测到。事实也是如此。此时水星作为“在天鼋”之昏星,至少有5天可以在日落后被观测到。然而更奇妙的是,在甲子克商之后,从公元前1044年2月4日起,直至24日,水星再次处于玄枵之次,而且其距角达到19.99°~27.43°之多,几乎达到其大距之极限。此时水星成为“在天鼋”之晨星,更易观测,有20天可在日出前被观测到。

  要知道水星是很不容易被观测到的,哥白尼就将未观测到水星引为终身憾事。这也很有助于说明,为什么“星在天鼋”会成为伐纣时故老相传之重要天象,被伶州鸠所传述了。

  星与辰之位皆在北维 前面说过,“星与辰之位皆在北维”没有独立信息,太阳和水星到达玄枵之次时,它们就是在“北维”。

  岁鼎克昏 现在只剩下最后一项验证:公元前1044年1月9日这天早上是否有木星上中天的天象可见?这一点是利簋铭文所要求的。以SkyMap3.2演示之,结果令人惊奇!图2显示的是公元前1044年1月9日甲子清晨,在牧野当地时间4:55向正南方所见的实际天象:岁星恰好上中天,地平高度约60度,正是最利于观测的角度,而且南方天空中没有任何其他行星。此时周师应已晨兴列阵,正南方出现“岁鼎”天象,非但太史见之,大军万众皆得见之。设想此时太史指云“岁鼎佳兆,正应克商”,则军心振奋,此正星占学之妙用也。

  至此已经清楚看到:伶州鸠所述武王伐纣时一系列天象能够与《武成》、《世俘》所载日程以及《淮南子》、《荀子》等文献所述岁星天象一一吻合。更重要的是,根据《武成》“粤五日甲子,咸刘商王纣”及利簋铭文,牧野之战的日期就此可以确定了!这日期是:

  公元前1044年1月9日甲子