众所周知,祖冲之(公元429—500)是一位古代大数学家,科技史界对他非常重视自不用说,甚至文史界对他也会有特别的关注。例如在1933年北京大学的入学语文试卷中,文史大家陈寅恪就以“祖冲之”为答案,拟出一道以“孙行者”为上联求对下联的试题。有趣的是,有些学生以当时的北大校长“胡适之”作答,也获得了阅卷者的首肯。
祖冲之所撰的数学著作名为《缀术》,《隋书》说《缀术》共有6卷,“学官莫能究其深奥,是故废而不理”。唐朝时《缀术》只有5卷流传,从一个侧面证明《隋书》所说不错,《缀术》有些内容连其他学者都读不懂,所以在唐朝就已经有1卷失传。从记载看,《缀术》大约在唐朝末期完全失传,因而祖冲之到底有多少了不起的数学成就,后人再也无从知晓。但据《隋书·律历志》记载,我们确知祖冲之通过他的计算得出了圆周率在3.1415926与3.1415927之间的结果。这个结果是古代圆周率计算中最杰出的成绩,仅凭这个结果,祖冲之就有资格进入伟大的古代数学家的名单。可惜的是,我们已经不可能确切地知道祖冲之得到这个结果的数学方法。
对于祖冲之如何得到上述结果这个问题,现代数学史专家已经作出了很多种推测。但是,我觉得我所见到的几种推测都不是很合理,因此我将在本文中给出自己的推测。
首先,刘徽所注的《九章算术》是其后所有中国古代数学家最重要的参考著作,因此我们可以肯定祖冲之计算圆周率时必然会参考刘徽的“割圆术”。刘徽利用圆的内接正6·2″边形的边长和面积来估算圆周率的近似值,在计算到圆内接正192边形时,通过插值估计,得到圆周率的近似值为3.1416。然后,刘徽又用圆内接正3072边形的面积验算,得到相同的结果。
很容易想到,一种改进的做法是在考虑圆的内接正6·2″边形的同时,也考虑其外切正6·2″边形。计算可知,同时应用内接与外切正多边形,在计算到正3072边形时,可以得知圆周率值介于3.1415921与3.1415937之间。简单分析可以发现,同时应用圆的内接与外切正6·2″边形的面积估算圆周率的近似值,结果并不比用边长精确。由于以上所列的估计值与祖冲之所得结果相比还有一些差距,我们因此推测:祖冲之并不仅仅是用正多边形的边长或面积来计算圆周率的值。
在使用算筹进行运算的时代,极为繁复的计算是非常非常困难的。刘徽以圆内接正192边形为圆周率计算的主要依据,最后计算到圆内接正3072边形,而祖冲之又肯定深受刘徽的影响,因此我们假定:祖冲之很可能用圆内接正192边形或者384边形做圆周率估算,最多计算到正3072边形。那么,祖冲之应该用什么样的方法,才可以在这个计算范围内得到他那个了不起的结果呢?
刘徽用圆内接正192边形的边长来估计圆周率时,使用了一个理论上错误的比例插值估计,但这个插值结果的精确度与使用内接正3072边形面积估计的圆周率相当接近。刘徽指出的这个事实,肯定给予祖冲之很大的启发。因此,我们猜测祖冲之肯定会寻找更好的插值算法。我们推测,祖冲之的插值方法的关键在于“缀”字!祖冲之所著的书名为《缀术》,其中“缀”字有“连缀”、“补缀”之意。祖冲之以“缀”为书名,可能是指其书对《九章算术》的“补缀”之功,对古代数学知识片断的“连缀”之力。但是,祖冲之的数学成就中只有圆周率计算被《隋书》所记载,可见圆周率计算在《缀术》中的重要地位。因此,书名《缀术》很可能也反映了祖氏计算圆周率的方法。我们因此推测,祖冲之把圆的内接与外切正多边形相互损益、补缀,用这个补缀的结果来估算圆周率。
现在的问题是:祖冲之可能怎么使用圆的内接与外切正多边形来补缀出圆面积?从圆弧的“凸”形容易知道,以圆的内接与外切正多边形面积的平均值作圆面积的近似,所得的结果会略小于圆面积的真值。因此,祖冲之可能采用非平均的、偏重于外切正多边形的补缀方式进行计算。具体地说,我们认为祖冲之可能使用1/3内接正多边形面积加上2/3外切正多边形面积来计算圆面积的近似值。
为什么是1/3和2/3,而不是其他(比如2/5和3/5)数值?我们没有任何过硬的依据。也许祖冲之有自己的推算和论证,也许只是因为1/3和2/3是最简单而偏重于外切正多边形的、非平均的补缀方式。值得指出的是,l/3和2/3在古代是2个很特殊的分数,它们拥有专门的名称,分别称为“少半”和“太半”。这2个分数的特殊性,有可能是祖冲之采用上述这种补缀方式的原因之一。
总之,祖冲之所著的《缀术》在隋唐时已经“学官莫能究其深奥”,“是故废而不理”,更加不幸的是《缀术》早已失传,因此对其算法我们只能猜测。然而,尽管证据不足,我们这里的推测是一种以刘徽的割圆术为基础的、算理与“缀”字的字义相契合的、并且采用古代数学中简单而特殊的分数的算法。因此,猜测祖冲之采取这种算法,是一个合情合理的推断。
无论猜中与否,下面我们就以这种补缀算法来计算圆周率。假设我们(或者祖冲之)从单位圆的内接正6边形出发,以上述内接及外切正6·2″边形的面积的补缀方法来估算单位圆面积。在左图中,我们画出单位圆与其内接及外切正6边形关系图的六分之一。
将这个算法用计算机编程进行计算,我们得到如表1结果。
从表1中可以发现,只要计算到正384边形,就可以得到圆周率约等于3.141592655。再比较计算正192边形及正768边形时所得的圆周率值,就不难断定圆周率应该在3.1415926与3.1415927之间。由此可见,无论祖冲之是不是采用这种算法,它都是一种能够快速得到圆周率高精度近似值的方法。
那么,读者也许会问:这种方法为什么能够很快得到圆周率的高精度数值?事实上,大学1年级所学的一元微积分就可以回答这个问题:应用三角函数的麦克劳林展开式,可以发现这种估计的误差是扇形圆心角的五阶无穷小,而这正是其结果能很快逼近圆周率的根本原因——由于具体内容涉及高等数学,我们就不详细介绍了。
从上面的计算可知,如果祖冲之用上述方法估算圆周率,则他计算到圆内接192边形或384边形时,就可以得到远比刘徽精确的圆周率估计!猜测虽然仅仅只是猜测,但无论我们是否猜中祖冲之的算法,本篇都是很有趣的:它不仅给出一个合情合理的猜测,而且提出了一种以刘徽割圆术为基础的、计算简单而又逼近速度极快的圆周率估算法。