秦九韶是我国南宋时期的数学家,与李冶、杨辉、朱世杰并称宋元数学四大家,其著作《数书九章》是我国十三世纪数学成就的代表之一.秦九韶利用多项式算法,给出了求高次代数方程的完整解法,提出了相当完备的“正负开方术”,这一成就比西方早了五六百年.下面,我们具体介绍一下秦九韶在高次方程数值解法方面所做的工作.
首先,我们先来介绍一下秦九韶的高次方程的表示方法,以及他对高次方程分类的方法.
秦九韶沿用了前人在开方中所使用的列筹方法:把常数——“实”——置于第二层,在最上面一层放置得数——开方所得的“商”.之后,再由上向下依次放置x 的一次项、二次项等各项的系数(各“廉”),在最下一
层放置最高次项系数——“隅”.如图
1所示的筹式,
图1
该式相当于列出了方程:f (x )=a 0x n +a 1x n -1+a 2x n -2
+a 3x n -3+⋯+a n -1x +a n =0(a n <0).
因为所计算的大都是长度、面积之类的问题,因
而秦九韶以前的数学家们将开方式的“实”——即常数项常设为正数,在求得根的各位得数后,由下向上
推算,再把最后算得的结果从常数项中减去.秦九韶觉
得这样不方便,设“实常为负”(a n <0),把a n 和各项系数列在一起,在计算时只要按增乘开方法累乘、累加直至最后即可.这就是说,古代数学家们所列筹式相当
于:
a 0x n +a 1x n -1+⋯+a n -1x =A ,A >0.而秦九韶则列出了:a 0x n +a 1x n -1+⋯+a n -1x +a n =0,而其中a n =-A 常是负数.
在秦九韶的所有问题中,除了a n 之外,其他项的系数有时为正,有时为负,它们是不受任何限制的.
清代数学家李锐称:“秦道古(即秦九韶)《数学九章》卷四上开方图,负算画黑,正算画朱.”但是现传刊本中已经看不见这种黑赤两的记录了.现传刊本中只记有“上廉负”“下廉正”等.而方程的缺项,则在应列筹处划入零号“○”,并在其旁记入“虚方”“虚下廉”等,如图2(秦九韶正负开方法算草图,采自宜稼堂丛书本《数书九章》)所示.
图2
数学史话
57
秦九韶《数书九章》中有二十多个需要进行“开
方”求解的方程问题.按各问题原有的名目看,这些问
题都是和测量降雪深度、求各种形状的田地的面积、
测量问题、计算粮仓的体积等实际应用问题有关的.在
这些问题中,次数最高的有十次方程.
秦九韶曾把高次方程按其系数的情况定为若干
名目.若|a0|≠1,则称之为“开连枝某乘方”;如400x4-
2930000=0(x=97643439,第4卷“竹器验雪”题),则称
之为“开连枝三乘方”.若某方程的奇次幂系数皆为零
时,则称之为“开玲珑某乘方”,如x10+15x8+72x6-
864x4-11664x2-34992=0(x=3,第八卷“遥度圆城”题),
则称之为“开玲珑九乘方”.
以上便是秦九韶的开方式列筹方式和他对方程
进行的简单分类.下面,我们介绍一下秦九韶的“正负
开方术”——任意高次方程的数值解法的具体运算步
骤
.
这一解法的步骤和“增乘开方法”完全一致.以《数
书九章》卷五中“尖田求积”的问题为例,简单叙述如
下:“尖田求积”问题需要求解的方程为-x4+763200x2-
40642560000=0.
秦九韶在二十多个开方问题中,除了系数数字比
较庞大的两个问题外,都附有算草和解说运算每一步
骤的筹图.在“尖田求积”问题中就附有二十一个图式
——“正负开三乘方图”,用来详细说明运算的每一个
步骤.为了简洁起见,我们把二十一个筹算图式精简为
八个图式,为了便于理解,将原图下附有的全部注文,
附注于8个图式之旁.
①列算如图.
②上廉超一位,益隅超三位,商数进一位;上廉再
超一位,益隅再超三位,商数再进一位;上商八百为定.
③以商生(即乘)隅入益下廉,以商生下廉消(指正
负相消)从上廉,以商生上廉入方,以商生方得正积,乃与
实相消.以负实消正积,其积乃有余为正实,谓之“换骨”.
④以商生隅入下廉——一变:以商生下廉入上廉
内,相消——以正负上廉相消,以商生上廉入方内相
消——以正负方相消.
⑤以商生隅入下廉——二变:以商生下廉入上廉.
⑥以商生隅入下廉——三变.
⑦方一退,上廉二退,下廉三退,隅四退;商续置
——四变.
数学史话
58
⑧以方约实,续商置四十,生隅入下廉内,以商生
下廉入上廉内,以商生上廉入方内.以续商四十命方法,除实适尽.所得商数八百四十步为田积(即x =840).
秦九韶的正负开方术和现代通常所谓的霍纳方法基本上是一致的,二者的运算步骤都采用了随乘随加的方法.在上列八个筹式中:图①相当于列出了方程:-x 4
+763200x 2
-40642560000=0(1);图②相当于对
(1)式进行x =100x 1的变换,得-(10)8韶
x 14
+763200·104x 1
2
-40642560000=0(2);求得8<x 1<9,确定出第一位得数为8,图③至图⑥就是用与霍纳算法完全一致的步骤进行x 2=x 1-8的代换,求出新方程(即图⑥):
-(10)8x 42-3200(10)6x 32-3076800(10)4x 2
2
-826880000(10)2
x 2+38205440000=0
(3)
图
⑦相当于对(3)式进行了x 3=10x 2的换变之后,得
出了新的方程:
-(10)8x 43-3200(10)6x 33-3076800(10)4x 2
3-826880000(10)x 3+38205440000=0最后求得x 3=4,故得x =100x 1=100(8+x 2)=100(8+x
310
=840.我们注意到,秦九韶在求第二位得数时,采用了“以方约实”的试除法,用来求出第二位得数的估值.“以方约实”就是以方程的一次项系数除常数项,其得数与第二位得数的真值很相近.值得指出的是,在现代通常应用的霍纳算法中也使用这种试除法.
秦九韶还对运算过程中所产生的某些特殊情况进行了讨论.例如他曾讨论了“换骨”“投胎”等情形.我们知道,在通常情况下,进行x =a +y 的代换后,方程的常数项符号保持不变,同时其绝对值逐渐减少.但也会有特殊情况发生.假如,在代换后常数项的符号由负变正,秦九韶称之为“换骨”,并将其开方式称为“开翻法某乘方”.上述“尖田求积”题中就有“换骨”的情况出现.这种情况是因为方程存在两个正根,而所求者恰好是由较大的数所产生的,假若所求的是由较小的数产生的,就不会有“换骨”的情况产生.如“环田三积”(卷六),“望敌圆营”(卷八),虽然都有可能出现两个正根,但因所求乃是由较小的数产生的,故
而都没有“换骨”的情况产生.
所谓“投胎”则是指常数项符号不变,但其绝对值
增大的情况,如“古池推元”(卷八):0.5x 2-152x -11552=
0,在得到第一位商300进行代换后,常数项的绝对值反而增至12152,所以称之“投胎”,但在求得第二位商
6并进行代换后,常数项绝对值反而减少至1472,最后
求得x =366412
429
.
当方程的根不为整数时,秦九韶采取了下列办法:
(1)按原有步骤继续求其小数,即所谓“进退开
除”的方法.如卷十二“囤积量容”问题中16x 2+192x -1863.2=0的答数为x =6.35,在同一问题中还有方程36x 2+360x -13068.8=0,其答数为x =14.7.
(2)“命分”的方法.如卷六“环田三积”:-x 4+
15245x 2-6262506.25=0,在求得初商进行减根变换
后,秦九韶便以方、廉、隅各数(即减根变换后所得方程的一次、二次、三次,至四次项的各个系数)相并为分母,余实(常数项最后的余数)为分子,即得x =20+
324506.25-1-80+12845+577800=2012980252362256
.
假如所求解的是一个二次方程,这种方法和《九章算术》刘徽注中所提出的“以借算加定法而命分”的方法相同.我们可以认为秦九韶的这种方法是古已有之的“命分”方法在高次方程解法中的推广.值得注意的是,伊斯兰国的数学家也采用了这种命分方法,在阿尔·卡西的《算术之钥》(公元1427年)一书中就记载了这样的例子.
(3)当方程为两项方程,且其首项系数|a 0|≠1时,
秦九韶又给出了所谓的“连枝同体术”.若a 0x 2-a 1=0中
的系数a 0和a 1都是平方数时,则方程可以化为(αx )2=β2
,
可以立即得出x =β
α.此外还可以首先进行x =y a 0的
变换,把首项系数变为1.秦九韶用首项系数乘常数项,得出变换后的方程y 2-a 0a 1=0,解得y =a 0a 1,将其
代入x =y
a 0中,即可求得x 的值.如卷七“临台测水”一
题中有方程24649x 2-41912676=0,其系数均为平方
数,可得(157x )2=64742,从而得出x =6474157=4137
157
;而
在卷六“漂田推积”问题中有方程121x 2-43264=0,以二次项系数乘常数项后的方程为y 2
-121×43264=0,开
方得y =2288,将其代入x =y a 0得x =2288121=1810
11
.
——摘自《中国数学史》数学史话
59
发布评论