祖冲之

杜石然

祖冲之字文远。范阳遒郡(今河北涞源)人。南北朝刘宋元嘉六年(公元 429 年)生于建康(今江苏南京);萧齐永元二年(公元 500 年)卒。天文历法、数学。

祖冲之的祖籍虽然在河北,但他自己却是生长于南北朝时期南朝的政治、经济中心建康(今南京)。自东晋南迁以来,江南地区的经济得到迅速发展。水利和农业技术得到了改良,牛耕在南方普及,人口显著增加,纺织、冶炼、陶瓷、造船等手工业技术也有明显的发展,出现了一些繁荣的城市,建康就是其中较为突出的一个。

祖冲之出生在一个官宦人家。他的曾祖父祖台之,在东晋时,曾官至侍中、光禄大夫。祖父祖昌、父亲祖朔之都曾在南朝做官,祖父是管理建筑工程的官员——大匠卿,父亲曾任奉朝请。这个家庭的历代成员,大都对天文历法有些研究。

从青年时起,祖冲之便对天文学和数学发生了浓厚兴趣。为了反驳别人责骂他不学无术,他曾在著作中自述说,从很小的时候起便“专功数术, 搜炼古今”。他把从上古时起直至 6 世纪他生活的时代止的各种文献、记录、资料,几乎全都搜罗来进行考察。同时,他又主张决不“虚推古人”, 决不把自己束缚在古人陈腐的错误结论之中,并且亲自进行精密的测量和仔细的推算。像他自己所说的那样,每每“亲量圭尺,躬察仪漏,目尽毫厘,心穷筹策”。祖冲之批判地接受前一代的学术遗产,利用并尊重其中一切正确有用的东西,再经过辛勤的实际工作,进行考核,敢于怀疑古人错误陈旧的结论,并勇于提出自己的新见解,这正是古往今来一切杰出科

学家的共同品质。

还是在青年时代,他便对刘歆、张衡、郑玄、阚泽、王蕃、刘徽等人的工作进行了仔细的研究,一一驳正了他们的错误并且导出了许多极有价值的结果。在这些成果中,准确到 7 位有效数字的圆周率数值,便是人所共知的例子。

他坚持这种严谨的治学态度,对过去科学家们的工作反复进行考核, 就是对他的前辈著名天文学家何承天,也是如此。经过实际观测,他指出何承天所编制的为当时的刘宋王朝所奉行的元嘉历,有不少错误。祖冲之指出,元嘉历所推算的冬至时太阳所在宿度距实测已差 3 度,冬至、夏至

时刻已差 1 天,五星的出没时间差 40 天。于是,他着手编制了新的历法—

—大明历,对历法的编制做出了很多创造性的贡献。大明历是这个时代的一部最好的历法。

大明六年(公元 462 年),他上表给刘宋王朝的皇帝刘骏,请对新的历

法进行讨论,予以颁行。这一年,祖冲之只有 33 岁。虽然他还很年轻,但事实上他已经攀登上了他生活时代的科学高峰。

但是新的历法却遭到皇帝宠幸的戴法兴的反对。朝中百官惧于戴的势力,多所附和。祖冲之则勇敢地进行了辩论,写出了一篇非常著名的“驳议”呈送给皇帝。这篇理直气壮、词句铿锵的论文,充分显示了祖冲之横生洋溢的才华和敢于坚持真理的高贵品质。在“驳议”中,他写下了两句名言:“愿闻显据,以核理实”,“浮辞虚贬,窃非所惧”。为了明辨是非,他愿意彼此拿出明显的证据来相互讨论,至于那些捕风捉影无根据的贬斥,他丝毫也不惧怕。这场辩论反映了进步与保守、科学和反科学两种势力的斗争。见解保守的戴法兴认为,历法中的传统持续下来的方法是“古人制章”、“万世不易”的;他责骂祖冲之是什么“诬天背经”,认为天文和历法是“非凡夫所测”、“非冲之浅虑,妄可穿凿”的。祖冲之却大不以为然。他反驳说,不应该“信古而疑今”,假如“古法虽疏,永当循用”,那还成什么道理!日月五星的运行“非出神怪,有形可检,有数可推”,只要进行精密的观测和研究,孟子所说的“千岁之日至(指冬至、夏至)可坐而致也”,是完全可以做得到的。

科学的每一个进步,经常要和保守的势力进行不调和的斗争,有时这种斗争会是很尖锐的。在这里,祖冲之为我们树立了光辉的榜样。

由于种种阻碍,大明历直到公元 510 年,经过刘宋王朝和肖齐王朝, 直到梁王朝天监九年,由于祖冲之的儿子祖■的坚决请求,经过实际天象的校验,才得以正式颁行。但是这已经是祖冲之死后 10 年的事了。

从刘宋时代起,祖冲之就开始在朝廷里当品位不算高的小官。他历任南徐州(今江苏镇江)从事史,公府参军等职,还做过娄县(今江苏昆山)县令,也做过谒者仆射等官。到了肖齐王朝,祖冲之曾官至长水校尉,这是他一生官阶最高(四品)的官职。这时他写了“安边论”等讨论屯田、农殖等方面应采取的政策的政论性文章。齐明帝(公元 494—498 年在位)想令他“巡行四方,兴造大业,可以利百姓者”,后因发生战争而作罢。这时, 祖冲之已是风烛残年,老死将至了。

特别值得注意的是,自从大明历因受到皇帝宠幸人物的反对而未及时颁行受挫之后,在祖冲之的工作中,像在大明历编制过程中所表现出的那种气魄便不多见了。他好像是生长在养分不足的土壤里,这样的土壤,人

们是不可能期望获得一次比一次更加丰硕的成果的。历史产生了如此的天才,但从另一个意义上又扼杀了如此的天才,这难道不正是在中国漫长的封建社会中,无数杰出人物的共同命运吗!

祖冲之生平著作很多,内容也是多方面的。如上所述,在天文历法方面有大明历(附“上《大明历》表”、“驳议”,均载《宋书·历志》)。他在数学方面的论著,不幸均已失传。《南齐书·祖冲之传》中说他曾“注

《九章》,造缀术数十篇”。在历代国内外的各种图书目录中可以见到他所写的数学著作的书名有:《缀术》(或题为其子祖■所撰,或未具名)6 卷、《九章术义注》9 卷、《重差注》1 卷。在古代典籍的注释方面,祖冲之有《易义》、《老子义》、《庄子义》、《释论语》、《释孝经》等著作,但亦均失传。文学作品方面,他曾著有《述异记》10 卷(此书已佚, 但在《太平御览》等书中可以看到其中片断)。

《隋书·经籍志》中列有《长水校尉祖冲之集》51 卷,这可能是他全部著作或是部分著作的汇集,可惜也早已失传了,现仅可知其中收有“上

《大明历》表”、“驳议”、“安边论”等等。

祖冲之在数学方面的成就,首先应该叙述的乃是关于圆周率的计算。在中国古代,也和世界上任何文化开发较早的国家和地区一样,最早

被人们使用的圆周率是 3。这一误差很大的数值,在中国一直被沿用到汉代。入汉以后,对圆周率的改进吸引了不少科学家的注意,例如刘歆、张衡、刘徽、王蕃、皮延宗等人都进行了研究。在许多人的工作中,生活于魏晋之际的数学家刘徽的研究最为重要。假如把刘徽称为是祖冲之的先行者,那他确实是当之无愧的。

刘徽在计算圆面积的过程中,实际上也计算了圆周率。刘徽从圆的内接正 6 边形起算,依次将边数加倍,分别求出内接正 12,24,48,⋯⋯等内接正多边形的一边之长,从而算出内接正 24,48,96,⋯⋯等正多边形的面积。边数增加的越多,内接正多边形面积与其外接圆面积之差愈小, 算得的圆面积也就愈准确,求得的圆周率也就更加精密。边数增加愈多, 像是把圆愈割愈细,因此刘徽的这种方法称为“割圆术”(载于现有

传本的刘徽注《九章算术》之中)。刘徽用这种方法求得圆周率 157 (相

50

当于π = 3.14),也有人认为他还算得了 3927 (相当于π = 3.1416)。

1250

关于祖冲之在圆周率方面的工作,其史料仅见于《隋书·律历志》, 但记载过于简略,下面就是此段记载的原文:

“古之九数,圆周率三,圆径率一,其术疏舛。自刘歆、张衡、刘徽、王蕃、皮延宗之徒各设新率,未臻折衷。宋末,南徐州从事史祖冲之更开密法,以圆径一亿为一丈,圆周盈数三丈一尺四寸一分五厘九毫二秒七忽,

■数三丈一尺四寸一分五厘九毫二秒六忽,正数在盈■二数之间。密率: 圆径一百一十三,圆周三百五十五。约率:圆径七,圆周二十二。”

这段记载说明:

  1. 祖冲之的圆周率方面的工作,是在刘歆、张衡、刘徽等人工作之上“更开密法”的。

  2. 他以 1 亿为 1 丈,即由 108——九位数字开始进行计算。

  3. 他算得过剩近似值和不足进似值,同时指出真值在过剩、不足二近

似值之间,相当于算得了

3.1415926<π<3.1415927。

圆周率的这一数值作到了小数点后 7 位数字准确。(4)他还给出了两个近似分数值,即

祖冲之 - 图1

关于祖冲之如何算得如此精密结果,关于他所使用的方法,则没有任何史料流传下来,这是非常遗憾的。不过,根据当时的情况来进行判断, 除开继续使用刘徽“割圆术”之外,并不存在有其他方法的任何可能性。清代的数学史家大都认为“厥后祖冲之更开密法,仍割之又割耳,未能于徽法之外别有新法也”(阮元《畴人传·祖冲之传》),梅文鼎的著作以及

《数理精蕴》等书,也都持这种观点。实际上,如按刘徽方法“割之又割”, 继续算至圆内接正 12288 边形和正 24576 边形,得出

内接正 12288 边形面积:S12288=3.14159251 方丈,内接正 24576 边形面积:S24576=3.14159261 方丈。

又据刘徽割圆术可得下列不等式(式中 S 表示圆面积):

S24576<S<S24576+(S24576-S12288),

即可得出

3.14159161<π<3.14159271,

而这正是《隋书·律历志》所给出的盈■二限。

把 1 丈化为 1 亿,从圆的内接正 6 边形算至正 24576 边形(=6×212 边

形),需要把同一个计算程序反复 12 次,而每个计算程序又包括加、减、

乘、除、开方等 10 余个步骤。因此,祖冲之为了求得自己的结果,就要从

100000000(9 位数字)算起,反复进行加、减、乘、除、开方等运算 130 次以上。既使是今天,用纸和笔进行这样的计算,也绝不是一件轻松的事, 更何况中国古代的计算都是用罗列算筹来进行的。可以想象,这在当时是需要何等的精心和超人的毅力。

由于在中国古代有利用分数进行计算的习惯,祖冲之还给出了密率

( 355)和约率( 22 )。

113 7

一个无理数可以用连分数形式来进行表示,例如圆周率即可表示成连分数:

或记为π = 3 + 1 + 1

7 15

1

+ 1 +

1 +

292

,也可以记成π = [3,7,15,

1,292,⋯⋯],依次截取、计算即可得出一串关于π的数值,例如

π = 3 1

7

22 ,

7

1 1 333

π = 3 + 7 + 15 = 106 (相当于π = 3.141509431),

1 1 1 355 ,

π = 3 + 7 + + = ,

15 1 113

1 1 1 1 103993

π = 3 + 7 + + + =

(相当于

15 1

292

33102

π=3.141592653),

⋯⋯

P

这一串数值都是最佳渐近分数值(即这串数值 Q ,都是在所有分母不大

于 Q 的分数中与π最接近的分数值)。但是反过来说,最佳渐近分数值却

不一定都是由连分数来算得的。例如在 103993 之前( 即在分母小于33102

33102

355 52163

的分数中)还有许多个最佳渐近分数值,最靠近 113 的是16604 。因此

也可以说,在分母小于16604的近似分数值中, 355 是最佳分数,最与

113

π接近。

但直到目前为止,我们还没有发现任何证据足以说明中国古代已有连分数的应用。

在中国古代的天文历法的计算中,曾有过一种逐渐调整分母和分子数值以求得使分数值更加接近真值的方法,叫作“调日法”。宋代的学者认为“调日法”始自南北朝时期稍早于祖冲之的何承天。“调日法”的基本

a c

内容是:假如 b , d 分别为不足和过剩近似分数,则适当选取m,n,新

ma + nc

得出的分数 mb + nd 有可能更加接近真值。例如由

(祖冲之约率)即可算得

157

50

(刘徽)和 22

7

157×1 + 22×9 = 355

3 22

50×1 + 7×9 113

3×1 + 22×16 355

又由 1 (古率)和 7

亦可算得

1×1+ 7×16

= 113 。用“调日法”算得

的分数值,再用割圆术求得的精确数值来校验,即可断定 355 为“密

113

率”。

在西方,直到 1573 年,德国数学家 V.奥托(Otho,1550?—1605)

方才算得 355 这一数值;而在一般西方数学史著作中却常误以为这一数

113

值是荷兰工程师 A.安托尼兹(Anthonisz,527—1607)得到的,因而

称 355 为安托尼兹率。日本数学史家三上义夫(1875—1950)主张将 355

113 113

这一圆周率数值称为“祖率”。

355

按《隋书·律历志》的记载,祖冲之曾用 113 这一圆周率来校算王莽

所造的量器——“律嘉量斛”。约率 22 虽仅精确至小数点后二位数字,

7

但使用起来是方便的。

关于球体体积的计算,乃是祖冲之在数学方面的又一项成就。祖冲之在批驳戴法兴的“驳议”中说:“至若立圆(球体)旧误,张衡述而弗改,⋯⋯此则算氏之剧疵也⋯⋯臣昔以暇日,撰正众谬”,可见这也是祖冲之早年的工作。然而在 7 世纪,在唐代李淳风为《九章算术》所写的注文中,却把它作为“祖■开立圆术”加以引述,因而也可以认为这是一项祖氏父子共同的研究结果。在中国古代,例如在《九章算术》中,是按外切圆柱体与球体体积之比等于正方形与其内切圆面积之比来进行球体体积计算的。刘徽指出了这一错误并正确地提出“牟合方盖”(垂直相交的二圆柱体的共同部分)与其内切球体体积之比,方才等于正方形与其内切圆面积之比。但是他却未能求出“牟合方盖”的体积。这一问题被祖氏父子解决了。祖氏父子的方法是:

首先取一立方体(高=半径 r),以左下角为心,r 为半径,分纵横二次各截立方体为圆柱体(如图 1)。如此,立方体将被分成四部分:两个圆柱体的共同部分(即“牟合方盖”的 1/8,祖氏父子称之为“内棋”,如图 2), 以及其余的三部分(“外三棋”,如图 3,4,5)。其次为算出“内棋”体积,他们先算出“外三棋”体积。方法是:将内、外棋再合成一个立方, 在高为 h 处作一平行于底的平面(如图 6)。如设“外三棋”的横截面面积为 S,则

S=r2-(r2-h2)=h2。

再取一个高与底方每边长度均为 r 的方锥,倒立之,则易算得这个■ 方锥在高为 h 处的横截面积亦为 h2。

再次,“外三棋”和方锥在等高处的截面积总是相等,祖氏父子说“叠棋成立积,缘幂势既同则积不容异”,这两个立体体积不容不等。于是算得“外三棋”体积与一个方锥体体积相等,即等于 1/3 立方体,从而算得“牟合方盖”体积为 2/3 立方体。

最后再应用刘徽的成果:

球体积:“牟合方盖”体积=圆面积:外切方面积从而求得球体积的正确公式:

球体积 =

πr 2

(2r) 2

  • 2 (2r) 3 =

3

4 πr 3

4

在这里,祖氏父子应用了“缘幂势既同则积不容异”的原理,这一原理和意大利数学家 B.卡瓦列里(Cavalieri,1598—1647)所提出的“卡瓦列里公理”的意义是相同的。按道理,应该将“卡瓦列里公理”改称之为“祖氏公理”。

在谈到祖冲之在数学方面的成就时,我们还应提到那部失传已久的《缀术》。

《隋书·律历志》在记述了祖冲之在圆周率方面的成就之后说:“(祖冲之)⋯⋯又设开差幂、开差立,兼以正员(按:应为“负”)参之,指要精

密,算氏之最者也。所著之书称为《缀术》,学官莫能究其深奥,是故废而不理。”唐代王孝通在其所著《缉古算经》的“自序”中说“祖■之《缀术》(在古代史料中,多有将《缀术》记为祖■所撰者)时人谓之精妙,曾不觉方邑进行之术,全错不通,刍甍、方亭之问,于理未尽”。根据这二条资料,可知《缀术》的内容有“开差幂、开差立”、有“方邑进行之术”、有“刍甍、方亭之问”。这些问题,据研究推断,可能是一些有关二、三次方程的解法,“兼以正负参之”也可能是指其中的系数可正可负。假如这种推断是对的,那么可以说这些成果成为后世宋元时期中国数学家高次方程解法的先声。

唐显庆元年(公元 656 年)国子监添设算学馆,规定《缀术》是必读书籍之一,学习期限为四年,是时限最长的一种。《缀术》还曾流传至朝鲜和日本,在朝鲜、日本古代教育制度、书目等资料中,都曾提到《缀术》。

《宋史·楚衍传》中说“楚衍⋯⋯于《九章》、《缉古》、《缀术》、

《海岛》诸算经尤得其妙。⋯⋯天圣( 1023— 1031)初造新历”,可见宋初时期《缀术》或者尚未失传。

祖冲之在天文历法方面的成就,大都包含在他所编制的大明历和为大明历所写的“驳议”之中。

按祖冲之的自述,大明历“改易之意有二,设法之情有三”。所谓“改易”,是指闰周的改革和在历法计算中考虑岁差的影响;所谓“设法”则都是和上元积年的推算有关系。

中国古代的天文学家开始时认为:太阳在黄道上,从冬至点开始,经过一个回归年的运行又回到原来的冬至点,即开始时认为冬至点是固定不变的。但经过长时期的观察,逐渐认识到太阳回不到原来的冬至点,也就是说冬至点每年都要向后(即向西)移动。据现代的观测,冬至点大约每年沿黄道后移 50.2″,换算成赤经度数则为大约 78 年后移 1°(如按古

代以365 1 度为1周年,则为约77年后移1度)。这就是岁差现象,它是由

4

太阳、月亮和其他行星对地球赤道突出部分的引力使地球自转轴产生进动所引起的。

中国古代历法对冬至十分重视,因此对冬至点所处恒星间的位置的观测也十分注意。入汉以后的诸家历法逐渐发现冬至点逐年的变化并载有冬至点的位置。魏晋以后,观测日趋细密,对岁差现象的探讨也前进了一大步。晋代天文学家虞喜“使天为天,岁为岁,乃立差以追其变,使五十年退一度”(唐代一行《大衍历·议》),是虞喜首先正式指出岁差现象并给出 50 年 1 度的岁差数据。其后姜岌、何承天虽然也都给出了各自的数值, 但首先把岁差的影响考虑到历法计算之中的,乃是祖冲之。

祖冲之给出的赤经岁差数值为 45 年 11 个月退行 1 度。大明历中的回

归年日数为365 9589

39491

= 14423804 ,大明历中的“周天”为14424644,以

39491

39491 除之再与回归年日数相比,可知祖冲之在历法计算中使用的岁差数

860

值为 39491

度,经核算(

860

39491

×45 11 = 0.99993≈1),这与45年11个

12

月退行 1 度极为接近。

祖冲之大明历中第二项重大改革是关于闰周的改革。早在公元前 500

年左右,中国古代天文学家便采用了 19 年 7 闰(即在 19 年里放置 7 个闰月) 的闰周。这虽然可以把回归年和朔望月日数之间产生的关系调和得比较好,但闰数仍嫌大了一些。尽管东汉末年以来的天文观测日趋精密,但天文学家们却总是墨守着这一置闰周期,没有进行改进。第一个冲破这一陈旧闰周的是南北朝时期北凉的赵■,他提出了 600 年间置入 221 个闰月的新闰周。但南朝何承天在编制元嘉历时,却未能接受改革闰周的新思想。而祖冲之在其所编大明历中却大胆地采用了改革的思想,提出 391 年置入

144 个闰月的新闰周。直到唐代初年中国天文学家不再讨论闰周时止,祖冲之提出的闰周,在诸家历法中要算是最好的。

祖冲之大明历所给出的回归年长度为 365.24281481 日,直到宋代杨忠

辅所编统天历(回归年长度为 365.2425 日)时止,在历代诸家历法中,这一数值也是最好的。由于回归年日数和闰周数据都比较精密,故大明历朔望月日数——29.5305915 日也是比较精密的,误差仅为 0.0000056 日,每月约长 0.5 秒。直到宋代明天历、奉元历、纪元历等等历法中,才有更好的朔望月数据出现。

大明历三项新的“设法”都和“上元积年”的计算有关。在中国古代, 天文学家为了计算上的方便,大都先推算出一个若干年前的一个理想历元,使各种天象周期都处于初始状态。这样,历法中的其他计算均可依此顺利算出。这个理想中的历元被称为“上元”,由“上元”到编制历法时止的累计年数被称为“上元积年”。例如汉初时的太初历便提出以“元封七年十一月甲子日朔旦冬至”为上元,后来的历法还提出把五星也包括进去,即“五星联珠”(五星处在同一初始状态),“日月合璧”(日月也同在此方位上)。据大明历正文记载,祖冲之进一步提出:历元必须是“上元之岁,岁在甲子,天正甲子朔夜半冬至,日月五星聚于虚度之初,阴阳迟疾, 并自此始”,即要求“上元”之年必须是甲子年,此年十一月初一日亦须是甲子日,此日夜半需恰好为合朔和冬至节气,而且需要此时的日月五星 (包括月亮又刚好处在近地点和黄白道的一个交点)都聚集在虚宿初度。

由于日月五星以及其他若干天文周期都是极复杂的小数(中国古代则是分数),而且天文观测的精确程度又受到时代的局限,所以这种上元积年的推算对历法的编制和对天文学发展可能弊大于利,但它却具有较大的数学方面的意义。因为,当各种天文周期测定和算定,又经观测定出日月五星等观测时所处位置之后,计算上元积年问题是一个求解联立一次同余式问题。在这方面中国古代天文学家和数学家取得了较大的成就(“孙子问题”、“大衍求一术”)。

关于冬至时刻的推算,祖冲之首创了巧妙的测量与计算方法,并取得相当好的测算结果,这是大明历的又一项成就。

祖冲之在大明历中还给出交点月的日数 27.2122304(717777/26377 日),这是中国历法史上的第一个交点月日数数据。与现代的理论数值(27.2122152 日)相比,仅差 0.0000152 日,每交点月误差为 1.3 秒。大明历给出的五星周期数据也比较好:

木星: 398.9030918 日(15753082/39491 日) 火星: 780.0307918 日(30804196/39491 日) 土星:378.0697881 日(14930354/39491 日)

金星: 583.9308703 日(23060014/39491 日) 水星: 115.8796688 日(4576204/39491 日)

除天文历法和数学之外,祖冲之还制造过各种奇巧的机械,同时他还通晓音律,可以称得上是一位博才多艺的科学家。

祖冲之曾造过指南车并获得成功。在中国古代指南车的名称由来已久,但其机制构造则未见流传。三国时代的马钧曾造指南车,至晋再次亡失。东晋末年刘裕攻长安,得姚秦许多器物,其中也有指南车,但“机数不精,虽曰指南,多不审正,回曲步骤,犹须人功正之”。南朝刘宋■明年间(公元 477—479 年)肃道成辅政,“使冲之追修古法。冲之改造铜机, 圆转不穷而司方如一,马钧以来未有也。”当时还有一位来自北方的工匠名为索驭■,自称也能造指南车。肃道成“使与冲之各造,使于乐游苑共试校”,而索驭■所造“颇有差僻,乃毁焚之”。

祖冲之还“以诸葛亮有木牛流马,乃造一器,不因风水,施机自运, 不劳人力”,但这是一种什么机具,因缺乏资料,使人很难想象。祖冲之“又造千里船,于新亭江试之,日行百余里”,这显然是一种快船。他又“于乐游苑内造水碓磨,武帝(萧赜,公元 483—493 年在位)亲自临视”。

祖冲之还曾制造过“欹器”。这种器具用来盛水“中则正,满则覆”, 古人常放置在身边以自警,“晋时杜预有巧思,造欹器三改不成”。南齐永明年间(萧赜)竟陵王萧子良“好古,冲之造欹器献之”。关于音律,有的史料记载说“冲之解锺律博塞当时独绝,莫能对者”(以上各段中引文均见《南齐书》、《南史》中的祖冲之传)。