李 亮
(中国科学院自然科学史研究所,北京 100190)
从《细草》和“算式”看明清历算的程式化
李 亮
(中国科学院自然科学史研究所,北京 100190)
本文通过明代《通轨》和清代《细草》等材料,阐释明清官方如何借助“程式”和“算式”来操作天文算表,以实现历法推算的“程式化”。通过中朝历法交流中,李朝官员重赂钦天监,“密买”《细草》书册等细节,讨论了《细草》的使用和传播情况,及其在历算中的重要性。此外,分析说明了《通轨》和《细草》在带来推算便利的同时,也导致了历法原理被忽视,影响了明清历算的进一步发展。
通轨 细草 算式 崇祯历书 西洋新法历书
中国古代历法通过一系列天文数据和天文表格的测算、相应数学方法的创用以及具体推算方法的建立,有效地解决了各类天文学问题[1]。虽然不同的历法在天文常数、数学方法和推算步骤上不尽相同,但通常都可以通过“公式法”和“立成法”这两种方式来实现推算操作*如《明史·历志》提到《授时历经》:“步七政盈缩迟疾,皆有二术。其一术以三差立算者,即布立成法也。其又术云,以其下盈缩分,乘入限分万约之,以加其下盈缩积者,用立成法也。”其中将两种方法称为“布立成法”和“用立成法”。。其中,前者是依据历法“术文”,以文字的形式给出具体推算方法及算式,后者则将推算结果事先编成各种算表,以“立成”*徐振韬主编《中国古代天文学词典》对“立成”的解释为:“指与日、月、五星不均匀运动改正相关的速算表格,类似于现代的表格计算法,立成多以日、度(或更小的单位)为表列间隔,日、度以下余数部分以比例内插计算。”虽然这一解释依然不是很全面,不过“立成”是一种用于快速运算的算表,这一基本观点是被广泛接受的,而“立成”最迟在唐代大衍历之后,被各历法广泛采用。等形式来实现推算*一些历法同时介绍有这两种方法,而部分历法则以其中的一种为主。。如《崇祯历书》记载“新历任欲算某星经纬,及交食等项,约有二法”[2],其一用诸三角形法推演,其二以先所推定诸表握算,二法皆为推步家当研寻者*文渊阁《四库全书》的《天学会通》提要也记载:清代推算交食,凡有两例,“一用积月、积日,以取应用诸行度数,由平三角、弧三角等法逐次比例,而得食分时刻方位者;一用立成表,按年月日时度数,逐次检取,角度加减,而得食分时刻方位者”[3]。而当时诸如薛凤祚(1610—1656)等人的著作,即为“用表算之例,殊为简捷精密”[4]。。
随着对日月和行星运动以及插值计算等方面提出更高的要求,历法的推算步骤和计算方法日趋复杂,仅通过“公式法”已经无法应对日常历法运算带来的大量计算负担,于是“立成法”逐渐成为主要的推算手段。
明代郎瑛(1487—1566)曾指出“造历之法,虽以气盈朔虚,日月五星,推布挨算,然非至精至神之人不能也”,不过“若夫授以成算,则中人可为”[5]。他认为即便历法推算非常复杂,倘若辅助以事先准备的算法和算表,普通人也可以进行推算,算表的使用让历算不再显得那么复杂和专业。
由于史书篇幅的限制,纵观正史《律历志》中记载的各种历法,通常是“虽有推法,而立成不能尽载”[6]。据《新唐书·艺文志》记载,《大衍历》全文应有四十七卷,其中包括“立成”十二卷,《宋史·艺文志》也提到唐宋历法大都含有篇幅庞大的立成,不过多数《律历志》中都将其舍弃,甚至鲜有提及。如《宋史·律历志》虽多次提到“立成”,却没有给出相应立成和介绍具体使用情况*《宋史》志第二十三、二十六、二十七和二十八卷曾多次提及“若用立成者”。。即便是详细记载有授时历的《元史·历志》,也依旧放弃了立成部分*韩国奎章阁保存有《授时历立成》,可参见 [7]。。这些资料的缺失,给我们认识古人如何实际操作历法推算带来了一定困难。
事实上,为了避免计算错误而造成严重的政治后果,古代历法推算在很多方面都实现了高度的“程式化”,即通过一系列的规程来规范如何使用算表进行历法推算。虽然由于资料的限制,我们无法探究早期历法的使用情况,但通过一些新材料,我们还是可以对明清历算的程式化获得较为清晰的认识。
法国国家图书馆藏有一件朱印本清代历法文献,图书馆将其命名为《日食分秒时刻,并起复方位》(编号:Chinois 5015,见图1),这份文献篇幅不大,分为“日食算式”(共7页)和“月食算式”(共4页)两部分,是两份用于康熙年间日食和月食推算的空白表格。这两份表格中,前者列有日食推算所需的16个步骤,后者列有月食推算所需的12个步骤,每个步骤下又给出了若干所需推算数值的名称,并预留出空格,使用者可以依据“日、时、分、秒”或者“宫、度、分、秒”对各项进行逐一填写。
图1 法国国家图书馆藏“日食算式”(左)和“月食算式”(右)首页
这份材料在以往的清代天文和历法文献中并不常见,因而显得比较特殊。其中“日食算式”仅在梅文鼎《历算全书》中有类似记载,梅文鼎将其抄录于他所补遗和订定的《交食蒙求》*分为《日食蒙求》和《月食蒙求》。之后,题为“步日食式”(见图2)。比较两者可以发现,梅氏书中记载的算式与法国国家图书馆本的内容基本一致,同样分为“十六求”,只是部分步骤的先后顺序做了调整(见表1)。月食部分,梅文鼎虽然没有直接给出“算式”,但从其订补的《月食蒙求》中可以得出相应的步骤。两者差异在于,与法图本“月食算式”相比,梅氏书中多出了“求宿度”和“求各限地平经纬”两步(见表2)。此外,梅氏记载的“步日食式”书写方式为“横书”,而法图本“日食算式”为“直书”*清初天文表格多为“直书”,此后大都改为“横书”。。
图2 梅文鼎订补《交食蒙求》所附“步日食式”
法国国家图书馆藏《日食算式》梅文鼎订补《日食蒙求》梅文鼎抄《步日食式》一、求诸平行一、求诸平行一、求诸平行二、求日月相距二、求日月相距二、求日月相距三、求实引三、求实引三、求实引四、复求日月相距四、复求日月相距四、求实距五、求实朔五、求实朔五、求实朔六、求躔离实度六、求实交周六、求实交周七、求宿度七、求躔离实度七、求日实度八、求视朔八、求视朔八、求视朔九、求实交周九、求径距较数十、求径距较数十、求径距较数十、求近时十、求近时十一、求近时十一、求真时十一、求真时十二、求真时十二、求考定真时十二、求考定真时十三、求考时十三、求食分十三、求食分十四、求食分十四、求初亏时刻十四、求初亏时刻十五、求初亏时刻十五、求复圆时刻十五、求复圆时刻十六、求复圆时刻十六、求宿度十六、求宿度
表2 “月食算式”推算步骤比较
据梅文鼎所言,“《(崇祯)历书》有《交食蒙求》《七政蒙引》二目,今刻本并皆逸去”[8]。查《治历缘起》,徐光启在1633年(崇祯六年九月二十九日)奏疏中提及有“《交食蒙求》一卷”*《崇祯历书·治历缘起》崇祯六年九月二十九日奏疏[9]。,并在次年第5次进呈崇祯皇帝的书目中称其“系远臣汤若望译撰”*《崇祯历书·治历缘起》崇祯七年十二月初三日奏疏[9]。。虽然汤若望的《交食蒙求》在正式刻本中逸去,梅文鼎还是通过各种途径将其复原,并为其订补和附说*据日本天理图书馆藏江户时代天文家、和算家户板保佑(1708—1784)组织抄写的朱□较订《崇祯历书》,其中《交食蒙求》即汤若望《测食》,全书分上下两卷,题“交食蒙求”上、下,上卷由“总论”起,至“日食月食辩”止,下卷由“月影为地影所隔”至“食不言征应”止。下卷第二十页提到,“望承命以西洋法测”,知为汤若望所撰。至于梅氏《交食蒙求》的来源有待进一步考证。。
《交食蒙求》和《七政蒙引》与《崇祯历书》中注重理论的《历指》部分不同,它们是针对交食和七政具体推算的手册,正如梅文鼎所言:“《崇祯历书》之有《细草》,以便入算,亦尤授时历之有《通轨》也,盖即《七政蒙引》。”[8]可见,《交食蒙求》和《七政蒙引》这两部著作亦可被称为《交食细草》和《七政细草》*梅文鼎《历算全书》介绍有《交食细草》和《七政细草》。,其功能与明代历法著作《大统历法通轨》(下文简称《通轨》)相似。
《通轨》为明代洪武年间钦天监监正元统所编,是明代官方使用的历算手册*包括《历日通轨》《太阳通轨》《太阴通轨》《交食通轨》(又分为《日食通轨》和《月食通轨》两部分)《五星通轨》和《四余通轨》。。《明史·历志》记有“《通轨》诸捷法,实为布算所须”[10]。据元统所言,该书由他“采诸正经,附以己意,辑为《通轨》”,用途是“俾幼学之士,遵而行之。亦得以掉臂长往,而无趑趄之患焉尔”[11]。《通轨》实际上是介绍如何按规范使用算表和基本算法进行推算的手册*石云里认为,《授时历经》在计算方法上以推步为主,使用立成的方法只是作为“又术”附录其后,而《大统历法通轨》则突出了以基于立成的“诸捷法”的地位。具体可参见《古代朝鲜学者的〈授时历〉研究》[12]一文。,如其中《太阴通轨》和《五星通轨》就分别设有“九道行款格律程式”和“五星入式程规”等。初学者只需经过基本训练,不需要太多理论基础,就可以实现操作。《通轨》不但对各项操作有明确的规定,作者甚至把全书的计算过程都设计成表格,并留出空位,称为“程式”,以辅助推算。使用者只需在算表和算法的配合下,按照“程式”所示的步骤,按图索骥,将每步计算的结果填入其中指定的位置,就可以逐步完成全套计算(见图3和图4)。各卷《通轨》通常都是先给出“用数目录”*即罗列出已知的各种天文和历法常量。,其次提供“程式”,列出需要计算的各步骤名称和顺序,然后以“格”为单位介绍各步骤所依据的术文,并且附有所需的算表,即该书各卷在内容上大致分为“用数”“程式”“术文”和“立成”四大部分。
为了实现计算的“程式化”和“机械化”,书中各步骤都以“格”为单位安排,每一步推算都被设计成一格,如“推第几格”*如《太阳通轨》的内容就包括:推第一格四正定气、推第二格相距日、推第三格四正加时黄道积度法、推第四格加时减分法、推第五格夜半积度法、推第六格黄道宿次法、推第七格相距度法、推第八格日差法。。书中“凡例”对此还做了明确的解释,即“凡言格者,指界画每一方科为之一格也。如第一、第二者,自上而下数之也。凡言推得者,言推得即算也,指当用之数,今算得也”[13]。从该书各部分内容来看,几乎所有推算都是通过这种形式来实现,如《交食通轨》明确要求“凡推算交食,必依此而录之”,《五星通轨》有“凡推算五星者,依此式界划填写各数”,《四余通轨》也记有“凡推算四余,依洪武岁次各年躔度格式,今以洪武己巳为例,仿此”等[11]。*此为李朝铜活字印本,这段文字前有“中朝书来”字样。
图3 国家图书馆藏《交食通轨》中的“程式”
图4 韩国奎章阁藏《交食通轨》所附已填写完毕的“程式”①
事实上,除了《大统历法通轨》,在元统所编的另一部回回历法著作《纬度太阳通径》[14],也采用了类似的推算方式。例如,其中介绍有“推纬度太阳程式”,通过含有九个“格”的“程式”来实现大统历日和回回历日,以及太阳黄道经度位置的推算。
虽然梅文鼎提到“《崇祯历书》之有《细草》,以便入算”,且《细草》与《通轨》相类似,不过从当时已刊刻的各种官方著作来看,无论是《崇祯历书》还是此后的《西洋新法历书》中,皆没有提供《细草》,甚至几乎没有与《细草》相关的信息。那么《崇祯历书》所含的《细草》究竟是一种什么著作?
《细草》是一种在中国古代数学著作中常见的题材,通常用于对经典著作进行推理演算和详细注释,如《张丘建算经》除了包括有甄鸾和李淳风的注外,还有刘孝孙的细草。也有一些数学著作直接以“细草”为名,如北宋贾宪的《黄帝九章算经细草》等,不过现存以《细草》为书名的数学著作,大多编撰于18世纪和19世纪*数学著作中常见的《细草》如:李潢(1746—1812)的《九章算术细草图说》和《海岛算经细草图说》,李锐(1768—1817)的《测圆海镜细草》《勾股算术细草》和《弧矢算术细草》,罗士琳(1789—1853)的《四元玉鉴细草》,以及匿名的《透帘细草》等。。
相比数学著作,《细草》在中国古代天文和历法著作中却相对比较少见,也容易被人忽视*天文历算中使用细草的传统此后也传入日本,在日本东北大学和日本东京天文台至今还保存不少18世纪至19世纪的细草和算式文献,如日本东北大学藏有户板保佑编《崇祯历法细草月食术》,其中使用了算式推算1773年(安永二年)癸巳八月十四日辛丑望食。。目前与《细草》有关的天文著作,除了梅文鼎订补的《交食细草》*另据《勿庵历算书记》中《交食蒙求订补》条记载:“《交食细草》原只十六求,厥后复增为十七求者”。可知梅文鼎对在订补中对《交食蒙求》做了一些调整。和《七政细草》*收入梅文鼎《七政细草补注》,包括:推日躔法、推月离法、推土木星法、推火星法(附假如),推金水星法,推凌犯法,考节气法、定合朔弦望法、求月入宫(月升法)、求月孛罗计法、求五星伏见法、求五星退顺入宫法、求五星留逆法。外,还有藏于故宫博物院和中国科学院自然科学史研究所的《细草》*中国科学院自然科学史研究所藏有抄本《天文书》一册,编号:子520/131,其内容与下文讨论韩国奎章阁藏《七政细草》基本一致,属于同一著作的不同抄本。,以及李朝天文学家抄回朝鲜的《玄象新法细草类汇》和《七政细草》等*其他《细草》又如金华人张作楠(1772—1850)所著的《交食细草》。《交食细草》年代相对较晚,其内容分为上下两卷,上卷为“推道光三年(1823年)十二月十六日庚戌望月食”,下卷为“推道光四年(1824年)六月癸巳日食”,作者称皆“依苏州府北极出地三十一度二十三分偏东四度〇一分推算”且“草内各四率及句股各术,俱用对数表,以加减代乘除,以折半代开方”。序言中作者还指出撰写此书的目的,因“草野之士每以不得读中秘书为憾,而得其书者,又每以义蕴精深,无从入手”,所以依钦天监求交食法,编撰该《细草》。可见,该书只是借用了官方《细草》的体例,实际是一部私人著述。。
故宫所藏《细草》为清康熙内府抄本,因封面缺失,亦无序跋,图书馆将其题为《算七政交食凌犯法》(见图5)。从该书内容上看,实际是一套完整的《细草》*内容包括:推日躔法、推月离法、推土木星法、推火星法、推金水二星法、求节气时刻之法、求太阴入宫时刻之法、求五星入宫之法、求合朔弦望时刻之法、求月与五星同度时刻之法、求五星同度时刻之法、求月与恒星同经度时刻之法、求五星与恒星同经度时刻之法、求五星冲伏时刻之法、推日食法、推日带食分法、推月食法、推带食分法、求月凌犯恒星法、求月犯五星法、五星相凌犯法、求凌犯视差法。,其中“推日食法”(共十六求)和“推月食法”(共十二求)与法国国家图书馆藏《日食算式》和《日食算式》完全对应*仅《日食算式》中的“十五求初亏时刻”,在该《细草》被误抄为“十五求亏复时刻”。。基本上可以判断这本《细草》与上文所介绍的“算式”是相互配合使用的。
图5 故宫博物院图书馆藏《算七政交食凌犯法》
下面以该《细草》的“推日躔法”为例,说明其使用情况,部分内容如下:
推日躔法
年根 一、察本年根,按各年根冬至起算,非各正月起算也,写于年根格内。随录本年高冲书于傍纸。
日数 二、察于本冬至后一日至某日,有几日即用几日之日数。至太阳周岁平行表内,一卷三十三张,其宫度分秒之数凡满三十度,则进一宫,写于日数格内,随录本日高行于傍纸下,相加得数记之。
时数 三、从子正起至某时,止有几时,用此数。至周日时对准日行表,在一卷五十五张内,相对分秒写于时数格内。
平行 四、年根日数、时数、宫度分秒,一并相加于平行格内。
高冲 五、将傍纸所记加得高冲之数,写于高冲格内。
引数 六、平行内减去高冲之数,若不足减者,加十二宫减之,为引数,写于引数格内。
均数 七、以引数宫度分至二卷加减差表内,察相对之均数,记书加减号,得数写于均数格内,但察均数前六宫,〇、一、二、三、四、五宫者,其度分在上顺察,后六宫,六、七、八、九、十、十一宫者,其度分在下逆察。在上号加,在下号减,若用比例将先均数与后均数, 相减所得之秒数,用此秒与引数之余分相乘,所得数去尾数与先均数或加或减。若先均数大于后均数,用减。若小于后均数,用加,即得。本引数之均数写于均数格内。
实行 八、均数依加减号,或加或减于平行为实行,写于实行格内。[15]
以上文字用术文的形式介绍了如何通过查表和简单的推算获得太阳的“实行”,即太阳在黄道的实际经度。从中我们可以看出《细草》的一些特点。
首先,每一个小的步骤都有各自名称,如“年根”“日数”和“时数”等,并且这些步骤在“算式”中都有相应的“格”。推算时,只需根据查表内容,将相应结果写入对应的格中,或者对之前若干“格”中的数据进行基本四则运算,就可得到下一步所需结果。
其次,部分步骤还明确给出所需查询算表的名称和页码,如求“日数”需要“至太阳周岁平行表内,一卷三十三张”,求“时数”则需要“至周日时对准日行表,在一卷五十五张内”。根据这些算表的名称和页码,我们可以判断,与该《细草》配套使用的是《西洋新法历书》的算表,而并非《崇祯历书》*《西洋新法历书》和《崇祯历书》的日躔表内容有所差异。《西洋新法历书》中《日躔表》第一卷第三十三页为“太阳周岁平行表,一名平行经度”,五十五页为“周日时对准日行表”。而《崇祯历书》无法与此对应。。其中诸如“一卷三十三张”,即指《西洋新法历书》中《日躔表》第一卷的第三十三页。
另外,值得注意的是,除了需要空白的“算式”表,推算中还需要“傍纸”用于记载临时数据。如文中提到,在查“年根”的过程中,需要“随录本年高冲书于傍纸”。可见,哪些步骤和数据需要填入“算式”是有明确规范的,对于不是很重要的步骤以及部分临时数值,则要单独书写在“傍纸”中。这也说明了“算式”的主要作用包括了指示和引导推算步骤,记录和存储重要的中间值,以及适当的辅助计算。
从这份故宫藏康熙内府抄本《细草》和法国国家图书馆藏康熙年间的“算式”表比较来看,两者需要搭配使用,缺一不可*另外,奎章阁藏《七政细草》“土木细草”部分记载有“土木细草:土星用土星表,木星用木星表,此二星格式与查算俱一样法”,自然科学史所藏《天文书》也有“金水二星用法:金星表,水星表,此二星格式查算俱同一样法,惟水星不用次实引”。这也反映出细草是与“格式”搭配使用。。即通过《细草》“术文”引导如何运用《西洋新法历书》算表,进行查表运算,并将各步骤的结果挨个填入“算式”以方便推算和复查。
除了以上资料,还有李朝天文学家带回朝鲜的《玄象新法细草类汇》和《七政细草》,这不但提供了中朝历法交流的许多细节,也为我们更好的认识和理解《细草》的使用和传播情况提供了诸多旁证。
古代朝鲜统治者注重学习中国的天文历法,中国的历法最迟从元朝开始就系统地传入朝鲜半岛,其中就包括授时历、大统历和回回历法等。入清之后,虽然朝鲜一直对清朝充满了蔑视和憎恶,但迫于时局的压力,不得不与其维持宗主和藩属的关系,奉清朝“正朔”,使用清朝的历法。
为了使本国历法与清国保持一致,又不能每年被动地等待清国颁历,1649年李朝“遣天文学正宋仁龙学西洋历法于清国”。由于清初“历书私学,防禁至严”,他只得到汤若望的略加口授,并获“赠缕子草册十五卷”[16]。1652年金尚范被派往北京,希望通过“重赂学于钦天监”和“密买”书册的方式,学习西洋历法的具体推算方法,但由于“彼处求索无厌”加之“门禁极严”,使得“所用赂物,极其过滥”*《承政院日记》(孝宗三年,顺治九年,1652年9月24日条)[17]。,效果不佳。金尚范虽然购得《日躔表》《月离表》等书籍,并学会了《时宪历》历书的基本编算方法*也就是说,到1652年为止,金尚范只学得《时宪历》日躔、月离之梗概,仅仅能满足民用历书的编算需求,但日月交食与五星算法则未能习得。。但苦于钦天监内部的线人“退托迁延”及“许多缕子,未及考出”*《承政院日记》(孝宗五年,顺治十一年,1654年9月14日条)[17]。,以至七政推算等历法的核心内容尚未习得*《承政院日记》(孝宗五年,顺治十一年,1654年9月14日条)记载:“今年始行新历, 而七政仍存旧法,莫重改历之举, 尚未完了。上年入送金尚范, 而彼人退托迁延,最后肯许,求索礼物, 故因使臣,分付赍去三百两货,全数传给,则彼以日势已迫,许多缕子,未及考出” [17]。。
诸多线索表明,李朝使臣除了购买清廷公开出版的西洋历法书籍,还十分注重“缕子”和“年根”等物的获取,他们认为“虽不可送人请学,今此使行之时,带同日官一、二人,令译官探问于钦天监,若得近岁作历缕子,推考其法,解其疑难处而来,则庶可推测而知之矣”[18]。其中提到的“缕子草册”和“缕子”等,实际就是用于推算历法的《细草》以及填写完毕的“算式”(即假如,又称假令,为推算实例)。
此外,由于清朝的历法曾先后多次调整,搜寻最新版本的《细草》,对朝鲜历官就显得尤其重要。如1727年(雍正五年):“入送历官于燕京, 使之较准历法,学来七曜算本,而第非《御定历象考成》及《细草》等册子,则亦不能推算成历。云:此两册甚紧要,不可不及时贸来。”*《承政院日记》(英祖四年,雍正六年,1728年10月24日条)[17]。可见,除了急于购得清廷官方正式出版的《御定历象考成》,钦天监内部使用的《细草》亦被认为是紧要之物。又如1735年(雍正十三年)记载有:“彼中,方有改正历法之事,故上年陈奏使行,差送监官安重泰,觅得新法《七曜历理》十册及《日躔表》《月离表》《细草》三册而来,皆是历家推步之紧要方书。”其中还强调需将“《日躔表》《月离表》《细草》及时印布于推算官,然后可以无弊成历”*《承政院日记》(英祖十一年,雍正十三年,1735年5月19日条)[17]。。
目前在韩国奎章阁还保存有当年从清朝抄回的多份《细草》,其中最完善的是许远的《玄象新法细草类汇》(简称《细草类汇》)。据该书序言记载:
乙酉冬(康熙四十四年,1705年)朝廷特令臣以踵尚范故事,臣远受命而往燕京,从钦天监官何君锡,书得两历法推步之术多种,文法书册贸覔无遗,而事系禁秘,金、水年根、日躔高冲及交食推解之法,犹有所未尽学得,又于戊子冬(1708年)再往而覔来。莫重改历之举,经营六十余年,今毕完了。盖此法艰巨,授受之际,随端问答,或以片札,或以小纸者有之,故合成卷轴,名之曰《细草类汇》。日月、五星、次舍、冲照、交食、凌犯、顺逆、迟疾、南北经纬、太阳之出入进退,以星求时,以时求星等术,莫不毕载。此书之于历家犹之工师之准绳规矩,舍此则无以立象成器,今星翁历官执筹而临之,茫然自失之弊,开卷即得,瞭如指掌。从今以往二百年间,庶不复历日、交食之注误,而与天纤忽不爽矣,其于钦若授时之政,所补岂浅浅哉。[19]
通过这段文字,我们可以得知以下信息。首先,许远强调了该书的作用及其重要性。该书内容丰富,包括日月和五星运动、交食、凌犯等推算,基本涵盖了历算的各个方面*内容包括:日躔细草、土木细草、金星细草、水星细草、火星细草、月离细草、推节气、推合朔弦望时刻法、推太阴交宫法、推五星顺行交宫法、推五星退行交宫法、推五星合伏时刻法、推五星合退伏时刻法、推五星顺行同度时刻法、推五星合逆行同度时刻法、推五星一顺一逆同度时刻法、取五星顺退伏留同度冲等法、求日躔月离次年年根法、求月离年根法、推测时刻、晨见夕见晨不见夕不见法、取五星顺退伏留同度冲等法、求月孛罗睺计都入宿法、天文科算中星。。使用此书不但可以快速推算,而且可以有章可循,减少出错概率,即“开卷即得,瞭如指掌”,而避免“茫然自失之弊”。其中还强调“此书之于历家,犹之工师之准绳规矩”,也表明了该书的性质是指导和规范具体推算的操作手册。
其次,许远还指出,这些《细草》是通过钦天监的何君锡获得*另可参见“Another Look at the Introduction of the Shixian li 时宪历 Calendrical System into Late Joseon Korea” ,[17]一文,见[20]。。另据《承政院日记》记载,起初是“本监历日与清历每相差谬, 顷于乙酉年, 定送监官员许远于北京”,许远贸得方书,学成归来后,从此历书的大小月、二十四气、上下弦望时刻分秒等推算“无不脗合”。不过,此后又出现二百恒年表中的年根与算法不合的问题,故许远又以书往复于何君锡,获得1705—1713年(乙酉至癸巳年)的“年根”。“年根”实际上是恒年表中,历年推算起点即冬至日时刻,天体各种平行运动数值,“年根”的推算往往是历算的第一步,然而《西洋新法历书》和《崇祯历书》恒年表中部分内容不一致,并且“年根”的查表结果与算法亦相互不合,这就给历算给带了极大的困难。以致于李朝官员感慨“所谓年根,乃作历之宗法,无此,则布算者,无从下手”,所以必须设法定期从清朝获得*《承政院日记》(肃宗三十四年,康熙四十七年,1708年6月20日条),见[17]。。
由于只从何君锡处得到数年的“年根”数据,担心“癸巳以后,实无推算之路”,且“日月食时刻分秒,每多违舛”,为了彻底解决这些问题,因此“必及何君锡未死之前,学得以来”,随即许远又于戊子冬被派往燕京。在付出不少酬劳后,终于从何君锡处习得未尽之法*据《承政院日记》(肃宗三十五年,康熙四十八年,1709年3月23日条)记载“所谓金、水星年根未透处及日月蚀法,可考诸册,幸得贸来,而并与中间通言人所给情债,其数为一百两”,见[17]。。其中,《细草》就是此次“贸来”的资料之一,许远随后将其汇集整理成《细草类汇》。
此外,值得注意的是,《细草类汇》中的部分内容次序颠倒,如《日食细草》的第一求,在介绍“一格”后,就直接跳到“五格”“八格”等,极为混乱(见图6)。造成这种现象的原因,或许如序言中所提,因为“事系禁秘”,许远与何君锡的交流是通过“授受之际,随端问答”的方式,而全书则是根据“或以片札,或以小纸者有之”的零散记录抄成。在抄写《细草》的同时,许远还抄回一些“假令”,如康熙三十一年(1693)壬申岁正月初一日食,康熙三十四年(1695)乙亥岁十月十五日月食等,附于《细草》之后,这些“假令”实际就是此前钦天监填写完毕的“算式”,被抄回当作实例,用于学习和研究*日本东北大学图书馆也藏有朱校订抄本《崇祯历书》算式,其中详细记载了使用新法推算的“万历丙申八月朔日食新法”“崇祯壬申三月望月食”“庚寅顺治七年十月日食”“康熙十五年丙辰五月朔日食”细草算式。。
图6 许远《日食细草》(左)及其所附《日食假令》(右)
除了许远的《细草类汇》,奎章阁还保存有其他几种抄本《细草》,如《七政细草》*内容包括:日躔细草、土木细草、金星细草、水星细草、火星细草、月离细草、推节气 、推合朔弦望等。。不过从内容上看,其内容与《细草类汇》基本一致,应当是基于《细草类汇》的重抄本。
在解决《细草》的内容、特征及其与“算式”的关系后,还需要解决一些问题,如《细草》为何在官方文献中鲜有记载?能否找到钦天监在实际推算中使用“算式”的其他证据?
事实上,虽然一些官方著作没有直接提及《细草》和“算式”的使用,我们依然可以在《崇祯历书》中找到使用“算式”的痕迹。如《五纬历指》中“木星新测”部分就有“用图”和“算式”*《崇祯历书·五纬历指》卷三,第二十五页,见[21]。“金星新测”部分也记载有“用表算式”*《崇祯历书·五纬历指》卷五,第二十四页 ,见[21]。,该书在讨论“五纬犯恒星式”时也标明“算式图列后”,并给出了1634—1635年(崇祯七年至八年)的3份推算木星犯积尸气的算式*《崇祯历书·五纬历指》卷八,第二十九至三十页,见[21]。。可见,在崇祯年间,官方的西法历算中也使用了“算式”,只不过相关痕迹被淹没在这部卷轶浩繁著作中,被我们所忽视。与“算式”相配套的《交食蒙求》和《七政蒙引》等著作,在正式刻本又皆逸去,所以未能引起我们的关注。
此外,需要指出的是,《崇祯历书》“金星新测”中给出了1634年(崇祯七年十月十五日酉正时刻)的“用表算式”,但这部分内容却在此后的《西洋新法历书》中被删去。原因是作者在填写该“算式”时误用了“金星纬行表”,由于此表的数据前六宫与后六宫对称,但读取方向却相反,“算式”的填写者,在读取算表时弄错了方向,误填了其中“后中分”的数据,从而导致整个结果出错,这个错误很可能在此后被发现,再次刊印时该内容被删除。可以与此相印证的是,黄宗羲在其《西历假如》中,也使用“金星算式”对此做了重新推算,并给出了正确的结果*另一点不同是《崇祯历书》中的算式使用了“中比例”(即一次插值),而《西历假如》直接取整,没有插值。(见图7)。
图7 《崇祯历书》金星“用表算式”(左),《西历假如》“金星算式”(右)
这也反映出,在西法使用的初期,由于历局官生对西方算表的使用并不熟练,即便有“算式”可依,还是有出错的可能。可以想象,倘若没有“算式”的协助,推算中出错的概率可能更大。
由于“算式”的便捷,在当时不仅被历局所采用,梅文鼎、黄宗羲和薛凤祚、徐发等人也接触到了这些方法,并通过不同的形式在其各自的著作中采用,如梅文鼎和黄宗羲在上文中已有介绍,而薛凤祚在其《气化迁流》中,甚至将“算式”用于星占所用的天宫图的推算。徐发在其《天元历理》中,也将“算式”之法用于自己的历法中,如书中提到“五纬皆用此格推”,并且强调“挨序谱之,其各星之同舍、别舍、迟速、远近燎然在目”[22]。
第一,优秀的历法,不仅需要有足够的推算精度,而且还应该内容完备,便于学习和使用,如薛凤祚所言“历学,理有解、图有式、表有说,斯云大备”[23],《崇祯历书》也记载“《日躔》《月离》二书,皆有历指及表,历指以明其理,表以著其数,《五纬》如之,然不明其用,则算者无从下手”[21]。然而,《崇祯历书》实为应急之作,书中的理论、算法及算表,通常不相匹配,甚至自相矛盾,《西洋新法历书》虽然对其做了少量的更正,但仍然谈不上完备。甚至从两部著作中,我们很难确定当时的西法推算依据何种算法和步骤,其中算表如何具体操作和使用亦不明晰。
通过《细草》和“算式”,使我们一定程度上了解了明末清初官方历算的运作方式,也在一定程度上解释了看似内容混乱的官方著作背后,在历局和钦天监内部还还存在这些有章可循的操作手册,通过它来实现推算的程式化。无论是明代大统历的《通轨》还是后来西洋历法的《细草》,其本质都是依据规范,按“程式”或“算式”中的流程,通过借助算表来进行快捷运算。这种方法,简便易用,效率极高,也是明清钦天监官方日常推算主要方式。
第二,明初元统编撰《通轨》的初衷是考虑到“元《授时历经》,玄奥而难明,历官难于考步”[24]。通过《通轨》中简单和机械的方法,可以让初学者容易掌握和操作,迅速上手。然而《通轨》却也导致了意想不到的后果,使用者通常只会依葫芦画瓢,完全忽视了历法的原理,因此也备受批评。如郑善夫(1485—1523)就强调“官生之徒明理实少,必须理明然后数精”[25],唐顺之(1507—1560)认为“《立成》《通轨》云云者,郭氏之下乘也,死数也”[26]。梅文鼎也指出“畴人子弟皆以元统之《通轨》入算,逐末忘源”[8]。可见,明代《通轨》在带来便利的同时,其弊端也是相当明显的,这也是后来传统历法衰落的重要原因之一。明末西洋历法传入中国后,使用《通轨》及其“程式”的传统也被借鉴,于是出现了《蒙求》《细草》等著作以及相应的“算式”。
不过,在梅文鼎看来,虽然“《崇祯历书》之有《细草》,以便入算”,然而“算者贪其简便,而全部历书或庋高阁矣”,长此以往必然会重蹈明代大统历的覆辙。所以他才决定为《七政细草》补注,“以《历指》大意,櫽括而注之,使用法之意瞭然,亦使学者知其所以然”,并且“以诸家所用《细草》,改其同异,参之《历指》”为《交食蒙求》进行订补,以便初学[8]。可见,《通轨》和《细草》的弊端,在当时就已经引起了关注。
致 谢 本文曾分别于2015年2月19日和2015年9月12日在法国巴黎第七大学SAW项目研讨会和中国科学院自然科学史研究所青年学者夏季研讨会上进行报告,相关点评专家为本文提出了不少建议,在此一并表示感谢。
1 张培瑜, 薄树人, 陈美东, 胡铁珠等. 中国古代历法[M]. 北京: 中国科学技术出版社, 2008. 1.
2 (明)李天经, 罗雅谷. 历引[M]. 韩国首尔大学奎章阁图书馆藏明刊本.
3 (清)永瑢, 纪昀等主编. 《四库全书》: 《天学会通》提要[M]. 文渊阁《四库全书》本.
4 李亮, 石云里. 薛凤祚西洋历学对黄宗羲的影响[A]. 中西文化会通的先驱:全国首届薛凤祚学术思想研讨会论文集[C]. 济南:齐鲁书社, 2011. 218—230.
5 (明)郎瑛. 七修类稿(卷五): 天地类[M]. 上海: 上海书店, 2001. 49.
6 (明)黄宗羲. 黄梨洲答万贞一论明史历志书. 南雷文定后集卷一, 清康熙二十七[M]. 靳治荆刻本.
7 李银姬, 景冰. 朝鲜奎章阁本的《授时历立成》[J]. 中国科技史料, 1998,(2): 73—77.
8 (清)梅文鼎. 勿庵历算书目[M]. 清华大学图书馆藏清康熙刻本.
9 (明)徐光启, 李天经等. 治历缘起[M]. 美国哥伦比亚大学藏明刊本.
10 (清)张廷玉. 明史·历志[M]. 志第十一. 清武英殿刊本.
11 (明)元统. 大统历法通轨[M]. 中国国家图书馆抄本, 馆藏号: 16567.
12 石云里. 古代朝鲜学者的《授时历》研究[J]. 自然科学史研究, 1998,(4): 312—392.
13 (明)元统. 太阴通轨[M]. 中国国家图书馆抄本, 馆藏号: 05931.
14 石云里, 魏弢. 元统《纬度太阳通径》的发现: 兼论贝琳《回回历法》的原刻本. 中国科技史杂志, 2009,(1): 31—45.
15 佚名. 算七政交食凌犯法[M]. 故宫藏清康熙内府抄本.
16 石云里. 中朝两国历史上的天文学交往(一)[J]. 安徽师范大学学报(自然科学版), 2014,(1): 6—15.
17 (朝鲜)承政院日记[M]. 韩国首尔大学奎章阁图书馆藏本.
18 (朝鲜)李朝实录·仁祖实录[M]. 卷四十六. 韩国首尔大学奎章阁图书馆藏本.
19 (朝鲜)许远. 《细草类汇》序[M]. 韩国首尔大学奎章阁图书馆藏本.
20 Lim Jongtae. Learning “Western” Astronomy from “China”: Another Look at the Introduction of the Shixian li 时宪历 Calendrical System into Late Joseon Korea”[J].TheKoreanJournalfortheHistoryofScience. 2012, 34: 205—225.
21 (明)徐光启, 李天经等, 潘鼐汇编. 崇祯历书:附西洋新法历书增刊十种[M]. 上海: 上海古籍出版社, 2009. 12.
22 (清)徐发. 天元历理[M]. 清康熙刻本.
23 (清)薛凤祚. 历学会通[M]. 入历叙. 北京大学图书馆藏本.
24 (明)周相. 大明大统历法[M]. 序. 日本国立公文图书馆藏本.
25 (明)陈九德辑. 皇明名臣经济录[M]. 卷十三礼部四, 郑善夫“奏改历元事宜”. 明嘉靖二十八年刻本.
26 (明)唐顺之. 荆川先生文集[M]. 卷七. 明万历刊本.
Calendric Practices using Detailed Procedures and “Template Table” in the Ming and Qing Period
LI Liang
(Institute for the History of Natural Sciences, CAS, Beijing 100190, China)
This article introduces the handbooksGeneralRulesandDetailedProceduresused in Ming and Qing period. A type of form named “template table”, which is designed to guide the process of calendrical astronomy calculations is explained. With the assistance of another kind of text named “detailed procedures”, the users can finish the calculations easily by operating the “template table” and picking-up data in appropriate numerical tables. This method not only normalizes the usage of numerical tables but also connects the instructions with the corresponding tables in computational practices, and it was widespread from the Ming period onwards. In order to achieve this effective technology, the Joseon court of Korea even sent capable officers to learn it from China secretly. We can perceive the importance of this method in calendrical calculations from its circulation. The article also discusses the advantages and disadvantages of using this method. As a rigid tool, this method was thought to be one of the reasons that caused the declination of traditional Chinese astronomy from Ming period.
GeneralRules,DetailedProcedures, template tableChongzhenLishu,XiyangXinfalishu
2016- 02- 01;
2016- 07- 28
李亮,1986年生,安徽芜湖人,博士,中国科学院自然科学史研究所副研究员,研究方向为天文学史,liliang@ihns.ac.cn。
中国科学院青年创新促进会项目(编号:Y42201101C);国家自然科学基金青年项目(编号:11403111)。
N092
A
1673- 1441(2016)04- 0426- 15