|||
两汉历法的数理结构
李轻舟
惟天聪明,惟圣时宪。
——《古文尚书·说命》
中国的传统历法是一套比较完备的时宪体系(或偏重时间表象的宇宙体系)。不同历史时期的自然哲学或形上学宇宙观(中文语境中的“天地观”)结合历数正闰(岁时节候)、晷影漏刻、日月交食、五星运行等演算名目,构建起自成一统的数理天文学。先秦以至两汉大一统,诸子有关宇宙的理论嬗变会合,主体融入儒家自然哲学或形上学[1],催生了从《太初历》(《三统历》)、《元和四分历》到《乾象历》为代表的“宇宙图式”,奠定了传统历法的基本框架。
上元积年
在唐朝《符天历》(曹士蒍制)、南宋《统天历》(杨忠辅制)到元朝《授时历》(许衡、王恂、郭守敬制)逐步确立近距历元之前,“一部中国历法史,几乎可以说是上元的演算史”[2]。所谓“上元”,乃是以理论上溯的一种“历元”(历法推算起点)。相较于“近距历元”,“上元”一般距制历或颁历年份十分遥远,它到制历或颁历年的间隔年数即“上元积年”。自两汉历法始,在相当长的历史时期内,“上元”或“上元积年”都是传统历法数理结构的第一要素,诸如回归年、朔望月、五星会合、日月交食、纪年和纪日干支等表征时间周期性的参数设置皆与之密切相关。
图1 郭守敬塑像与郭守敬望远镜(LAMOST)
(作者摄于北京汇通祠郭守敬纪念馆和国家天文台兴隆基地)
据存世文献(主要是《汉书·律历志》),上元积年的推演可追溯到西汉刘歆的《三统历》。刘歆以“闰法十九”(置闰周期19年,称“章岁”)乘“日法八十一”(朔望月日的分母)得“统法一千五百三十九”(回归年
日的分母,朔望月与回归年在数值上满足十九年七闰法),协调朔望月和回归年,故经一统的周期(1539年)可使朔旦和冬至恢复到同一天的夜半。而《太初历》或《三统历》取“朔望之会百三十五”(135个朔望月的交食周期),故一统恰有141个“朔望之会”(“统月一万九千三十五”,即一统1539年有19035个月,除以“朔望之会百三十五”得141),正好可将日月交食周期纳入进来。又以三统为“元法四千六百一十七”,纳入纪日干支周期(60日),故经一元的周期(4617年)可使朔旦、冬至和甲子日恢复到同一天的夜半。最后,再将纪年干支周期(60年)与五星会合周期(138240年“五星会终”)纳入(东汉刘洪《乾象历》后,近点月、交点月等表征月行不均的周期亦逐步被纳入进来),以5120元(23639040年)为整个宇宙运行的综合大周期,经“二千三百六十三万九千四十而复于太极上元”。这个“太极上元”为某一丙子年十一月甲子日朔旦冬至夜半(丙子年为太初元年的纪年干支[3],甲子日为纪日干支之首,朔旦为朔望月之首,冬至为回归年之首,夜半为一日之首,各周期齐同),且“日月如合璧,五星如连珠”(日月五星七曜齐一),距颁行《太初历》的汉武帝太初元年(公元前104年)有“十四万三千一百二十七岁”(143127年),即西汉《太初历》或《三统历》的上元积年。
岁星超辰
日本学者新城新藏在《东洋天文学史研究》(1928年)中指出,《太初历》或《三统历》的上元积年计算,除了日月运动,还要考虑岁星(木星)运动。
图2 东洋史学京都学派巨匠、天文学家新城新藏
春秋战国时期,旨在统一列国纪年的岁星纪年法以岁星相对远处恒星背景每十二年运行一周天为据,将周天自西向东等分为十二星次,岁星每年行经一次,以所在星次纪年。十二次之外,周天又以斗建(北斗斗柄指向)自东向西等分为十二辰(十二地支),假使有一岁星的镜像天体,名为太岁,循十二辰每十二年运行一周天,每年行经一辰,以太岁所在辰纪年,便是太岁纪年。太岁十二辰(十二地支)配合十天干,逐渐摆脱对岁星运动的依赖,形成以60年为周期的干支纪年法。相较于依赖天象的岁星纪年,干支纪年简便而连续。汉章帝元和改历(公元85年),颁行《元和四分历》,正式废止岁星纪年,确立沿用至今的干支纪年。
作为古文经学宗师,刘歆心目中“完美的宇宙”[4]包含一套成体系的古史年代学(《世经》)。而古史以岁星纪年会带来“岁星超辰”的问题。岁星的公转周期并非12年,实约11.86年,故每过83年会在当年超越一个星次(太岁超越一辰),破坏了纪年的连续性。为了一劳永逸地解决岁星超辰带来的古史纪年混乱,刘歆创设了超辰法。据《汉书·律历志》所载《三统历》术文,“推岁所在,置上元以来,外所求年,盈岁数,除去之,不盈者以百四十五乘之,以百四十四为法,如法得一,名曰积次,不盈者名曰次余。积次盈十二,除去之,不盈者名曰定次。数从星纪起,算尽之外,则所在次也。欲知太岁,以六十除积次,余不盈者,数从丙子起,算尽之外,则太岁日也”,即设岁星每144年超越一个星次(144年行经145次)。又据《续汉书·律历志》,在汉顺帝汉安二年(公元143年)的历法讨论中,边韶称赞刘歆“研机极深”,评价其超辰法“百四十四岁一超次,与天相应,少有阙谬”。
新城新藏及其后学薮内清推测,刘歆将岁星超辰纳入上元积年N的计算,需要求解一个不定方程组(等价于一次同余式组)[5]:
,
其中,p、q和n皆为正整数,且n<29,4617即协调年、月、日和纪日干支的“元法四千六百一十七”,1728为“岁星岁数”(木星每1728年与日会合1583次,超越一周天十二星次),表示太初元年岁星所在。得出最小正整数解N= 4617×31=143127,即太初元年到太极上元的上元积年。另据《续汉书·律历志》和《晋书·律历志》[6],东汉《元和四分历》“从上元太岁在庚辰以来,尽熹平三年,岁在甲寅,积九千四百五十五岁也”,即自汉灵帝熹平三年(公元174年)回溯的上元积年为9455年,而刘洪《乾象历》“上元己丑以来,至建安十一年丙戌,岁积七千三百七十八年”,即从汉献帝建安十一年(公元206年)回溯的上元积年为7378年。
大衍求一
在中国古代典籍中,有关不定方程或一次同余式的内容源自较《三统历》晚出的《孙子算经》和《张丘建算经》,其集大成者,乃南宋秦九韶在《数书九章》(又名《数术大略》或《数学九章》,1247年)中创设的“大衍求一术”,即数学史上的“中国剩余定理”(Chinese Remainder Theorem)。
图3 秦九韶塑像(四川安岳秦九韶纪念馆)
秦九韶在《数书九章·序》中自陈“汉去古未远,有张苍、许商、乘马延年、耿寿昌、郑玄、张衡、刘洪之伦,或明天道而法传于后,或计功策而效验于时。后世学者自高,鄙不之讲,此学殆绝,惟治历畴人,能为乘除而弗通于开方衍变。......九韶愚陋,不闲于艺。然早岁侍亲中都,因得访习于太史,又尝从隐君子受数学”,可知其“数学”与两汉“畴人之学”(天文历算)渊源颇深。他的《数书九章》共八十一题,其中与天文历算直接相关者,有第一章“大衍类”第二题“古历会积”、第二章“天时类”第一题“推气治历”、第二题“治历推闰”、第三题“治历演纪”、第四题“缀术推星”和第五题“揆日究微”。整套体系以“大衍法”为根基,有十分鲜明的儒家自然哲学或形上学色彩,所谓“昆仑磅礴,道本虚一。圣有大衍,微寓于易。奇余取策,群数皆捐。衍而究之,探隐之原。数术之传,以实为体。其书九章,惟兹弗纪。历家虽用,用而不知。小试经世,姑推所为”,故而“述大衍第一”。
“圣有大衍,微寓于易”,刘歆援《易》而制《三统》,扬雄仿《易》而作《太玄》,刘洪创《乾象》亦是“依《易》立数”。“大衍”典出《易传·系辞》中的“大衍之数五十,其用四十有九。分而为二以象两;挂一以象三;揲之以四以象四时;归奇于扐以象闰;五岁再闰,故再扐而后挂。......是故四营而成易,十有八变而成卦”(八十一题之首便是“蓍卦发微”[7]),秦九韶仍要由此展开一次同余方程组的一般解法——“大衍总数术”,借助现代数学符号表示如下:
设有一次同余式组
,
其中N为“所求率数”,Ri为“余数”。在“定母”或“定数”(模数)pi两两互质的条件下(秦九韶将正整数称为“元数”,针对pi非整或非两两互质的情况,他有专门程序将之化为两两互质的正整数),若有一组“乘率”ki,使得
,
其中为“衍母”(“以定相乘为衍母”),
为“衍数”(“以各定约衍母得各衍数”),
为“用数”。就可以给出该一次同余式组的最小正整数解
,
亦可写成
,
其中m为使得N≤P的自然数,这正是“以其余各乘正用为各总,并总满衍母去之,不满为所求率数”。
“大衍总数术”的关键在于求“乘率”ki之算法,这就是秦九韶引以为傲的“大衍求一术”。它不仅是“大衍总数术”(一次同余方程组的一般解法)的核心,也是“治历演纪术”(专门推演上元积年的计算程序)[8]的基础,正如序文所谓“历家演法颇用之”。秦九韶“以奇与定用大衍求一入之以求乘率”,其术文曰“置奇右上,定居右下,立天元一于左上。先以右上除右下,所得商数与左上一相生,入左下。然后乃以右行上下以少除多,递互除之,所得商数随即递互累乘,归左行上下,须使右上末后奇一而止。乃验左上所得以为乘率,或奇数已见单一者便为乘率”。术文阐述的计算程序为:以上下左右四角方位设置一个算筹方阵。初始,右上为“奇数”gi,右下为“定数”pi,左上为“天元一”(“1”),左下为0,其中“奇数”gi为“衍数”对“定数”pi之余(“诸衍数各满定母去之,不满曰奇”,即
),又因“乘率”满足
,故有
。运算时,将右行两数辗转相除(轮番以少除多),所得商数与左上(或左下)轮番相乘并入左下(或左上),使右行两数逐步减小,直至右上为1,运算终止——“求一”之谓也——此时,左上即为所求“乘率”ki。例如,令“奇数”为11,“定数”为13,求出“乘率”为6的计算程序如图4所示。
图4 “大衍求一术”示意图(作者绘制)
结语
承两汉绝学而窥破天机的秦九韶在“治历演纪”的术文中感叹“数理精微,不易窥识,穷年致志,感于梦寐。幸而得知,谨不敢隐”,一如三百多年后开普勒(Johannes Kepler)在《世界的和谐》(Harmonices Mundi,1619)中留下的独白“十八个月前出现第一缕曙光,三个月前黎明初降,就在几天前,太阳这最壮丽的奇观升起来了——什么也阻挡不了我了。我要纵情享受这神圣的狂喜,我要得意地向凡人们宣布,我已盗取了埃及人的金瓶,为我的太阳神在远离埃及之地建立一座神龛。如果您宽恕我,我会快乐;如果您愤怒,我会承受;骰子已经掷出去了,书已经写了,无论现在还是将来的人会读它,已无所谓;就让它为它的读者等上一百年;上帝他自己等了六千年才有一个人理解他的杰作”,笔者谨以东西两位畴人的心声收束“天行见物理”。
参考文献
[1] Yu-lan Fung(冯友兰), A Short History of Chinese Philosophy, New York: The Macmillan Co., 1948.Ch.12,Ch.15,Ch.23
[2] 陈遵妫.中国天文学史(第三册).上海:上海人民出版社,1984.1391
[3] 为了干支纪年的连续,太初元年的纪年干支后来被定为丁丑,参见:张培瑜.三千五百年历日天象.郑州:大象出版社,1997.78
[4] 徐兴元.刘向评传(附刘歆评传).南京:南京大学出版社,2005.350
[5] 中国学者在新城新藏等人研究的基础上做出的工作参见:李文林,袁向东.论汉历上元积年的计算.科技史文集(第三辑).上海:上海科学技术出版社,1980.70-76
[6] 具体计算可参见:曲安京.东汉到刘宋时期历法上元积年计算.天文学报,1991,32(4):436-439
[7] 有关阐述参见:李继闵.“蓍卦发微”初探.秦九韶与《数书九章》.北京:北京师范大学出版社,1987.124-137
[8] 王翼勋.秦九韶演纪积年法初探.自然科学史研究,1997,16(1):10-20
原载《物理》第48卷第12期
附:
1.西汉司马迁、落下闳与《太初历》
2.刘歆、王莽与《三统历》
3.扬雄与《太玄》
4.东汉《元和四分历》
5.贾逵论历
6.两汉刻漏制度
7.东汉九道法
8.蔡邕与《月令》
9.刘洪与《乾象历》
10.星野、制图六体与重差勾股术
11.杜预与《春秋长历》
12.两汉历法的数理结构(上元积年、岁星超辰法与大衍求一术)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 07:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社