论克拉维乌斯的二重双假设法求解公式的一致性
2019-11-19赵继伟
刘 迪,赵继伟
(西北大学 科学史高等研究院, 陕西 西安 710127)
双假设法最早记载于中国古典数学名著《算数书》和《九章算术》,后来成为中国古代数学家求解二元线性问题的标准算法。中世纪阿拉伯数学家对该方法做出了重要贡献,例如,9世纪库斯塔·伊本·卢卡(Qusta ibn luqa,C.820-912)首次给出双假设法的几何证明,阿布·卡米尔(Abu Kamil,C.850-C.930)著有《双假设法之书》(KitabalKhataayn)[1]。
对于求解多元线性方程组问题,中国古算中使用方程术(亦称消元法),而欧洲数学家走的是另一条路径。13世纪初,意大利数学家斐波那契(Fibonacci,C.1170-C.1250)在《计算之书》(LiberAbaci,1202)第13章中,运用多重双假设法求解了多元线性方程组[2-3],其后三百多年欧洲数学家沿用了他的方法。直至16世纪后期,德国数学家克拉维乌斯(Christopher Clavius,1538—1612)在《算术实践概要》(EpitomeArithmeticaePracticae,1583)第23章中讨论用双假设法求解三元线性方程组时[4],才首次对斐波那契的方法做出简化。其中他提出:在运用二重双假设法求出三元线性方程组的一个未知量之后,可以不必对其他两个未知量继续使用双假设法求解,而是可以通过将第一次求解过程中所产生的相应数据直接代入“求解公式”而得出结果;也就是说,他对3个未知量使用了一致的求解公式。
目前学者对双假设法的研究主要包括对其起源的探究[5-7],利用相似三角形推导双假设法求解公式[8-9],分析该方法与单假设法的区别与联系[10-11]及双假设法在非线性方程求解中的应用[12-15]等方面。《算法史》(AHistoryofAlgorithms,1999)[1]中对克拉维乌斯使用双假设法的一个例子给出了英文翻译(原文为拉丁语),并试图用现代行列式理论解释克拉维乌斯二重双假设法求解公式的一致性,但我们将指出其解释并不能令人满意。围绕克拉维乌斯双假设法求解公式的一致性,本文将讨论以下3个问题:
1)克拉维乌斯如何简化了双假设法的计算程序;
2)用空间解析几何知识解释双假设法求解公式一致性的数学原理;
3)提出克拉维乌斯发现求解公式一致性的一种可能思路。
1 克拉维乌斯的双假设法对斐波那契的简化
1.1 斐波那契与克拉维乌斯的双假设法的异同
在《计算之书》第13章中,对于二元线性方程组问题
斐波那契首先将x的假值x1代入其中一个方程,得到问题的假解(x1,y1);然后将其代入另一个方程,得到差值
e1=a2x1+b2y1-d2;
同理可得假解(x2,y2)及其差值
e2=a2x2+b2y2-d2;
接下来就可以利用双假设法的求解公式
得到x的真值;最后将x0直接代入任一个方程即得y的真值y0。
对三元线性方程组问题,斐波那契针对两种不同类型的问题给出了不同的解法。第一类问题属于特殊问题,其题设条件比较简单,亦即如果求出了一个未知量,那么其他两个未知量可以直接通过代入法递次求出。对于这类问题,斐波那契先使用一次双假设法求出一个未知量的值,比如设为x0;然后根据题设条件的特殊性,将x0的值代入原方程组而直接得到另外两个未知量的值y0和z0。也就是说,此时他仅使用了一次双假设法和代入法就解决了三元线性方程组的问题。
第二类三元线性方程组的问题属于一般问题,其题设条件比较复杂,求出一个未知量的值以后,无法通过代入法而直接得到其他未知量的值。如第三个“三人有第纳尔”问题[3],此时相当于求解形如
的三元线性方程组,斐波那契求解x的真值x0的步骤如图1所示。他首先设出x的假值x1,将其代入比如前两个方程,得到关于y,z的二元线性方程组
然后利用一次双假设法求出上述二元方程组的解(y1,z1),即得问题的假解(x1,y1,z1)。同理,他设出x的另一个假值x2,并再次利用双假设法求解代入x2后所得的方程组
图1 二重双假设法相同步骤程序图Fig.1 Flow diagram of the same procedure of twofold double false positions
得到问题的另一个假解(x2,y2,z2)。至此,他第三次运用双假设法,将两个假解(x1,y1,z1)和(x2,y2,z2)分别代入第三个方程,得到对应的差值分别为
e1=a3x1+b3y1+c3z1-d3
和
e2=a3x2+b3y2+c3z2-d3,再由双假设法求解公式即得x的真值x0。不难看出,斐波那契在求解x的真值的过程中运用了嵌套式的双假设法,其中前两次用来求两个假解的双假设法作为第一重嵌套在用来求x的真值的第三次双假设法内,整个求解程序共使用了3次双假设法,我们把这种做法称为二重双假设法(亦有学者称为多重假令法[6]),而把不含嵌套的双假设法称为[一重]双假设法。
求出x的真值x0以后,斐波那契将其代入比如前两个方程,得到关于y,z的二元线性方程组
然后第四次运用双假设法进行求解。此时,他并未使用前述两个假解(y1,z1)和(y2,z2),而是通过重新设出y的两个假值y3,y4,得到两个新的假解(y3,z3),(y4,z4)及其对应的差值,最终求得问题的真解(x0,y0,z0)。综上所述,斐波那契是通过一次二重双假设法和一次一重双假设法而最终求得了上述三元线性方程组的解,过程中总共使用了4次双假设法。
在《算术实践概要》中,克拉维乌斯也是运用二重双假设法求解上述三元线性方程组中x的真值
并且求解程序与斐波那契相同,如图1所示。但是,在接下来求解y0,z0时,他的做法却与斐波那契具有重要区别。在求得x0后,对于y0,z0的求解,克拉维乌斯并未像斐波那契那样将x0代入原三元方程组的两个方程以得到二元方程组,从而也未第四次运用双假设法,而是直接利用双假设法求解公式
得出真解(x0,y0,z0);在上述运算中,相关各量已在求解x0的过程中悉数得到。上述做法表明:(1)求出两个差值e1和e2之后,每一个未知量都可以由它的两个假值和这两个差值通过相同的运算公式解出,因此克拉维乌斯已经发现了双假设法求解公式的一致性,而斐波那契并未认识到这一点;(2)克拉维乌斯求解三元线性方程组时,仅需运用一次二重双假设法即可同时求得3个未知量的值,其做法显然比斐波那契更为简洁,因为后者通过一次二重双假设法只求出了一个未知量的值。
1.2 求解公式一致性简化计算的量化分析
对上述问题, 斐波那契的求解思路如下。 首先将x的假值x1代入比如前3个方程, 可得关于y,z,u的三元线性方程组; 然后利用一次二重双假设法和一次一重双假设法求出上述三元方程组的解(y1,z1,u1),即得问题的假解(x1,y1,z1,u1)。 利用同样的方法, 可得另一个假解(x2,y2,z2,u2), 并且这两个假解的得出都进行了4次双假设法的运算。 接下来, 运用第三重(即第9次)双假设法, 将两个假解分别代入第四个方程, 得出相应的两个差值
e1=a4x1+b4y1+c4z1+f4u1-d4,
e2=a4x2+b4y2+c4z2+f4u2-d4;
再根据双假设法求解公式即得出x的真值x0。 最后, 将x的真值x0代入原方程组中的3个方程, 得到关于y,z,u的三元线性方程组, 并再次进行4次双假设法运算, 最终得出原问题的真解(x0,y0,z0,u0)。 综上所述, 斐波那契需要进行13次双假设法运算才能最终解决这个四元线性方程组的问题。
虽然斐波那契并未表述其所使用的双假设法可以向n元线性方程组推广,但通过其求解的各类实例不难看出,他已经意识到多重双假设法具有一般性,即都是把n元线性方程组的问题归结为n-1元的问题,如此继续,一直归结到二元线性方程组的问题。关于这一点,克拉维乌斯在《算术实践概要》中并未运用双假设法求解多于三元的线性方程组,但当问题向n元线性方程组推广时,他关于双假设法求解公式一致性的优势则会表现得更加明显。例如,对上述四元线性方程组的求解,斐波那契需要进行13次双假设法的运算,但是克拉维乌斯的解法只需要7次双假设法的运算。
现将斐波那契与克拉维乌斯求解线性方程组时所需运用双假设法的次数作以对比,如表1所示。
表1 求解线性方程组所需双假设法次数统计表
Tab.1 Statistical table of the number of double false position solving linear equations
方程组人 名斐波那契克拉维乌斯双假设法次数三元a1=4b1=3四元a2=1+3a1=13b2=1+2b1=7五元a3=1+3a2=40b3=1+2b2=15………n元an-2=1+3an-3bn-2=1+2bn-3
同理,根据表1第三列可知,{bn+1}是首项为4,公比为2的等比数列,所以
bn-2=2n-1-1。
综上可得,对于n元线性方程组,利用克拉维乌斯的方法要比利用斐波那契的方法所节省的双假设法的运算次数为
l(n)=an-2-bn-2=
这个表达式说明,当n较大时,利用克拉维乌斯关于双假设法求解公式的一致性可以极大地简化计算过程,减少了运算量。
2 克拉维乌斯关于双假设法求解公式一致性的数学原理
克拉维乌斯不仅认识到双假设法求解公式的一致性,并且明确提出,他的做法比前人更好。在《算术实践概要》第23章问题2中,克拉维乌斯在运用双假设法求得x0后,首先采用和斐波那契一样的直接代入法求得y0,z0,然后利用双假设法求解公式的一致性同样求得y0,z0;在问题19中,他提到:
第二个数和第三个数的得出或者是根据双假设法,用第二个或者第三个假解乘以相应的差值,等等;或者是在第一个数求出后,……,第二、三个数随之得到(2)Numeros porro hos secundi & tertij inucnics vel cx regula salsi, multiplican do errorcs per secoundi ac tertij positiones, & c. vel ex primo inuento, quemqdmodu Paulo ante ex 100. & 200. quos numeros posuimus primu habere. numeros secundi, ac tertij inuestigauimus. ([4],184-185页)。
克拉维乌斯很清楚其新方法的优越性。他认为,与前人那种“得到第一个数之后,需将其代入合适的方程,再通过双假设法求解”的方法相比,他自己的方法更好。
对于克拉维乌斯能同时求得三个未知量的值的做法,亦即其双假设法求解公式的一致性,《算法史》试图利用行列式理论给出现代解释。该解释首先通过两次设出假值xi(i=1,2,下同),得到假解满足的对应三元线性方程组
然后通过克拉默法则推导出xi的表达式,最后联立两个假值xi求得真值
但这只能说是推导出了克拉维乌斯双假设法的求解公式,而并未达到试图解释其求解公式的一致性的目的,因此该解释尚不能令人满意。
关于求解公式一致性的说明,我们提出可以从双假设法的几何原理出发进行探究。其核心思想在于,三元线性方程组
(1)
(2)
(3)
的3个方程(1),(2),(3)可以分别表示三维空间中的3个平面π1,π2,π3,因此求解该方程组就相当于求这3个平面的交点P0(x0,y0,z0)。
如图2所示,设出x的一个假值x1,将其分别代入式(1)和式(2),可得关于y,z的二元线性方程组,运用双假设法可求得问题的假解(x1,y1,z1),该假解同时满足前两个方程,亦即同时在前两个平面上,因此这个假解是两平面π1,π2的交线l上的一点P1(x1,y1,z1);同理可得,方程组的另一个假解(x2,y2,z2)是l上的另一点P2(x2,y2,z2)。这样,P1,P2两点就确定了两平面π1,π2的交线l。
图2 一重双假设法示意图Fig.2 Schematic diagram of double false position
接下来如图3所示,将假解(x1,y1,z1)代入3)式得,
图3 二重双假设法示意图Fig.3 Schematic diagram of twofold double false positions
a3x1+b3y1+c3z1=d3+e1,
这相当于得到了过点P1且平行于π3的平面S1,其中线段P1P0的长度由差值e1决定;同理,将另一个假解(x2,y2,z2)代入式(3)得,
a3x1+b3y1+c3z1=d3+e2,
这相当于得到了过点P2且平行于π3的平面S2,其中线段P0P2的长度由差值e2决定且满足
而原方程组的解是平面π1,π2的交线l与平面π3的交点P0(x0,y0,z0),通过比例关系
既容易推导出双假设法求解公式,也容易解释该求解公式能够同时求出3个未知量的值,即该求解公式具有一致性。
当双假设法向n元线性方程组推广时,仍然可以类似地解释双假设法求解公式的一致性,只不过此时平面变成了超平面,直线变成了超直线,点的维度也随之增加。至此,我们已经成功地解释了克拉维乌斯双假设法求解公式一致性的数学原理。克拉维乌斯当然不可能这样来思考问题,那么他又是如何意识到其求解公式的一致性的?
3 克拉维乌斯发现求解公式一致性的一种可能思路
克拉维乌斯的著作《算术实践概要》第23章双假设法中共包含22个问题,其中第2,3,5,19,20这5个问题属于三元线性方程组的问题,其余17个问题均为二元线性方程组问题。在该章求解过程中,克拉维乌斯运用双假设法求解公式的一致性简化了前人的计算步骤,但他只是叙述了其计算程序并辅以具体实例说明,并没有就其发现求解公式一致性的思路作出说明。我们在表2中总结出他利用一重或二重双假设法求解这5个三元线性方程组问题的运算过程及相应结果。
这里第2,3,19,20这4个问题都是特殊的三元线性方程组问题,只要知道了一个未知量的值,即可由代入法直接得出另外两个未知量的值。因此这几个问题只使用一次双假设法即可得出真值x0,继而由代入法可直接得出真值y0,z0。克拉维乌斯在直接代入法之后,又利用其双假设法求解公式的一致性更加简洁地求解问题5所代表的一般三元线性方程组。对于克拉维乌斯求解公式一致性的发现,我们认为,他有可能是在对上述4个问题计算求得x0,y0,z0后,观察到并据此关系式推导得出具有一致性的双假设法求解公式。事实上,如果他手头有类似于表2的图表,那么根据上述的4个例子,是不难发现其求解公式的一致性的。
表2 克拉维乌斯的二重双假设法Tab.2 Twofold double false positions of Clavius
①以《算术实践概要》第23章问题的先后对应编号。
4 结 语
综上,我们对比了斐波那契和克拉维乌斯的二重双假设法的异同,指出斐波那契认识到多重双假设法的一般性,未认识到求解公式的一致性;而克拉维乌斯则发现了二重双假设法求解公式的一致性,从而能在很大程度上简化运算。我们对其简化运算的效果给出了量化分析,并解释了克拉维乌斯求解公式一致性的数学原理。进一步,我们分析了克拉维乌斯对5个三元线性方程组问题的详细计算过程,认为他可能是通过对4个特殊例子的计算结果的分析和归纳,而发现了二重双假设法求解公式的一致性。