导航菜单
首页 >  唐宸  > 天象模拟在古代文学研究中的运用

天象模拟在古代文学研究中的运用

作者:唐宸;转自:公众号  DH数字人文

经典重释 现地诗学

唐 宸 / 安徽大学文学院

——————————-

摘   要:面对古典诗文中的天象描写,研究者可利用天文软件进行科学验证,从而为辨析疑难天象、考证人物生辰、区分用典写实、明确作品系年提供帮助。论文以主流天文软件Stellarium为工具,通过分析《左传·僖公五年》晋童谣的历法建正、张翥与杨基的生日命理、李商隐与苏轼的用典写实、陈子昂与鲁迅的作品系年等案例,探讨了现代天文学手段在古代文学研究中的具体运用方法与问题。

关键词:天象模拟 古代文学文本分析 Stellarium 大数据

——————————

古代文学研究者在阅读文献时经常遇到天文历法问题,但因没有专业的天文学知识,往往束手无策。古人多精通星宿命理,陈述所见天文现象或漫不经意,或实有所指,用散文、诗词等形式表述出来,与现代天文学术语颇多隔阂,更难以理解。如今,Stellarium和Starry Night Pro等现代天文计算软件已运用于天文学、地理学、地质学等领域,并因门槛低、精度高、3D效果直观而受到广泛认可。可以预期,这些软件在古代文学领域也将具有广阔的应用前景。[1]

Stellarium是一款主流的开源跨平台3D可视化天文计算软件,由法国巴黎天文台工程师Fabien Chéreau等领衔开发,经过近20年运营,后台已累积海量大数据,以计算精确、效果直观闻名(官方网站:http://stellarium.org/zh/,最新版本0.19.2)。软件默认星表包含60余万颗恒星,附加星表包含1.77亿颗恒星,并以扩展包形式内置中国、印度、日本、埃及、阿拉伯等20余种文化的星宿资料。063 古代文学研究者最适用的是“中国传统星空文化”扩展包,数据来源为伊世同 (1931—2008)先生积20年之功考校编定的《中西对照恒星图表》(王力《古代 汉语》采用此表)。研究者只需将该扩展包设置为默认加载选项,手动输入或选 定内置城市GPS坐标、时区、日期、时间,即可通过大数据计算模拟出指定时间 地点的全局3D天文星象,从而为辨析疑难天象、考证人物生辰、区分用典写实、 明确作品系年提供帮助。

伊世同《中西对照恒星图表》

一、辨析疑难天象

《诗经》《左传》等先秦文献记录了大量天象,其中不乏疑难之处。明末顾炎武曾说:“三代以上,人人皆知天文。‘七月流火’,农夫之辞也;‘三星在天’,妇 人之语也;‘月离于毕’,戍卒之作也;‘龙尾伏辰’,儿童之谣也。后世文人学士,有问之而茫然不知者矣。”[2] 今按:“七月流火”写秋夜大火星(心宿二)逐日往西边下落,天气转凉,是季节的变换;[3] “三星在天”写冬夜参宿三星从东方升起,直至“在隅” “在户”,是时辰的流动;[4]“月离于毕”指满月入毕宿(雨师) 之日往往多雨,是日期的循环。[5]至于“龙尾伏辰”,出 自《左传》“假道伐虢”事件, 具有明确的时间地点,是进行天文考辨很好的案例。《春 秋·僖公五年》对此事件的记载是:“ 九月戊申朔,日有食之。冬,晋人执虞公。” [6]

将鲁僖公五年(公元前 655年,天文纪年为前654年)这一时间和鲁都曲阜的GPS坐标(北纬35°35′48.01″,东经116°59′28.00″)、时区(东八区)导入Stellarium计算,得出日食发生于该年8月 19日 (图1)。这一天换算成夏历(农历)是九月初一日戊申朔,[7]与《春秋》经文 所记“九月戊申朔”相同。夏历建寅,《春秋》在这里使用的是建寅历法。

图 1 鲁僖公五年九月初一日食计算图

关于接下来的“晋人执虞公”事件,《左传》补充了著名的“晋童谣”故事:

五年春,王正月辛亥朔,日南至。……八月甲午,晋侯围上阳。问于卜偃曰:“吾其济乎?”对曰:“克之。”公曰:“何时?”对曰:“童 谣云:‘丙 之晨,龙尾伏辰,均服振振,取虢之旂。鹑之贲贲,天策焞焞, 火 中成军,虢公其奔。’其九月、十月之交乎?丙子旦,日在尾,月在策, 鹑火中,必是时也。”冬十二月丙子朔,晋灭虢,虢公丑奔京师。师还,馆于虞,遂袭虞,灭之。[8] 

首先需要厘清的是这段话中的两处误差。首句“五年春,王正月辛亥朔,日南至”是以冬至所在之月为正月,即采用以冬至月为正月的建子历法。古今学者皆指出当月朔日实为壬子日(前656年12月26日),冬至实为癸丑日(前656年 12月27日),[9]《左传》误差一两日。“冬十二月丙子朔”当为“冬十二月丁丑朔”,[10]《左传》误差一日。春秋时期历法尚处于观象授时阶段,受客观条件影响,对合朔和冬至的观测常存在一两日的误差,但总体而言还是可信的。[11]

《春秋左传正义》,宋庆元六年绍兴府刻本

再看这次晋灭虢之战的天象历法问题。童谣所云“丙之晨”即丙日之晨, 《太平御览》引作“丙子之晨”。[12]“龙尾”指尾宿,因该宿属青龙七宿之一,故名。[13] “伏”是说尾宿的视角高度较低,[14]而“辰”则是日月交会之意。[15]“丙之晨,龙尾伏辰”这句话的意思是:日月于丙日之晨交会,尾宿诸星因位置较低、距日较近,受日光影响而隐去不见。杜预认为:“‘九月、十月之交’谓夏之九月、十 月也。……周十二月,夏之十月。”[16]他的意思是,晋人卜偃所说“九、十月之交” 是夏正(晋用夏正),鲁人《左传》所载“冬十二月丙子〔丁丑〕朔”是周正,夏正建寅,周正建子,两种历法相差两个月,故晋历的“九、十月之交”便是周正的“十一、十二月之交”,也就是“冬十二月丙子〔丁丑〕朔”。目前古代文学界皆从杜预说。[17]杜预此说以所谓夏商周历法“三正说”为据,看似天衣无缝、不容置疑,实则并不可靠。现将虢国上阳城遗址(今河南三门峡市虢国公园保护区内)的GPS坐标(北纬34°45′48.71″,东经111°12′33.33″)和时区(东七区)、 时间(前655年,天文纪年为前654年)导入软件计算,得出“龙尾伏辰”现象 只能发生于该年11月16日(图2),农历十二月初一丁丑朔。

图 2 鲁僖公五年十二月初一“龙尾伏辰”计算图(去除大气层)

当日清晨时分,日月会于东方尾宿,月球临近天策(傅说星),包括天策在内的尾宿诸星受阳光影响隐约不见(“焞焞”),而南方广阔天空中遍布着属“鹑 火”星次(柳宿、星宿、张宿)和“鹑尾”星次(翼宿、轸宿)的各个星宿,在西降时隐隐呈现出朱雀之形(“贲贲”)。卜偃所说“丙子旦,日在尾,月在策, 鹑火中”,意即破敌当日平旦“日在尾宿,月在天策(亦属尾宿),鹑火诸星在 南方中天”。其实此时鹑火诸星已西流,处于南方中天的是属于鹑尾星次的翼、 轸二宿。《新唐书·历志》云:“直鹑火之末,始将西降,故曰贲贲。”[18]明人邢云路亦云:“昔推鹑火中,今推鹑尾中,似微不同。然鹑尾即近鹑火。晋人用兵……岂在一时,固不害其为同也。”[19]上述考证表明:

第一,鲁僖公五年确实发生了“龙尾伏辰”现象,卜偃预言和所谓“晋童谣” 存在事实依据。

第二,鲁僖公五年的“龙尾伏辰”现象发生在公历 11 月 16 日,即农历 十一月丙子晦与十二月丁丑朔的晦朔之交,这和《左 传》所记“冬十二月丙子 〔丁丑〕朔”相合(当时置朔存在一两日误差)。

第三,《左传》“冬十二月丙子〔丁丑〕朔”使用的是农历,也就是建寅历法。这和前揭《春秋》同年记录日食的“九月戊申朔”所用历法一致。

《左传》“冬十二月丙子〔丁丑〕朔”属建寅而非建子历法,故杜预之说不能成立。不论是以所谓殷正或周正换算,事实发生在农历(夏历)十二月朔日(前 655年11月16日)的“龙尾伏辰”天象都不可能换算出“九月、十月之交”即 十月朔日这样一个日期来(农历十二月为殷正正月、周正二月)。“九月、十月之交”这句话不能成为所谓“三正说”即三代改朔论存在的论据,而只能视作《左 传》文本在不同历法地域流传而产生的变异,甚至可能是信奉“三正说”的早期 儒家传习者误将后文“冬十二月”理解为周正后擅改卜偃之语为夏正的结果。[20]

二、考证人物生辰

古代文人多相信星命迷信学说,有时会将出生时的特殊天象视作命运的预言。星命说的主要依据是命宫、身宫和宿值,即以出生时太阳行经星宿为“命宫”,月球(太阴)行经星宿为“身宫”,干支对应二十八星宿为“宿值”(《星学大成》卷首有《约太阳行度法歌》《约太阴行度法歌》《约二十八宿度数歌》,卷六云:“日向东生为命局,月从西出作身方。”[21]又有更复杂的紫微斗数法,此不赘述)。

万民英《星学大成》,文渊阁《四库全书》本

而木星(岁星)等重要星曜的位置也常与命理相关。韩愈曾称赞星象家李虚中“以人之始生年月日所直日辰支干,相生胜衰死王相,斟酌推人寿夭贵贱利不利,辄先处其年时,百不失一二”,[22]更作有《三星行》调侃自身遭际云:

我生之辰,月宿南斗。牛奋其角,箕张其口。牛不见服箱,斗不挹酒浆。箕独有神灵,无时停簸扬。无善名已闻,无恶声已欢。名声相乘除,得少失有余。三星各在天,什伍东西陈。嗟汝牛与斗,汝独不能神![23]

“我生之辰”的“辰”泛指时间(廖莹中注:辰,时也。),“我生之辰,月宿南斗”意为“我出生时月亮位于斗宿”,这是对个人身宫的描述(韩愈生于大历 三年(768),月份不明,仅据每月一次的“月宿南斗”不能明确其生日)。苏轼说:“退之诗云‘我生之辰,月宿南斗’,乃知退之得磨蝎为身宫。而仆乃以磨蝎 为命,平生多得谤誉,殆是同病也。”[24]又说:“吾命在斗、牛间,而退之身宫亦在 焉。”[25]将苏轼出生地四川眉山纱縠行(今眉山市纱縠行三苏祠)的GPS坐标(北纬30°02’38.24″,东经103°49’46.06″)和时区(东七区)、生日(景祐三年十二月十九日,1037年1月8日)导入软件进行计算,得出当日太阳在斗、牛之间的牛宿(图3),属摩羯命宫,与苏轼自述命宫相符。

图 3 景祐三年十二月十九日眉山地区日在牛宿计算图(去除大气层)

元代文人亦深信命理之说。张翥《水调歌头·三十九年我》云:“三十九年我,老色上吟髭。生辰月宿南斗,正合退之诗。今岁两逢正月,准算恰成 四十,岁暮日斜时。”[26]泰定二年(1325)乙丑,张翥三十九岁,因闰正月多 算一岁,知他生于至元二十四年(1287)丁亥正月,这与他另一首词《鹊桥仙·生朝戊子》 所记吻合。[27]词序中“丁亥岁戊 子日”为至元 二十四年正月 二十七日(1287年2月10日 ), 将此时间与张翥出生地江西安仁( 今 余 江 县)的GPS坐标(取安仁文庙:北纬28°23′46.66″,东经 116°54′17.34″)、时区(东八区) 导入Stellarium软件,得出当日月入斗宿(图 4),张翥自述“生辰月宿南斗”可信。

图 4 至元二十四年正月二十七日安仁地区“月宿南斗”计算图

明初重要诗人、“吴中四杰”之一的杨基也曾作《梁园饮酒歌》感叹自身星命,开篇云:我生之辰木入斗,乌啼东井命壁守。壁为文府斗为岁,许我文章播人口。[28]杨基生年史无明载,目前学界提出的泰定三年(1326)、至顺元年(1330) 和元统二年(1334)三说均无可靠证据,而《眉庵集》中唯一明确提及自身生辰的只有此诗。所谓“我生之辰”即“我生之时”,与韩愈《三星行》“我生之辰”意同;“木入斗”即木入斗宿(南斗),这一特殊天象约11.86年(木星周期) 才能发生一次,素称吉兆,如《星学大成》云:“木躔斗宿号天程,才智全兼早贵荣。柱石邦家须大相,必为廊庙福苍生。斗为帝居要木栖,木斗相躔器所宜。戬榖自然帝祉锡,斗宫得木世稀奇。” [29]

杨基《眉庵集》,明成化刻本

洪武六年,杨基落职返乡,他的祖母一度 “夜礼护落斗、朝诵弥陀经”,[30]将他的宦游不遂归结于“落斗”,这说明祖母很可能是杨基出生时特殊天象的见证者与口述者。现将杨基出生地苏州天平山的GPS 坐标(北纬31°17′18.21″,东经120°29′56.97″)、时区(东八区)导入软件,加载黄道坐标,即可运用内置“天文计算”功能生成木星星历图(图5),得出最近一次木入斗宿在至顺二年十一月五日(1331年12月4日)至十二月二十七日 (1332年1月25日),这是杨基生日的上下限。[31]

图 5 至顺二年苏州地区“木入斗”星历计算图(局部)

接下来的关键问题是“命壁守”的含义。在前述时间范围内计算星历后可知(图略):太阳经过尾、箕、斗、牛、女、虚诸宿,离壁宿尚远,因此“命壁守”并非以壁宿为命宫;月入壁宿有两次,分别是十一月八日(1331年12月7 日)和十二月六日(1332年1月4日),“命壁守”为身宫的可能性存在;再按星宿值宿计算,考黑水城出土元代《授时历》残卷有至正十年五月一日甲寅(1350 年6月5日)值胃宿的记录,[32]

黑水城出土《授时历》残卷

根据七元甲子法[33]换算,当月十一日甲子(1350年 6月15日)值翼宿,属七元甲子法“五元甲子起翼”之五元甲子日,逆推得出至 顺二年十二月二十三日甲子(1332年1月21日)亦为五元甲子日、值翼宿,故当年十一月、十二月值壁宿的日期有十一月十二日(1331年12月11日)和十二 月十日(1332年1月8日),“命壁守”为星宿值日的可能性也存在。综合上述考证,杨基可能的出生日期如下(表1):

表 1 至顺二年木入斗宿期间命在壁宿推算表(杨基可能的出生日期)

经过软件计算,上述四个日期都有可能见到“乌啼东井”的景象。现以十一月初八日为例,还原当时杨基出生地天象(图6):

图 6 至顺二年十一月初八日戌时苏州地区天象计算图

当夜井宿在东方(井宿别名即为东井),知“乌啼东井”为实写,并非用典。“乌啼”属古代民间流行的乌鸣占,即根据乌鸣时间、方位、地点判断吉凶的一种占法,如敦煌P. 3479《乌鸣占吉凶书》以日入时乌鸣南方为吉兆,占“得爵禄”,[34]但因文献弗征,今已不能据此法推算杨基出生的具体时辰。

要之,在采用科学天文软件还原天象、依据出土元代历书推算宿值的基础上,可确定杨基《梁园饮酒歌》所记“我生之辰木入斗,乌啼东井命壁守。壁为文府斗为岁,许我文章播人口”确属实录,其意为:“我出生时木星入斗宿, 乌鸦在东方井宿的方位啼叫。我的星命在素称文府的壁宿,同时受到岁星(木星) 入斗宿影响,这预示着我的文章将会为人传诵。”由于“命壁守”有命宫、身宫、 宿值三解,最终推算得出四个可能的出生日期。在没有

相关推荐: