《曆學答問.答祠部李古愚先生》

梅文鼎 雜録
曆算之學,散見經史,固儒者所當知。然其事既不易明,而又不切於日用,故學者置焉。博覽之士,稍涉大端,自謂已足。欲如絳縣老人能自言其生之四百四十四甲子者,固已鮮矣,況能探討其義類乎?明公夙夜在公,日懋勤於職業。而心閒若水,孜孜好學。用其心於人所不用之處,真不易得。鼎雖疎淺無似,敢不勉竭鄙思,以仰答下問之勤乎?謹條如左。 問《授時》《大統》二曆曆元並歲實積日日法諸數 按曆元雲者,曆家起算之端也。然《授時》曆元之法與古不同,請先言古法。古人治曆,必先立元,元正然後定日法,法立然後度周天。其法皆據當時實測,以驗諸前史所傳。又推而上之,至於初古之時,取其歲月日時皆會甲子,又在朔旦,而日月五星皆同一度,以此爲起算之端,是謂曆元。自曆元順數至今造曆之時,凡曆幾何歲月,是爲積年。既有積年,即有積日。而此積日若用整數,則遇畸零,難以入算,而不能使曆元無餘分,故必析此一日爲若干分,使七曜可以通行,而上可以合歴元,下不違於實測,是爲日法。日法者,即一日之細分也。用此細分,自一日積之,至於三百六十五日又四分日之一弱,使一歲之日盡化爲分,是爲歲實。古曆太陽每日行一度,則日法即度法。於是仍用此細分,自一度積之,至於三百六十五度又四分度之一弱,使其度亦盡化爲分,是爲周天。數者相因,乃作曆之根本。自漢《太初曆》以後,歴晉、唐、五代、宋、遼、金諸家曆法,代有改憲,然其規模次第皆大同而小異耳。 右古法曆元等項 惟元《授時曆》不然。其説以爲作曆,當憑實測,而必逆推上古,虛立積年,必將遷就其畸零之數,以求密合。既有遷就,久則易差,故不用積年之法。而斷自至元十七年辛巳歲前天正冬至爲元上考往古,下驗將來,皆自此起算,棄虛立之元,用實測之度,順天求合,一無遷就,可謂開拓萬古之心胸者矣。至於《大統》,則以洪武十七年甲子爲元。然特易其名而已,一切步算皆本《授時》?名雖洪武甲子,實用至元辛巳也。 右《授時》《大統》曆元。 惟授時不用積年,故日法亦可不立,而徑以萬分爲日。萬分者,日有百刻,刻有百分,故一萬也。古諸家曆法,雖皆百刻,而刻非百分,其日法皆有畸零,《授時》以萬分爲日,竟是整數。故日不用日法,然即此是其日法矣。 右《授時》日法,《大統》同。 《授時》既以萬分爲日,故其歲實三百六十五萬二千四百二十五分。其數自辛巳歲前天正冬至,即庚辰年十一月中氣。積至次年壬午歲前天正冬至,即辛巳本年十一月中氣。共得三百六十五日二十四刻二十五分也。若逆推前一年亦是如此。如自庚辰年十一月冬至逆推至己卯年十一月冬至,亦是三百六十五日二十四刻三十五分。此歲實之數,《大統》與《授時》並同。然《授時》原有消長之法,是其新意。其法自辛巳元,順推至一百年則歲實當消一分。依法推至洪武十四年辛酉,滿一百年其歲實消一分爲三百六十五日二十四刻二十四分。若自辛巳元逆推至一百年,則歲實當長一分。依法推至宋孝宗淳熙八年辛醜,滿一百年,歲實長一分,爲三百六十五日二十四刻二十六分。每相距增一百年則歲實消長各增一分,以是爲上考下求之準。《大統》諸法悉遵《授時》,獨不用消長之法。上考下求,總定爲三百六十五日二十四刻二十五分,此其異也。 右《授時》《大統》歲實。 歲實即一年之日數也。自一年以至千年百年。共積若干,是爲積日,亦謂之中積分。上考下求,皆距至元辛巳立算。假如今康熙庚午歲,相距四百零九算,自辛巳元順推至今康熙庚午四百一十年,法以積年減一,得實距四百零九年。依《授時》法,推得積日一十四萬九千三百八十四日零一刻八十九分,因距算四百以十,歲實當消四分,爲三百六十五日二十四刻二十一分以乘距算四百零九,得如上數,是爲庚午歲,前天正冬至上距辛巳歲前天正冬至之積日,若以日爲萬分,則所得化爲一十四億九千三百八十四萬零一百八十九分,謂之中積分。《大統》法不用消長則積日爲一十四萬九千三百八十四日一十八刻二十五分,中積分一十四億九千三百八十四萬一千八百二十五分。兩法相差一十六刻三十六分。以命冬至日辰,《授時》得癸卯日醜初三刻,《大統》得癸卯日卯初三刻,兩法皆加氣應。 右《授時》《大統》積日。 以上數端,並在步氣朔章,是太陽項下事也。其曆元七曜同用,乃根數所立之處也。 問《授時》《大統》二曆月法轉周交周諸數 按:月法者,即朔策也,亦曰朔實。其法自太陽太陰同度之刻,算至第二次同度,爲兩朔相距之中積分。平分之則爲望策,四分之則爲弦策。望者,日月相望。距半周天。弦者,近一遠三。上弦月在日東,下弦月在日西,皆相距天週四之一。《授時》朔策二十九萬五千三百零五分九十三秒,即二十九日五十三刻零六分弱也,《大統》同。 右月法。 月平行每日十三度有奇,然有時而疾,則每日十四度奇。有時而遲則每日只十二度奇,是爲月轉。初入轉則極疾,疾極而平,平而遲,遲極又平,平而又疾。以此遂有疾初、疾末,遲初、遲末四限。滿此一周,謂之轉終。《授時》轉終二十七日五十五刻四十六分,《大統》同。 右轉法。 月不正行黃道,而出入其內外,故謂之交。交者,言其道交於黃道也。月行天一周,其交於黃道只有二處。其始從黃道內而出於其外,此時月道自北而南,在黃道上斜穿而過謂之正交。自正交行九十一度就整數離黃道南六度,自此再行九十一度,又自黃道外而入於其內。此時月道自南而北,亦斜穿黃道而過,謂之中交。中交行至九十一度時,離黃道北亦六度,自此再九十一度,又自黃道內而出於其外,復爲正交矣。其法,以正交後半周爲陽曆,中交後半周爲陰曆,滿此一周謂之交終。《授時》交終二十七日二十一刻二十二分二十四秒,《大統》同。 右交道。 以上三端,朔策在步氣朔章,轉終在步月離章,交終在步交會章,並太陰項下事也。 問《授時曆》有氣應何義 按:氣應爲《授時》四應數之一其法創立,古曆所無也。古曆立元皆起初古,故但有積年,而無根數。即應數。《授時》既不立積年,而用截算,不得不有四應數以紀當時實測之數,爲上考下求之根而氣應居一焉。氣即中氣節氣,二十四中節皆始冬至,故氣應者即冬至相應之真時刻也。當時實測辛巳歲前天正冬至,是己未日醜初一刻,故日氣應五十五萬零六百分,即五十五日零六刻也。其法自甲子日爲一數起,挨算至戊午日,得滿五十五日,又加子正後六刻,則爲己未日醜初一刻矣。 氣應之外又有閏應,以紀經朔。轉應以紀月之遲疾曆,交應以紀月之陰陽曆,亦是截算,皆實測辛巳年天正冬至氣應己未日醜初一刻。所得。上距經朔,及距入轉,距正交,各相應之數也。依法推到辛巳年天正經朔三十四日八十五刻半,爲戊戌日戌正三刻。在氣應冬至前二十日二十刻五十分。其己未冬至氣應,則爲經朔之二十二日。凡此皆曆經所未明言,茲特著之。 問推步交食之法 按:曆家之法,莫難於交食,其理甚精,其法甚備,故另爲一章。若知交食,則諸法盡知矣。然必能推步,而加以講究,然後能由其當然,以知其所以然,是謂真知。苟未能然,則所知或未全耳。請言其槩。蓋曆法代更,由疎漸密,其驗在於交食。約畧言之,有宜知者二端。其一,古者只用平朔。平朔者,一大一小相閒,故漢晉史志往往有日食不在朔,而在朔之二日、或晦日者。自唐李淳風《麟德曆》始用定朔,至一行《大衍曆》又發明之,始有四大三小之月,而蝕必在朔此是一層道理。其一,自北齊張子信,積候合蝕加時,立入氣加減。唐《宣明曆》本之,立氣刻時三差,至今遵用,即《授時曆》之時差及東西南北差也。此又是一層道理。前一説由平朔改爲定朔,其根在天,蓋以日躔有盈縮月離有遲疾,天上行度應有之差,天下所同也。後一説於定朔之外又立三差,其根在地。蓋以日高月卑,正相掩時,中間尚有空隙,人所居地面不同,而所見虧復之時刻與食分之淺深隨處各異,謂之視差,非天上行度有殊,而生於人目,一方所獨也。知此兩端,而交食之理思已過半,即曆法古疎今密之故亦大槩可見矣。至於入算須看假如,諸書中具有成式,然但能依法推步者亦未必盡知其理,故謹以拙見,畧疏大意不知於來諭所謂已明其理者同異何如統容晤悉。 問發斂加時之法 發斂加時之法,按此即《九章》中通分法也。《授時曆》以一日爲一萬分整數,今欲均分爲十二時,每時各得八百三十三分,三三不盡。故依古法,以十二通之,每一分通爲十二小分,則日週一萬通爲一十二萬,而每時各得一萬,故每遇一萬爲一時也。然滿五千亦進一時者,時分初正,各四刻奇,曆家以子正四刻爲今日,子初四刻爲昨日,今滿五千,即是半時,以當子正之四刻,輳完昨夜子初之四刻,而成一時,故命起子初,算外即醜初,乃借算也。遇有五千進一時者,一時算外是醜初二時算外是寅初,餘倣此。若以一萬爲一時者命起子正算外即醜正,乃本算也。無五千進一時者,一時算外是醜正,二時算外是寅正,餘倣此。其取刻數又仍以十二除之,何也?曰:此通分還原也。時下零分,是以十二乘過之小分,今仍以十二除之,十二小分收爲一大分,復還原數,則所存者即日週一萬之分,而每百分命爲一刻矣。 一法加二爲時,減二爲刻,即是前法。但以加減代乘除非有二也。何以言之?乘法是兩位俱動,而數陞者位反降。加法則本位不動,而但加二數於下位也。減二亦然。凡珠算十二除,當一歸二除,今用減二,則本位不動,但於下位減二,即定身除也。臺官不明算理,往往於此處有誤,但知以加減代乘除,則了然矣。是故算數者,治曆之本也。 又按發斂二字,乃日道發南斂北之謂。蓋主乎北極爲言,則夏至近極爲斂,冬至遠極爲發,而自冬至以至夏至,則由遠而近自夏至以至冬至則由近而遠。總謂之發斂。古諸家曆法皆以發斂另爲一章,其中所列爲二十四氣七十二候之類,而加時之法附焉,故日發斂加時,言發斂章各節候加時法也。元統作通軌,誤以十二通分爲發,十二除收刻爲斂,則以發斂爲演算法之名,失其指矣,而《律曆攷》因之以訛,不可不知也。 問:以《授時》法上推《春秋》魯隱公三年辛酉歲,距至元辛巳二千年中積七十三萬零四百八十九日,天正冬至六日零六刻閏餘二十九日四十八刻經朔三十六日五十七刻。今依法以滿甲子除中積而求冬至則合,以月策除中積而求經朔則不合,有一日三刻之差。其經朔應在冬至前耶?抑冬至在經朔前耶? 按:此以百年長一之法上推往古,中積諸數原自不錯,惟求經朔閏餘則誤加爲減,故有一日三刻之差而所以差者,由於未深明經朔閏餘立法之源也。今具論之。 經朔者,日月合朔之當日也。冬至者,日軌南至而影長之日也。日南至而影長,是日與天會也。日月合朔,是月與日會也。月會日謂之一月日會天謂之一年二者常不齊,此曆法所由起也。古曆十九年七閏謂之一章。章首之年,至朔同日,其餘則皆不同日矣。故天正經朔常在冬至前,冬至常在經朔後。自經朔至冬至,其間所歴日時謂之閏餘。以閏餘減冬至得經朔以閏餘加經朔得冬至,理數之自然也。 今自至元辛巳逆推隱公辛酉,法當以所得中積七十三萬零四百八十九日在位,用至元閏應二十〇日二十〇刻半減之,餘七十三萬零四百六十八日七十九刻半爲閏積,以朔策二十九日五十三刻〇五分九十三秒爲法除之得二萬四千七百三十六個月,仍有不滿之數四刻六十五分五十二秒,用以轉減朔策,餘二十九日四十八刻四十〇分四十一秒,爲其年之閏餘分,即是其年冬至在經朔後之日數也。 凡求經朔之法,當於冬至內減閏餘。今推得其年冬至是六日零六刻,不及減閏餘,故以紀法六十日加冬至而減之,得三十六日五十七刻五十九分五十九秒爲其年天正經朔是庚子日子正後五十七刻半強也。復置經朔三十六日五十七刻五九五九,以閏餘二十九日四十八刻四零四一加之,得六十六日零六刻,除滿紀法去之,仍得六日零六刻,即是其年冬至爲庚午日子正後六刻也。庚午距庚子整三十日,即知其年冬至在次月朔,爲至朔同日之年,而年前閏十二月矣。今誤以閏餘去減經朔爲冬至,所以差一日三刻也。經朔三十六日五十七刻內,減去閏餘二十九日四十八刻,餘七日零九刻,以校先得冬至六日零六刻實多一日三刻。 問:閏月宜閏歲前十二月乎?或閏正月乎?先儒辯之,今不得其解。 按:閏月之議,紛紛聚訟,大旨不出兩端。其一謂無中氣爲閏月,此據左氏舉正於中爲説,乃曆家之法也。其一謂古閏月俱在歲終,此據左氏歸餘於終爲論,乃經學家之詁也。若如前推隱公辛酉冬至在經朔後三十日,宜閏歲前十二月即兩説齊同可無疑議。然有不同者,何以斷之?曰:古今曆法,原自不同。推步之理,踵事加密。故自今日言曆,則以無中氣置閏爲安,而論《春秋》閏月則以歸餘之説爲長。何則治《春秋》者當主經文。今考本經書閏月俱在年終,此其據也。 問:至元辛巳至隱公辛酉二千年中,閏月幾何? 按:此易知也。前以朔策除閏積,得二萬四千七百三十六月,內除二萬四千月,爲二千年應有之數。其七百三十六,即閏月也。此與古法十九年七閏之法亦所差不多。 問:二千年中交泛若干次,入食限若干次,及交泛字義何解? 經朔合朔何所分別?按:月與日會謂之合朔,然有平朔、有定朔。三代以上,書籍散軼,不可深考。所可知者,自漢以來祇用平朔,唐以後乃用定朔。定朔與平朔有差至一日之時,然必先求平朔然後可求定朔。今曰經朔即平朔也,以其爲合朔之常數,故謂之經。得此常數,再以盈縮遲疾加減之,即定朔矣。是故合朔者,總名也。因有定朔,故別爲之經朔耳。 交者,月道出入於黃道也。《授時》之法,二十七日二十一刻二十二分二十四秒而月道之出入於黃道一周,謂之交終。以此爲法而除中積,則得其入交次數矣。今以本法,求到魯隱公辛酉正月經朔,入交十七日三十八刻九六七〇。自此下距至元辛巳,凡滿交終二萬六千八百四十三,其出入於黃道也各二萬六千八百四十四。 至於食限則不可以預定,何也?入交雖有常數,而其食與否又當以加減差及氣刻時三差諸法定之。 又按:入交亦有平日、有定日,此雲泛者,亦平義也。因先求平日,次求定日,故命之曰泛。泛者,以別於定也。然曆經本文謂之入交汎日,或省文日入交,或曰汎交,未有稱交泛者。其稱交泛,則臺官之語。以四字節去首尾,而中撮兩字爲言,文理不安,所當改正者也。 問:《周髀算經》牽牛去極樞共積九百九十二億七千四百九十五萬分,以一度積八億五千六百八十萬爲法除之,復原度一百一十五度一千六百九十五裡二十一步又一千四百六十一分步之八百一十九,用何演算法還原? 按:此乃通分法也。凡算家通分之法,所以齊不齊之分,便乘除也。若如郭太史以一萬分爲度,則分有百秒,秒有百微,皆以十百爲等,自然齊同,通分之法可以不用。而古曆不然,各有所立之法,其法又不同母,此通分之法所由立也。即如《周髀》所立度法,是一千九百五十四裡二百四十七步又一千四百六十一分步之九百三十三度,下有裡,裡下有步,步下有分。其法不同,故必以裡通爲步。乃以零步納入,步又通爲分,乃又以零分納入,此所謂通分納子也。然後總計其分,以爲度法。即度積。法曰:置一千九百五十四裡在位,以每裡三百步爲法乘之,得五十八萬六千二百步。如是則裡通爲步,可以納子矣。於是以零步二百四十七加入,共得五十八萬六千四百四十七步,復置在位,以步之分法一千四百六十一爲法乘之,得八億五千六百七十九萬九千零六十七分,則步又通爲分,可以納子。於是再以零分九百三十三加入,共得八億五千六百八十萬分,是爲度法,言滿此分爲一度也。其外衡去璿璣即牽牛去極數。二十二萬六千五百里,亦以每裡三百步乘之,得六千七百九十五萬步,是裡通爲步也。又置爲實,以每步一千四百六十一分乘之,得九百九十二億七千四百九十五萬分,是步又通爲分也。以爲實,於是以法除實,得滿法之數一百一十五,命之爲度。其不滿法之數,仍餘七億四千二百九十五萬分,不能成一度,當以裡法收之爲裡。法曰:置每裡三百步,以每步一千四百六十一分乘之,得四十三萬八千三百分,是爲裡法。以裡法爲法,餘分七億四千二百九十五萬分爲實,實如法而一,得一千六百九十五,命爲裡。仍有餘分三萬一千五百,不能成一裡,當以步法收之爲步。法曰:置餘分三萬一千五百爲實,以每步一千四百六十一分爲法除之,得二十一步。仍有餘分八百一十九,不能成一步,即命爲分。用上法,求得一百一十五度、一千六百九十五裡二十一步又一千四百六十一分步之八百一十九,適合原數。 緣實數是裡數,牽牛去極二十二萬六千五百里,是裡數也。法數有裡有步有分,不便乘除,故必以裡通爲步,步又通爲分,乃可乘除。故曰:齊同法實,乘以散之也。 其不滿法者,以裡法收之爲裡。又不滿裡法者,以步法收之爲步,再不滿步法,命爲零分。故曰不滿法者,以法命之。又曰:位盡於一步,故以其法命餘爲殘分也。通分之法,不過如此,乃正法也。 今《周髀》所載之法,其初通法實並爲分,末以法命殘分並同,惟中間收餘分微異,則古人截算之法也,具如後。凡算有除兩次者,則以兩次除之之法,相乘爲法以除之,謂之異除同除。如以三除,又以四除,則以三乘四得十二爲法除之,變兩次除爲一次除也。若算有法數太多者,則變爲簡法。兩次除之,謂之截法。如以七十二除之者,則以八除之,又以九除之,即與七十二除同。此兩者正相對,而其理相通也。 如餘分七億四千二百九十五萬,不滿一度,宜收爲裡,法當以每裡三百步,乘每步一千四百六十一,共化爲四十三萬八千三百分,此即異除同除之法也。《同髀經》則先以每裡三百步除之,得二百四十七萬六千五百爲裡實,再以周天分即步法。爲法除之,得一千六百九十五裡,不盡一百〇五此即截法變一次除爲兩次除也。 右所得裡數與前法不異,所異者前法餘分三萬一千五百,而今用截法只一百〇五。此何以故?因前法所餘是實分,今用截法,則餘分。是用每裡三百步除過者,則此餘分一數內各藏有三百之數也。是以三百分爲一分。餘分內既各帶有三百之數,則當以三百乘之,復還原分之數,然後可以收爲步。此亦正法也。何以言之?蓋餘分有二,頭一次是不滿一度之分,則當收爲裡。此餘分又是不滿一裡之餘分,故當收爲步。然而步之法是周天一千四百六十一分,乃實數也,此所餘一百〇五是三百分爲一分,非實數也。若仍以三百乘之則亦爲實數,而可以乘除矣,故曰正法也。 《周髀》之法則又不然,雖亦以三乘之,而不言百,以三百乘一百零五,該三萬一千五百,今以單三數乘之,只三百一十五。則每餘分內仍帶有一百之數餘分爲實者,既以百分爲一分,則其滿法而成一步者,即是百步。既是以百分爲一分,則其滿一千四百六十一之法而成一步者,則是滿了一百箇一千四百六十一而成百步也。故曰不滿法者三之,言以單三數乘不滿法之餘分也。又曰如法得百步,言此餘分既以三乘,則其滿法者爲百步也。又自疏其義曰上以三百約之,爲裡之實。此當以三百乘之爲步之實,而言三之者,不欲轉法,更以一位爲一百之實,故從一位命爲百也,此蓋自明其不以三百乘,而以三乘之故,是欲以得數爲百步也。得數爲百步,則其實亦百步之實也,故曰省算也。刻本三百乘之句遺百字,而言三之句遺三字。 既言如法得百步,而今之餘實只三百一十五,在一千四百六十一之下,是不能滿法也。不能滿法者,即不能成百步也,於是以餘分進位,三百一十五變爲三千一百五十。爲實,而以滿法爲十步。何也?原一分內有百分,今雖進位以一分爲十分,然仍未復原數,仍是十分爲一分,故得數即爲十步也。 法曰:置三百一十五,進位爲實,變三千一百五十。以法一千四百六十一除,得二數。命爲二十步,不盡二百二十八。《經》曰:不滿法者又上十之。如法得十步,亦省算也。上之,即進位也。此餘分既各帶有十分,故復以十乘之,即得本數。 法曰:置二百二十八,又進位爲實。變爲二千二百八十。以法一千四百六十一除,得一數。命爲一步,不盡,八百一十九。《經》曰:不滿法者又上十之,得數爲一步。又自疏之曰:又復上之者,便以一位爲一實。故從一實爲一,言末次進位,則適得本數爲實,而得數亦爲本數也。 凡看曆書,與別項文字不同,須胸中想一渾圓天體併七政旋行之道,了了在吾目前,則左右逢源,有條不紊。故圖與器,皆足爲看書之助。右所疏數條,言雖淺近,然由淺入深,庶幾有序。天下最深微之理,亦即在最麤淺中,舍麤淺無深微矣。謹復。