中国历史上最杰出的父子数学家:祖冲之与祖暅之
祖冲之与祖暅之是中国历史上最杰出的数学家父子。祖冲之所撰《缀术》是唐以前最艰深的数学经典,后因深奥而未得传;祖冲之把圆周率精确到8位有效数字,在当时世界上最为先进,这一纪录保持了近千年;祖暅之运用祖暅之原理求出了“牟合方盖”的体积,巧妙证得球的体积公式,这一成就比意大利数学家卡瓦列利至少要早1100年。此外,祖冲之与祖暅之还热衷于天文学,祖冲之创制的《大明历》最早将岁差引进历法,祖暅之修订了《大明历》,并先后三次上书,建议朝廷颁布实施《大明历》,最终使父亲的遗愿得以实现。
一、祖冲之与祖暅之的生平
祖冲之(429-500),字文远,祖籍范阳郡遒县(今河北涞水),生于南朝宋都建康(今江苏南京)。曾祖父台之适晋乱,举家南迁,曾祖父、祖父、父亲都先后仕晋和刘宋。祖父祖昌官至主管土木工程的大匠卿。祖家家学深厚,长于历算,冲之幼年聪慧,有机思,受到良好的传统文化教育,尤其是历算方面的教育,青年时代就成为有影响的学者。宋孝武帝“使直华林学省”,协助主持科研机关。后来他又任南徐州(今江苏镇江)迎从事,公府参军。宋大明六年(462),他经多年努力,完成《大明历》。孝武帝令“善历者难之,不能屈”。恰遇孝武帝驾崩去世,未能颁行。祖冲之出为娄县(今江苏昆山)县令,后又为谒者仆射。祖冲之在数学领域取得开拓性成就,注《九章》,造《缀术》数十篇,将圆周率的计算精确到8位有效数字。祖冲之又是机械制造专家。宋武帝在关中得到姚兴的指南车,只有外壳,内部机械已损坏,每当行走时,需人在内转之。宋升明二年(478),祖冲之改造铜机,圆转不穷,指南的方向始终如一,时人誉为“马均以来未有也”。入齐,任长水校尉,作《安边论》,主张开荒屯田,以广农殖。祖冲之还造过千里船,日行百余里,造过水碓磨,及木牛流马等运载工具。他解音律,善博戏,当世鲜有对手。他还著《易》《老》《庄》义,释《论语》《孝经》,撰《述异记》。
祖暅之(456—536),一作祖暅,字景烁,祖冲之之子。少传家业,究极精微,善于思考。当其诣微之时,雷霆不能入。有一次,他走路思考问题,一头撞到仆射徐勉身上。徐勉唤他,才恍然大悟,传为佳话。梁天监初,修订乃父《大明历》,九年(510)正式颁行,后一直施行至陈亡(589)。南朝梁普通六年(525),祖暅之被北魏俘获,由于数学家信都芳的推荐,受到安丰王元延明的礼遇。三人经常在一起研讨数学问题。后祖暅之南返,“留法授芳”,信都芳之数学水平大为提高。祖暅之提出祖暅之原理,从而求出了刘徽设计的“牟合方盖”的体积,彻底解决了球体体积计算问题。
二、《缀述》与《缀术》
关于《缀术》的书名、卷数、作者,史籍记载互异。《南齐书》《南史》称祖冲之“造《缀述》数十篇”。《隋书·律历志》云祖冲之“所著之书名为《缀术》”,未云卷数。《隋书·经籍志》《日本国见在书目》均作《缀术》六卷,而无著者姓名。《通志》作《缀术》六卷,祖冲之撰。宋李籍《周髀算经音义》与《旧唐书·经籍志》《新唐书·艺文志》称《缀术》五卷,祖冲之撰。唐王孝通《上缉古算经表》称祖暅之《缀术》,未云卷数。宋沈括《梦溪笔谈》卷一称“北齐祖亘有《缀术》二卷”。上面这些资料表明,南北朝时期只有祖冲之造《缀述》的记载,而无《缀术》及祖暅之作《缀术》的说法。到隋、唐时期,出现《缀术》之名,为五卷或六卷,大多数仍说祖冲之著;同时,也有个别记载祖暅之作《缀术》。因此,一般认为《缀述》与《缀术》是同一部著作。在流传过程中,著作名称改变是时有发生的。《缀术》中有祖暅之的增补,故后人又有祖暅之《缀术》之说。
《缀术》与祖冲之《九章注》的关系,也是人们争论不休的问题。《南齐书》《南史》云祖冲之“注《九章》,造《缀述》数十篇”,令人理解上存在歧义。祖冲之注过《九章算术》是无疑的。《日本国见在书目》既有《九章》九卷(祖中注),《九章术义》九卷(祖中注),又有《缀术》。“祖中”自然是祖冲之之误。但是,也可能其《缀术》就是《九章注》。钱宝琮主编的《中国数学史》持后一种看法:祖冲之写成了数十篇专题论文,附缀于刘徽注的后面,叫它“缀述”,也就是《九章注》。目前难以对这两种说法作出中肯的评判。
《缀术》的内容已不可详考。王孝通《上缉古算经表》指责“祖暅之之《缀术》曾不觉方邑进行之术,全错不通;刍甍、方亭之问,于理未尽”,可见方邑测望问题及体积问题是其中重要内容。《隋书·律历志》引祖冲之圆周率的成就和开差幂、开差立的内容,李淳风等《九章算术注释》引祖暅之开立圆术,都应该是《缀术》的内容。
《缀术》失传的时间已不可考。《宋史·楚衍传》载楚衍通《缀术》。这常被人们作为《缀术》在宋初仍存世的证据。可是北宋元丰七年(1084),秘书省刊刻十部算经时,已找不到《缀术》。博学多才的沈括将“南齐”误为“北齐”,将“祖暅之”误为“祖亘”,可见他亦未见到过此书。如果楚衍精通《缀术》,那么《缀术》是在楚衍之后不到半个世纪内亡佚的。一般说来,一部书亡佚,或因为战乱,或因为水火等天灾,或因为艰深而无人问津。但是,楚衍和他的弟子贾宪、朱吉都是数学大家,当时数学在度过了唐朝的衰败后已经复兴,而当时北宋没有大的动乱,11世纪上半叶还存在的重要著作,不会在下半叶便无踪影。故我们认为,《隋书·律历志》提供了《缀术》失传的原因,这就是“学官莫能究其深奥,是故废而不理”。唐初数学尽管有王孝通的三次方程解法,李淳风等整理十部算经,国子监设算学馆等创设,但数学水平远远低于魏晋南北朝。李淳风等《九章算术注释》,不仅没有什么创造,反而几次指责刘徽,而所有这些,错误的不是刘徽,而恰恰是李淳风等,其数学水平之差跃然纸上;[1]甚至连圆内接正六边形的周长与圆径之比为三比一都说“难晓”,需举实物为喻。《缀术》在算学馆需修四年,可见相当艰深。因此,“学官莫能究其深奥”是可信的。王孝通对《缀术》的指责为此提供了旁证。王孝通在历法上是守旧派。他著《缉古算经》,自诩千金不能易一字,缺乏一个科学工作者应有的谦虚和实事求是作风。他对《缀术》的指责说明他与算学馆的学官一样,不能理解《缀术》艰深的内容。这很像明朝数学大家顾应祥对李冶《测圆海镜》的指责。总之,《缀术》是唐朝学官看不懂被废而不理,完全湮没大约在安史之乱之后。[2]
三、《大明历》与《驳议》
刘宋何承天制定的《元嘉历》“比古十一家为密”,是一部优秀历法。但祖冲之经过长期观测、研究与计算,以为尚疏。于是在《大明历》中提出许多革新,所谓“改易之意有二,设法之情有三”。改易之意,其一是改革闰周,将传统的19年7闰改为391年144闰。直到唐初历法不再讨论闰周为止,这是最准确的数值。其二是首次将岁差引入历法。岁差是东晋虞喜发现的,何承天也推算了岁差值,但未用于历法。祖冲之在《大明历》中使用的岁差数值为45年11月退行1度。此外,《大明历》的回归年长度为365.24281481日,朔望月日数为29.5305915,后者的误差每月仅长了0.5秒。直到宋代历法的精度才超过这两个数值。
《大明历》的三项新设法都与上元积年的计算有关。中国古代制定历法时,大都要先推算出若干年前的一个理想的历元,使各种天象周期都处于初始状态。这个理想的历元被称作“上元”。从上元到编定历法那年的年数被称作“上元积年”。祖冲之在《大明历》中提出:“上元之岁,岁在甲子,天正甲子朔夜半冬至,日月五星,聚于虚度之初,阴阳迟疾,并自此始。”这就要求“上元”之年必须是甲子年,该年十一月初一必须是甲子日,其夜半又恰好是合朔和冬至节气,并且此时日月五星恰好都聚集于虚宿初度。要推算出这个理想的上元,需要解一次同余方程组问题。《孙子算经》已有这种解法,可以认为,祖冲之在解一次同余方程组方面的造诣是相当高的,可惜我们无法深究其具体成就。祖冲之还创造了测算与计算冬至时刻的方法。他给出交点月为27.2122304日,这是中国历史上第一个交点月日数,比现代的理论数值仅多0.0000152日。此外,他给出的五星周期的数据也比较精确。[3]
祖冲之将《大明历》呈上朝廷,宋世祖刘骏“下之有司,使内外博议”。朝廷官员中通历算者极少,“竟无异同之辩”。唯世祖宠臣戴法兴竭力反对,指责祖冲之“诬天背经”。祖冲之毫不畏惧,据理驳斥,写出著名的《驳议》,即《大明历议》。他针对戴法兴所说天象“非凡夫所测”,指出:“迟疾之率,非出神怪,有形可检,有数可推。刘贾能述,则可累功以求密矣。”针对戴法兴说的“古人制章”“万世不易”,指出:“曲辩碎说,类多浮诡,甘石之书,互为矛楯。今以一句之经,诬一字之谬,坚执偏论,以罔正理,此愚情之所未厌也。”又如“至若立圆旧误,张衡述而弗改;汉时斛铭,刘歆诡谬其数;此则算氏之剧疵也。”因此,不应“虚推古人”。前代的历法当时或许是准确的,但日久则疏。祖冲之以元嘉、大明四次月蚀为例说:“凡此四蚀,皆与臣法符同,纤豪不爽。而法兴所据,顿差十度,违冲移宿,显然易睹。故知天数渐差,则当式遵以为典,事验昭晰,岂得信古而疑今。”他坚定地表示:“愿闻显据,以核理实”“浮辞虚贬,窃非所惧”。《驳议》是科学史上一篇重要文献,既反映了祖冲之实事求是的科学学风,又显示了他不畏权贵,敢于坚持真理,敢于斗争的大无畏精神。
《宋书·律历志》说,在祖冲之与戴法兴的辩论中,朝臣们畏惧戴法兴的权势,皆附和戴法兴,“唯中书舍人巢尚之是冲之之术,执据宜用”[4]。大明八年(464),世祖决定采用冲之新历,明年改元。未及颁行,世祖去世,改历之事被搁置下来。直到梁武帝天监九年(510),在祖暅之的再三请求下,经过与实际天象校验后,《大明历》才被予以正式颁行,这时距祖冲之去世已10年,距《大明历》编成已近50年。
四、祖率
《隋书·律历志》在回顾了人们求圆周率值的过程之后,谈到了祖冲之的贡献:
宋末,南徐州从事史祖冲之更开圆率密法,以圆径一亿为一丈,圆周盈数三丈一尺四寸一分五厘九毫二秒七忽,朒数三丈一尺四寸一分五厘九毫二秒六忽,正数在盈、朒二限之间。密率:圆径一百一十三,圆周三百五十五。约率:圆径七,周二十二。
此相当于3.1415926<π<3.1415927,约率:π=,密率:π=。
祖冲之将圆周率精确到8位有效数字,这个精确度直到1247年才被中亚数学家阿尔·卡西所超过。而密率则是分母小于16604的接近真值的最佳分数,它于1573年才被德国数学家奥托重新发现。后来,荷兰工程师安托尼兹也得到同样的结果。后者是用阿基米德的方法求出<π<,然后取二者分子、分母的平均值得出的。[5]西方将称为安托尼兹率。日本学者三上义夫建议将称为祖率,是有道理的。
祖冲之是怎样求出上述值的,史书没有记载。一般认为,他是利用刘徽的计算圆周率的程序求得π的8位有效数字的。钱宝琮《中国数学史》的推测是:直径为1丈的圆的内接正6×210边形的面积S10=3.14159251丈2,正6×211边形的面积S11=3.14159261丈2,于是S11-S10=3.14159261丈2-3.14159251丈2=0.0000001丈2。由于S11<S<S10+2(S11-S10),那么得到圆面积的盈、朒二限:3.14159261丈2<S<3.14159271丈2。
利用《九章算术》的圆面积公式S=Lr,便可求出圆周长的盈朒二限:3.14159261丈<L<3.14159271丈 。这正是祖冲之的结果。
约率实际上是何承天求出的。据《隋书·天文志上》,何承天说,周天365度,南北二极相去116度强,即天径。天径与天周之比与非常接近。
至于密率是怎么求得的,数学史界有各种猜测。有的学者认为是通过繁分数或渐近分数求得的。但是,它不符合中国古代的数学传统。我们知道,《九章筭术》与刘徽时代很不愿意使用繁分数(即重有分),这种传统到祖冲之时代看不出有改变的迹象。钱宝琮《中国数学史》认为祖冲之是用何承天的调日法求得密率的。已知<π<,以作为圆周的强率,作为弱率。将强、弱二率的分子、分母分别相加,得到=<π。由此类推,便得到=。祖冲之将其作为圆周密率。
祖冲之与何承天都是南朝历算大家,祖冲之继承何承天的方法颇多。我们认为,钱宝琮的推测是可信的。
五、祖暅之原理
中国古代处理圆柱、圆锥、圆亭以及球等圆体体积,主要借助于截面积原理,亦即祖暅之原理。截面积原理在《九章算术》时代就有其雏形,刘徽实际上已认识到其实质,祖暅之以简洁的语言概括了这一原理。
(一)《九章算术》的底面积原理
《九章算术》和秦汉数学简牍给出了若干圆体的体积公式,除了使用“周三径一”外,都是正确的。实际上这些圆体体积公式是通过比较圆体与相应的方体的底面积得到的。很明显,在《九章算术》中,方堢壔与圆堢壔,方锥与圆锥,方亭与圆亭都是成对的出现,而且在术文的形式上,后者都是前者加一个系数,也就是以后者的底面周长构造前者形状的一个方体,比较其底面积,由前者推导后者。
(二)《九章算术》中错误的球体积公式
《九章算术》开立圆术给出了已知球体积V,求球直径的公式d=。也就是球体积公式:
V=d3 (1)
刘徽指出《九章算术》开立圆术所使用的球体积公式是错误的。他说:
为术者盖依周三径一之率。令圆幂居方幂四分之三,圆囷居立方亦四分之三。更令圆囷为方率十二,为丸率九,丸居圆囷又四分之三也。置四分自乘得十六,三分自乘得九,故丸居立方十六分之九也。故以十六乘积,九而一,得立方之积。丸径与立方等,故开立方而除,得径也。
圆囷就是圆堢壔,即今之圆柱。设圆与其外切正方形的面积分别为S圆,S方,圆柱与其外切正方体的体积分别为V圆柱和V正方体。刘徽记录的《九章算术》的推导过程是:因为S圆∶S方=3∶4,故V圆柱∶V正方体=3∶4,而
V球∶V圆柱=3∶4 (2)
由于以d为边长的正方体体积是V正方体=d3,故有(1)式。
刘徽指出:“然此意非也。”造成错误的关键在于推导中使用了错误的(2)式。而(2)式错误的原因是只考虑了球与圆柱的一个截面,即大圆和大方的面积之比,如图1(1),而没有考虑两者任意截面的面积之比。实际上,只要不是球与圆柱的大圆和大方,其他任意截面上,(2)式都不成立,如图1(2)所示。
(三)刘徽的截面积原理
刘徽在求由羡除分割出来的大鼈腝的体积时,提出:“推此上连无成不方,故方锥与阳马同实。” “成”,层也。《周礼·秋官司寇》:“将合诸侯,则令为坛三成。”郑玄注曰:“三成,三重也。”刘徽在这里使用了一个重要原理:同底等高的方锥与阳马没有一层不是相等的方形,所以它们的体积才相等,如图2。这是十分明确的截面积原理,并且把立体看成无数层平面一层层叠积而成的,类似于卡瓦列利的不可分量。
因此,刘徽常把立体体积称作积分,如圆亭术注说“三方亭之积分”,委粟术注说“三方锥之积分”。这里的积分当然不是积分学中的积分,但其本质是一致的。实际上,点与线,线与面,都有类似于平面与立体的关系。刘徽认为,从正六边形开始割圆,终究会达到“不可割”的地步,实际上与圆周合体的正多边形的每边长已退化成点。也就是说,圆周的这条线是由无数个点积累而成的。所以,刘徽也称线为“积分”,如委粟注中说“径之积分”。
正因为有这种认识,刘徽才能指出《九章算术》使用的球体积公式是错误的,才能设计出牟合方盖,指出解决球体积问题的正确途径。
总之,刘徽的大量论述表明,他已经完全把握了截面积原理的本质,并且,刘徽不仅讨论两者相等的情形,而且也讨论了两者呈率关系的情形。只是刘徽的这些论述分散在不同术文的注中,没有以简洁的语言将其概括出来。
(四)祖暅之原理
祖暅之继承了刘徽关于截面积原理的深刻认识,以相当简洁的文字概括了这一原理。《九章算术》开立圆术李淳风等注释所引祖暅之的开立圆术中说:“夫叠棊成立积,缘幂势既同,则积不容异。”就是说,两立体,若它们任意等高处的截面积相等,则它们的体积不能不相等。这就是祖暅之原理,它与卡瓦列利原理是等价的。
在刘徽设计的牟合方盖中,祖暅之不仅考虑两个立体,而且考虑两组立体,就是说,两组立体,若它们分别在任意等高处的截面积之和相等,则它们的体积相等。
六、牟合方盖与球体积
(一)刘徽设计的牟合方盖
刘徽为解决球体积,设计了牟合方盖。他说:
取立方棊八枚,皆令立方一寸,积之为立方二寸。规之为圆囷,径二寸,高二寸。又复横规之,则其形有似牟合方盖矣。八棊皆似阳马,圆然也。按:合盖者,方率也;丸居其中,即圆率也。推此言之,谓夫圆囷为方率,岂不阙哉?
刘徽取两个相等的圆柱体使之正交,其公共部分称作牟合方盖,如图3。设牟合方盖的体积为V方盖,刘徽指出:
V球∶V方盖=π∶4 (3)
由于V方盖<V圆柱是不言而喻的,因而证明了V球∶V圆柱=π∶4是错误的。刘徽认为,只要求出牟合方盖的体积,便可求出球的体积公式。
刘徽经过努力未能求出牟合方盖的体积,不强为之说,坦诚地记下了自己的困惑:
观立方之内,合盖之外,虽衰杀有渐,而多少不掩。判合总结,方圆相缠,浓纤诡互,不可等正。欲陋形措意,惧失正理。敢不阙疑,以俟能言者。
显示了一位真正科学家实事求是的高风亮节。200年后的祖冲之父子就是刘徽期待的“能言者”,他们彻底解决了这个问题。
(二)祖暅之关于牟合方盖的求积方法
祖暅之利用祖暅之原理求出了牟合方盖的体积,解决了球体积问题,完成了刘徽的遗志。钱宝琮根据祖冲之《驳议》说“立圆旧误,张衡述而弗改”,在《中国数学史》中说“《缀述》中很可能有一篇讨论牟合方盖和立圆体积的计算方法”,换言之,球体积的解决是祖冲之、祖暅之父子的共同贡献。李淳风等注释引祖暅之开立圆术说:
祖暅之之开立圆术曰:以二乘积,开立方除之,即立圆径。其意何也?取立方棊一枚,令立枢于左后之下隅,从规去其右上之廉;又合而横规之,去其前上之廉。于是立方之棊分而为四:规内棊一,谓之内棊;规外棊三,谓之外棊。规更合四棊,复横断之。以勾股言之,令余高为勾,内棊断上方为股,本方之数,其弦也。勾股之法:以勾幂减弦幂,则余为股幂。若令余高自乘,减本方之幂,余即内棊断上方之幂也。本方之幂即内外四棊之断上幂。然则余高自乘,即外三棊之断上幂矣。不问高卑,势皆然也。然固有所归同而涂殊者尔。而乃控远以演类,借况以析微。按:阳马方高数参等者,倒而立之,横截去上,则高自乘与断上幂数亦等焉。夫叠棊成立积,缘幂势既同,则积不容异。由此观之,规之外三棊旁蹙为一,即一阳马也。三分立方,则阳马居一,内棊居二可知矣。合八小方成一大方,合八内棊成一合盖。内棊居小方三分之二,则合盖居立方亦三分之二,较然验矣。置三分之二,以圆幂率三乘之,如方幂率四而一,约而定之,以为丸率。故曰丸居立方二分之一也。
祖暅之考虑立方的八分之一。他着言于正方体中在切割出牟合方盖之后剩余的部分。记正方体的为ABCDEFGO,如图4(1)所示。其内切牟合方盖的为AEFGO,称为内棊,如图4(2)所示。正方体与牟合方盖之间的部分在切割出牟合方盖时被切割成三部分:ADEF,ABGF,ABCDF,称为外三棊,如图4(3)(4)(5)所示。用一平面在高OA上任一点N处横截ABCDEFGO,得截面IJKN。设ON=a,称为余高,则其截面IJKN的面积为球半径之平方r2。内棊的截面为正方形NMHL,设其面积为b2,那么,显然,外三棊的截面,即长方形LHQK,MIPH,和正方形HPJQ的面积之和应为r2-b2。而由勾股形ONM,r2-b2=a2,即余高自乘。而a2恰恰等于一个长、宽、高相等的阳马距顶点为a处的横截面积,如图4(6)所示。由祖暅之原理,外三棊的体积之和与其长、宽、高为球半径的阳马的体积相等,即等于小立方的。因此,内棊的体积是小立方的。这就证明了牟合方盖的体积是其外切正方体体积的。若取π=3,则球体积为:V球=×D3=D3。从而最终解决了球体积问题。
祖暅之的高明之处在于,他将祖暅之原理应用于几块立体的截面积之和与另一立体的截面积的比较上;而且,这几块立体的截面积也没有保持同一形状,而是逐渐变化的;更重要的,各截面积的变化率也不是如《九章算术》和刘徽所论者都是线性,而是非线性的。这种应用的拓展表明祖暅之对此原理的认识比刘徽进了一大步。
《隋书》还记载祖冲之开差幂、开差立,兼以正负参之,很可能是含有负数的2次、3次方程解法。
(作者简介:郭书春,中国科学院自然科学史研究所研究员,国际科学史研究院通讯院士,曾任中国科学院自然科学史研究所党委委员、工会主席、学术委员会副主任兼数学史天文学史研究室主任、全国数学史学会理事长。)
栏目编辑:王魁诗
参考文献
[1] 郭书春主编.中国科学技术史 ·数学卷 [M] .北京 :科学出版社,2010.
[2] 郭书春.是《缀术》 “全错不通”,还是王孝通“莫能究其深奥” ? [M]/郭书春数学史自选集 :下册.济南 : 山东科学技术出版社,2018.
[3] 杜石然 .中国古代科学家传记(上册) :祖冲之[M].北京 :科学出版社 ,1992. [4] 沈约.宋书 [M].北京 :中华书局,1974.
[5] 梁宗巨.数学历史典故[M] .沈阳 :辽宁教育出版社,1992.
- 上一篇:郑和下西洋与中国古代航海技术的进步
- 下一篇:文天祥过淮河考论