当前位置:网站首页>梦溪笔谈 > 正文 >>

卷七 象数一

  开元《大衍历法》最为精密,历代用其朔法。至熙宁中考之,历已后天五十余刻,而前世历官皆不能知。《奉元历》乃移其闰朔。熙宁十年,天正元用午时。新历改用子时;闰十二月改为闰正月。四夷朝贡者用旧历,比来款塞,众论谓气至无显验可据。因此以摇新历。事下有司考定。凡立冬晷景,与立春之景相若者也。今二景短长不同,则知天正之气偏也。移五十余刻,立冬、立春之景方停。以此为验,论者乃屈。元会使人亦至,历法遂定。
  唐开元间所制定的《大衍历法》最为精密,历代都沿用其推算朔策的方法。然而到熙宁年间考校,现行历法已落后实际天象五十余刻,而前世历官都不能推知这一误差。《奉元历》于是改动闰月和朔日的设置:熙宁十年冬至的临界时分原用午时,新历改用子时;闰十二月改为闰正月。四方各族及外域来朝觐并进贡方物的国家仍然沿用旧历,接连按以往的节庆日派遣使者通好。朝廷舆论以为节气的确定并无显著的天象验证可以依据,遂因各国遣使事怀疑和反对新历,事下有关部门考定。不过大凡立冬的晷影与立春的晷影是差不多的,如今旧历所用的这两种晷影长短不同,可知旧历冬至节气的确定有偏差;大致移动五十余刻,立冬、立春的晷影长度才能均匀。以此作为验证,持异议的人乃无话可说,而元旦朝会时各国使者也按新定的日期来到,于是新历法得以确定。

  正月寅,二月卯,谓之建,其说谓斗杓所建,不必用此说。但春为寅、卯、辰,夏为巳、午、未,理自当然,不须因斗建也。缘斗建有歳差,盖古人未有歳差之法。《颛帝历》:“冬至日宿斗初”今宿斗六度。古者正月斗杓建寅,今则正月建丑矣。又歳与歳合,今亦差一辰。《尧曲》曰;“日短星昴。”今乃日短星东壁。此皆随歳差移也。
  正月指的是寅,二月指的是卯,称为“建”,一般认为这是斗柄所指的方向,其实大可不必采用这种说法。不过春为寅、卯、辰,夏为巳、午、未,这是理所当然的,不用依据斗柄所指的方向来确认。因为斗柄所指的方向会有岁差,大概古时候的人并不知道岁差之法。《颛帝历》:“冬至日宿牛初。”而今的冬至日太阳会停留在斗宿六度的地方。古时候的正月斗柄所指的位置在寅,而今正月斗柄所指的位置在丑。又将古时候和现在每年正月斗柄所指的方位作对比,现在的位置也相差了一个辰位。《尧曲》中说:“日短星昴。”而今冬至日时却是壁宿在天顶。这些都是因为岁差的缘故。

  天文家有浑仪,测天之器,设于崇台,以候垂象者,则古机衡是也。浑象,象天之器,以水激之,或以水银转之,置于密室,与天行相符,张衡、陆绩所为,及开元中置于武成殿者,皆此器也。皇祐中,礼部试《机衡正天文之器赋》,举人皆杂用浑象事,试官亦自不晓,第为高等。汉以前皆以北辰居天中,故谓之极星,自祖亘以机衡考验天极不动外,乃在极星之末犹一度有余。熙宁中,余受诏典领历官,杂考星历,以机衡求极星。初夜在窥管中,少时復出,以此知窥管小,不能容极星游转,乃稍稍展窥管候之。凡历三月,极星方游于窥管之内,常见不隐,然后知天极不动处,远极星犹三度有余。每极星入窥管,别画为一图。图为一圆规,乃画极星于规中。具初夜、中夜、后夜所见各图之,凡为二百余图,极星方常循圆规之内,夜夜不差。余于《熙宁历奏议》中叙之甚详。
  天文学家有浑天仪,是测量天文现象的仪器,被设置于高台上,以观察天文现象,古时候的玑衡就是现在的浑天仪。浑象和天球仪类似,用水冲激它,或者是用水银来作为动力以旋转,放置于密室内,和天球仪的运行也比较相似,张衡、陆绩所制造的仪器,以及开元年间放置于武成殿的仪器,都是这样的器物。皇祐年间,礼部将《玑衡正天文之器赋》作为会试的题目,参加考试的人都混用了浑象的例子,而考试官也不知道其中的道理,于是这些举人被列为及第高等。汉朝之前都认为北极星位于天区的尽头,所以称为“极星”。自从祖亘以玑衡验证了北天极点不动的位置后,才发现是在北极星天区的尽头,距离北极星的视觉距离犹且还有一度有余。熙宁年间,我接受诏命以统领历法官员,曾经考察过星象历法的事宜,并以浑天仪来求证北极星的位置。初夜时北极星的位置还在窥管之中,没多久便游移出窥管之外了,由此可见窥管是非常小的,无法容纳北极星的游移转动,便稍稍将窥管扩大并以此来继续观测。这般经过了三个月,北极星才可以完全在窥管内游动了,一直可以看到而不会再隐去,然后才知道北天极点不动的地方,和北极星的距离还有三度有余。北极星每次进入窥管时,都会另外画上一张图。这张图是用圆规画出的正圆形,并将北极星画在圆形中。只要在初夜、中夜、后夜时看到北极星后都会画在图上,以此总共画了二百多张图,北极星才按照设定的尺度移动,每夜都没有误差。我在《熙宁历奏议》中讲述的已经很详细了。

  古今言刻漏者数十家,悉皆疏谬。历家言晷漏者,自《颛帝历》至今,见于世谓之大历者,凡二十五家。其步漏之术,皆未合天度。余占天侯景,以至验于仪象,考数下漏,凡十余年,方粗见真数,成书四卷,谓之《熙宁晷漏》,皆非袭蹈前人之迹。其间二事尤微:一者,下漏家常患冬月水涩,夏月水利,以为水性如此;又疑冰澌所壅,万方理之。终不应法。余以理求之,冬至日行速,天运已期,而日已过表,故百刻而有余;夏至日行迟,天运未期,而日已至表,故不及百刻。既得此数,然后覆求晷景漏刻,莫不脗合。此古人之所未知也。二者,日之盈缩,其消长以渐,无一日顿殊之理。历法皆以一日气短长之中者,播为刻分,累损益,气初日衰,每日消长常同;至交一气,则顿易刻衰。故黄道有觚而不圆,纵有强为数以步之者,亦非乘理用算,而多形数相诡。大凡物有定形,形有真数。方圆端斜,定形也;乘除相荡,无所附益,泯然冥会者,真数也。其术可以心得,不可以言喻。黄道环天正圆,圆之为体,循之则其妥至均,不均不能中规衡;绝之则有舒有数,无舒数则不能成妥。以圆法相荡而得衰,则衰无不均;以妥法相荡而得差,则差有疏数。相因以求从,相消以求负;从、负相入,会一术以御日行。以言其变,则秒刻之间,消长未尝同;以言其齐,则止用一衰,循环无端,终始如贯,不能议其隙。此圆法之微,古之言算者,有所未知也。以日衰生日积,及生日衰,终始相求,迭为宾主。顺循之以索日变,衡别之求去极之度,合散无迹,泯如运规。非深知造算之理者,不能与其微也。其详具余《奏议》,藏在史官,及余所著《熙宁晷漏》四卷之中。
  古今所谈论刻漏的有几十家,都有很多的疏漏和错误。历法家谈论晷漏的,从《颛帝历》至今,见于世人而被称为“大历”的,总共有二十五家。其中用来计算时间的方法,都不合乎天体运行。我曾经观测天象、测量日影,并用相关的浑仪、浑象去验证,参考这些数据并操作刻漏,这般经历了十几年,才得到了初步的接近于真实的数据,并写成了四卷书,称为《熙宁晷漏》,都没有沿袭前人的足迹。其中有两件事比较精妙:第一,操作刻漏的人经常忧患于冬天水流迟缓、夏天水流滑利,并认为水性原本就是这样;又怀疑是因为流水结冰后而堵住了漏嘴,想方设法地想要去调理,却最终没有达到要求。我根据理论对此进行了探讨,冬至日时太阳的运行速度比较快,天象还没有运行一个周期,而刻漏已经计时一昼夜,所以说一天已经超过了一百刻;夏至日的时候太阳运行速度比较慢,天象运行一个周期,而刻漏计时还没有到一昼夜,所以说这一天还没有到一百刻。既然得到了这些数据,然后再核对晷景、漏刻所得到的数据,没有不吻合的,这一点是古人所不知道的。第二,太阳运行速度的快慢,都是逐渐增长和消减的,没有一天是突然间变动的道理。历法都是依据节气中每天长短的平均值来划分为刻和分,并将每日多余和减少的累积起来,节气刚开始的时候,每天的增长和消减量都是一样的,到了下一个节气,就会突然开始改变差量。所以黄道有了棱角而不再是圆形,即便勉勉强强用这些数据来进行推算,也并不是合乎道理的运算,而大多数都是和数值不相符的。但凡是物体都有明确的形状,每一种形状都有其实际的数值。方、圆、正、斜,都是明确的形状;通过乘除等相关的推算,不会附加任何其他的东西,形状和数值可以完全吻合的,就是和实际数值相符的。这一种运算方法只能在心中领会,而不可以言语相传。黄道围绕着天空为一个正圆,圆这个形体,天体围绕它来运行时盈缩就会达到最为均等的状态,不均等的话就不符合圆的量度;如若不沿着这个轨迹运行那么就会有快有慢,没有快慢也就无法有盈缩。以圆法法度来进行运算,得到的差额没有不均等的;以盈缩的法度来进行运算,得到的差额则是有大有小。将其相乘而求得总值,相除以求得差额;将总值和差额汇总,则衍变成一种计算太阳运行的数学方法。从太阳的运行变化上来谈论,那么每时每秒之间,其增减都不一样;从太阳运行的一致上来看,那么只用一个差额,就可以不停地循环,终始如贯,不能找出其中间断的地方。这一种圆形法度的精微之处,是之前谈论运算的人所不知道的事情。以日差来求得日积差,然后又得到了日差,如此反反复复地运算,宾主交替。顺应着计算就能够得到每日长短的变化,差别推算就可以得出太阳在黄道时距离北极的度数,不管是合算还是分开来算都没有任何的破绽,就好比用圆规画圆一般吻合。如若不是精通推算的人,是无法知道其中的精微之处的。其详细的内容都已经记录在了我的《奏议》中,并被史官所收藏,而且在我所写的《熙宁晷漏》四卷中也记载了这些内容。

  予编校昭文书时,预详定浑天仪。官长问余:“二十八宿,多者三十三度,少者止一度,如此不均,何也?”予对曰:“天事本无度,推历者无以寓其数,乃以日所分天为三百六十五度有奇。日平行三百六十五日有馀而一期天,故以一日为一度。既分之,必有物记之,然后可窥而数,于是以当度之星记之。循黄道,日之所行一期,当者止二十八宿星而已。度如伞虡,当度谓正当伞虡上者。故车盖二十八弓,以象二十八宿。则余《浑仪奏议》所谓‘度不可见,可见者星也。日月五星之所由,有星焉。当度之画者凡二十有八,谓之舍。舍所以挈度,度所以生数也。’今所谓‘距度星’者是也。非不欲均也。黄道所由当度之星,止有此而已。”
  我编校昭文馆中的书籍时,曾经参与过浑天仪的详细审定工作。长官问我:“二十八星宿之间的距离,多的有三十三度,少的只有一度,这般不均匀,为什么呢?”我回答说:“天体的事情原本就没有度,推算历法的人没办法使用他们的推算数据,所以只能运用太阳运行的轨道而将周天划分为三百六十五度多一点点。(太阳的运行周期平均为三百六十五天多一点,所以周天便以太阳一天所运行的距离作为一度。)既然要划分周天,那么就必须要有参照物来记述,然后才可以去测量和计算,于是便以正在黄道周围的星体作为分度界点的标志。遵循着黄道,太阳运行一周,那么能够作为分度界点的也只有二十八星宿而已。(分度界点如同伞的弓形架条,所谓当度是正好处于伞的弓上。所以车盖会有二十八个弓架,以象征二十八个星宿。就是我在《浑仪奏议》说的‘度是不可以看到的,可以看到的是星星。’日月五星所经过的地方,也有很多能够看到的星星。而可以作为分度界点的大概只有二十八星宿的星官,称为‘舍’。‘舍’能够提携分度,又能够生度数的。)而今所谓的‘距度星’说的就是这种星。并不是天文家不想将它们均匀划分,而是在太阳所运行的黄道上能够当作分度界点的,也就只有这些而已了。”

  又问予以“日月之形,如丸邪?如扇也?若如丸,则其相遇岂不相碍?”余对曰:“日月之形如丸。何以知之?以月盈亏可验也。月本无光,犹银丸,日耀之乃光耳。光之初生,日在其傍,故光侧而所见才如钩;日渐远,则斜照,而光稍满。如一弹丸,以粉涂其半,侧视之,则粉处如钩;对视之,则正圆,此有以知其如丸也。日、月,气也,有形而无质,故相直而无碍。”
  长官又问我说“太阳和月亮的形状是像个球呢,还是像把扇子呢?如果像个圆球,那么它们相遇的时候,岂不是要相互妨碍?”我回答说:“太阳、月亮的形状犹如圆球,是从何知道的呢?通过月亮的盈亏便可以验证。月亮原本是没有光的,就好比一个银球一样,太阳照射它时它才会发光。月光初生时,太阳在它的旁边,所以光源在它的一侧,人们所见到的月亮就如同一个弯钩;太阳渐渐远离月亮,光源斜照过来,那么月光就开始变得圆满。犹如一个圆球,用粉涂抹它表面的一半,从侧面看它,那么涂粉的地方就好比弯钩;和它对视,那么就是一个正圆,由此可以知道太阳、月亮都是一个圆球。太阳、月亮,是气体的凝结,有形状而没有实质,所以在相遇的时候也不会相互妨碍。”

  又问:“日月之行,日一合一对,而有蚀不蚀,何也?”余对曰:“黄道与月道,如二环相叠而小差。凡日月同在一度相遇,则日为之蚀;正一度相对,则月为小亏。虽同一度,而月道与黄道不相近,自不相侵;同度而又近黄道、月道之交。日月相值,乃相凌掩。正当其交处则蚀而既;不全当交道,则随其相犯浅深而蚀,凡日蚀,当月道自外而交入于内,则蚀起于西南,復于东北;自内而交出于外,则蚀起于西北,而復于东南。日在交东,则蚀其内;日在交西,则蚀其外。蚀既,则起于正西,復于正东。凡月蚀,月道自外入内,则蚀起于东南,復于西北;自内出外,则蚀起于东北,而復于西南。月在交东,则蚀其外;月在交西,则蚀其内,蚀既,则起于正东,復于西。交道每月退一度余,凡二百四十九交而一期。故西天法罗睺、计都,皆逆步之,乃今之交道也。交初谓之‘罗睺’,交中谓之‘计都’。”
  又问我说:“太阳和月亮的运行,每个月都会发生一次会合、一次正对,有时会发生日食、月食,有时又不会发生,这是什么原因呢?”我回答说:“黄道和月道,就好比两个圆环相互重叠而又相互有所偏差。但凡太阳和月亮在同一个经度相遇的时候,那么就会出现日食;在同一个经度正对的时候,就会发生月食。虽然在同一个经度,如若月道和黄道不相近的话,太阳和月亮自然也就不会相互侵犯;在同一经度而又接近于黄道、月道的交点,太阳和月亮相遇的时候,就会互相侵犯遮掩。当它们正好在黄道、月道的交点相遇时,就会发生日全食或者月全食;如若它们在相遇的时候没有在这个交点上,那么就会随着它们相互侵犯的深浅而发生偏食。凡是日食,月亮通过交点自黄道以南而进入黄道以北,那么日食就会在交点的西南方向出现,太阳则在交点的东北方向;如若月亮通过交点自黄道以北而进入黄道以南,那么日食就会在交点的西北方向出现,而太阳则位于交点的东南方向。太阳如果在交点的东面,那么日食便会在交点的北面出现;如果太阳在交点的西面,那么日食就会出现在交点的南面。如果是日全食,那么就会在交点的正西面出现,而太阳又在交点的正东方向出现。凡是月食,月亮从黄道以南进入到黄道以北的时候,那么月食就会出现在交点的东南方向,月亮则在交点的西北方向;如若月亮是从黄道以北而进入到黄道以南,那么月食则会在交点的东北方向出现,而月亮则又复原于交点的西南方向。月亮在交点的东面,那么月食就会出现在交点的南面;月亮在交点的西面,那么月食就会发生在交点的北面。月全食,则是交点的正东方向,而月亮则又在交点西面复原。每月黄道和白道的交点都会西退一度多,但凡二百四十九次交会时为一个周期。所以在西天印度历法中,罗睺、计都两星都是依据其逆行来设定运算的,此二星便是我们现在的黄道和白道的两个交点。交初点称为‘罗睺’,交中点称为‘计都’。”

  庆历中,有一术士姓李,多巧思。尝木刻一“舞钟馗”,高二三尺,右手持铁简,以香饵置钟馗左手中。鼠缘手取食,则左手扼鼠,右手运简毙之。以献荆王,王馆于门下。会太史言月当蚀于昏时,李自云:“有术可禳。”荆王试使为之,是夜月果不蚀。王大神之,即日表闻,诏付内侍省问状。李云:“本善历术,知《崇天历》蚀限太弱,此月所蚀,当有浊中。以微贱不能自通,始以机巧干荆邸,今又假禳以动朝廷耳。”诏送司天监考验。李与判监楚衍推步日月蚀,遂加蚀限二刻;李补司天学生。至熙宁元年七月,日辰蚀东方,不效。却是蚀限太强,历官皆坐谪。令监官周琮重修,復减去庆历所加二刻。苟欲求熙宁日蚀,而庆历之蚀復失之,议久纷纷,卒无巧算,遂废《明天》,復行《崇天》。至熙宁五年,卫朴造《奉元历》,始知旧蚀法止用日平度,故在疾者过之,在迟者不及。《崇》、《明》二历加减,皆不曾求其所因,至是方究其失。
  庆历年间,有一个姓李的术士,善于巧思。曾经雕刻了一个木头人“舞钟馗”,高二三尺,右手拿着狭长的铁板子,钟馗的左手放着很香的饵料。老鼠顺着香味去吃饵料的时候,那么它的左手便会抓住老鼠,右手会用铁板将老鼠打死。这个术士将它献给了荆王,荆王便让他当了自己的门客。恰逢太史说黄昏时候发生了月食,李姓术士自己出来回答:“有方法可以消除。”荆王让他试着去消除月食这一现象,当天晚上果然就没有发生月食了。荆王感觉很是神奇,当天便将这件事情上奏给了皇帝,皇帝下诏交给内侍省询问这件事情的来龙去脉。李姓术士说:“我原本就擅长历法、法术,知道《崇天历》的月食食限很弱,这次的月食,应该是在地平线以下。以我自身的卑微而无法上奏给官府,所以开始才会用一个小木头人投机取巧于荆王的府邸,而今又假借去除月食的事情来吸引朝廷的注意而已。”于是皇帝诏令将他送往司天监以验证他的说法。李姓术士和判监楚衍推算日食和月食,随后在食限上又添加了两刻,李姓术士便被授予司天学生。到熙宁元年七月,根据推算日食应该会在东方出现,却没有应验。这是因为食限过强的原因,各位历法官员都遭到了贬谪。皇帝命令监官周琮重新修订历法,又减去了庆历年间所加上的二刻。这样一来想要算清熙宁年间的这次月食,那么庆历年间的那次月食便是不准确的了,对此争论很多,最终也没有得出一个巧妙的算法,于是便废除了《明天历》,又推行《崇天历》。到了熙宁五年,卫朴编制出了《奉元历》,才开始知道旧时推算日食月食的方法仅仅使用了太阳运行时的平均速度,所以太阳运行快时就会超时,运行的慢时便会不足。对《崇天历》《明天历》两种历法所使用的加减食限的方法,都不曾考究过其中真正的原因,直到现在才算是知道了其中失误的地方。