秦九韶

何绍庚

秦九韶字道古。普州安岳(今四川安岳)人。南宋嘉泰二年(1202 年)生;约景定二年(1261 年)卒于梅州(今广东梅县)。数学。

秦九韶祖籍鲁郡(今河南范县),其父秦季■,字宏父,绍熙四年(1193) 进士,后任巴州(今四川巴中)守。嘉定十二年(1219)三月,兴元(今陕西汉中)军士张福、莫简等发动兵变,入川后攻取利州(今广元)、阆州(今阆中)、果州(今南充)、遂宁(今遂宁)、普州(今安岳)等地。在哗变军队进占巴州时,秦季■弃城逃走,携全家辗转抵达南宋都城临安(今杭州)。在临安, 秦季■曾任工部郎中和秘书少监等官职。宝庆元年(1225)六月,被任命为潼川知府,返回四川。

秦九韶自幼生活在家乡,18 岁时曾“在乡里为义兵首”,后随父亲移居京都。他是一位非常聪明的人,处处留心,好学不倦。其父任职工部郎中和秘书少监期间,正是他努力学习和积累知识的时候。工部郎中掌管营

建,而秘书省则掌管图书,其下属机构设有太史局,因此,他有机会阅读大量典籍,并拜访天文历法和建筑等方面的专家,请教天文历法和土木工程问题,甚至可以深入工地,了解施工情况。他又曾向“隐君子”学习数学。他还向著名词人李刘学习骈俪诗词,达到较高水平。通过这一阶段的学习,秦九韶成为一位学识渊博、多才多艺的青年学者,时人说他“性极机巧,星象、音律、算术,以至营造等事,无不精究”,“游戏、■、马、弓、剑,莫不能知”。

1225 年,秦九韶随父亲至潼川,担任过一段时间的县尉。数年后,李刘曾邀请他到南宋国史院校勘书籍文献,但未成行。端平三年(1236)元兵攻入四川,嘉陵江流域战乱频仍,秦九韶不得不经常参与军事活动。他后来在《数书九章》序中写道:“际时狄患,历岁遥塞,不自意全于矢石间, 尝险罹忧,荏苒十■,心槁气落”,真实地反映了这段动荡的生活。由于元兵进逼和溃卒骚乱,潼川已难以安居,于是他再度出川东下,先后担任过蕲州(今湖北蕲春)通判及和州(今安徽和县)守,最后定居湖州(今浙江吴兴)。秦九韶在任和州守期间,利用职权贩盐,强行卖给百姓,从中牟利。定居湖州后,所建住宅“极其宏敞”,“后为列屋,以处秀姬、管弦”。据载,他在湖州生活奢华,“用度无算”。

淳■四年(1244)八月,秦九韶以通直郎为建康府(今江苏南京)通判, 十一月因母丧离任,回湖州守孝。在此期间,他专心致志研究数学,于淳

■七年(1247)九月,完成数学名著《数书九章》。由于在天文历法方面的丰富知识和成就,他曾受到皇帝召见,阐述自己的见解,并呈有奏稿和“数学大略”(即《数书九章》)。

宝■二年(1254),秦九韶回到建康,改任沿江制置使参议,不久去职。此后,他极力攀附和贿赂当朝权贵贾似道,得于宝■六年(1258)任琼州守, 但三个月后被免职。同时代的刘克庄说秦九韶“到郡(琼州)仅百日许,郡人莫不厌其贪暴,作卒哭歌以快其去”,周密亦说他“至郡数月,罢归, 所携甚富”。看来,由于他在琼州的贪暴,百姓极为不满。秦九韶从琼州回到湖州后,投靠吴潜,得到吴潜赏识,两人关系甚密。吴潜曾相继在开庆元年(1259)拟任以司农寺丞,景定元年(1260)拟任以知临江军(今江西清江),都因遭到激烈反对而作罢。在这段时间里,秦九韶热衷于谋求官职, 追逐功名利禄,在科学上没有显著成绩。在南宋统治集团内部的激烈斗争中,吴潜被罢官贬谪,秦九韶也受到牵连。约在景定二年(1261),他被贬至梅州做地方官,“在梅治政不辍”,不久便死于任所。

秦九韶在数学上的主要成就是系统地总结和发展了高次方程数值解法和一次同余组解法,提出了相当完备的“正负开方术”和“大衍求一术”, 达到了当时世界数学的最高水平。

我们知道,古典代数学的中心课题是方程论,我国古代对于列方程和解方程都曾取得杰出的成就。早在《九章算术》中便已载有开平方术和开立方术,后来又有“开带从平方”、“开带从立方”等二次和三次方程的数值解法,祖冲之父子和王孝通等都对这一课题进行了深入研究。在 11 世纪,宋代数学家贾宪又创造一种新的开方法——增乘开方法,通过随乘随加导出减根方程,逐步求出高次方程的正根。以上这些方法都要求方程各项系数为正整数。在宋代,有不少数学家研究了高次方程数值解法,特

别是刘益提出的“正负开方术”,方程系数可正可负,取消了以前对方程系数只允许为正整数的限制。但是,这些工作还不够完整和系统。秦九韶在前人工作的基础上,提出一套完整的利用随乘随加逐步求出高次方程正根的程序,亦称“正负开方术”,现称秦九韶法。对于形如

f(x)=a0xn+a1xn-1+⋯an-1x+an=0

的高次方程及其正根,秦九韶将其表示为下图的形式。这与古代开方术的分离系数表示法基本一致,只是他令“实”常为负(an<0),这一点有所差别。图中的数码用筹算数字。下面以《数书九章》“尖田求积”问题为例说明秦九韶高次方程数值解法的运算步骤:

  1. 依据术文列出方程

-x4+763200x2-40642560000=0,

布置算筹如图式(1)。“益隅”是指 x4 的系数是负数,“从上廉”是指 x2 的系数是正数,“虚”表示系数为零,“实”规定为负数。

  1. 把“上廉”向左移四位,“隅”向左移八位,算得上商

    8,放在“实”的百位数上边,如图式(2)。这实际上相当于对原方程进行 x=100x1 的变换,得

-108x41+763200·104x21-40642560000=0。

秦九韶 - 图1

  1. 以商 8 乘益隅得-800000000 置负下廉。以 8 乘负下廉,与原有的

上廉相消,得 1232000000 为上廉。以 8 乘上廉得 9856000000 为方。以 8 乘方得“正积” 78848000000 ,以原有的负实与正积相加,得正实38205440000。如图式(3)。

  1. 以 8 乘益隅,并入下廉得-1600000000。以 8

    乘下廉,与原有的正上廉相消得-11568000000 为负上廉。以 8 乘上廉与原有的方相消,得- 82688000000 为负方,如图式(4)。

秦九韶 - 图2

  1. 以 8 乘益隅,并入下廉得-2400000000。以 8 乘下廉,并入上廉,

    得-30768000000 为负上廉。如图式(5)。

秦九韶 - 图3

  1. 以 8 乘益隅,并入下廉得-3200000000

    为负下廉。如图式(6)。(7)把“方”向右移一位,上廉移二位,下廉移三位,隅移四位。以负

方除正实,算得次商 4。如图式(7)。

(8)以次商 4 乘益隅,并入下廉得-3240000。以 4 乘下廉,并入上廉得

-320640000。以 4 乘上廉,并入方得-9551360000。以 4 乘方,与正实相消,

恰恰消尽。即得 840 为方程的一个正根,如图式(8)。

秦九韶 - 图4

由以上运算过程可以看出,当求得 8<x1<9,确定第一位得数为 8 以后,图式(3)至图式(6)相当于求出进行 x2=x1-8 的变换后所应得出的新方程(图式(6)):

-108x42-3200·106x32-3076800·104x22

-826880000·102x1+38205440000=0

图式(7)相当于对上式进行 x3=10x2 的变换后得出的新方程:

-104x43-3200·103x33-3076800·102x23

-826880000·10x3+38205440000=0

最后求得 x3=4,因此,

x = 100x = 100(8 + x ) = 100(8 + x 3 ) = 840

1 2 10

从(1)到(8)的各个步骤,基本上都是自下而上随乘随加,最后由“实”中减去,有很强的机械性。这也是“增乘开方法”的主要特点。有人说,计算机发明以后,解方程变得有趣了。确实是这样,秦九韶的高次方程数值解法,可以毫无困难地转化为计算机程序。在《数书九章》中,秦九韶列举了 20 多个解方程问题,次数最高达 10 次,除一般方法外,还讨论了“投胎”、“换骨”、“玲珑”、“同体连枝”等特殊情形,并将其广泛应用于面积、体积、测量等方面的实际问题。在西方,关于高次方程数值解法的探讨,经历了漫长的历史过程,直到 1804 年,意大利数学家 P.鲁菲尼(Ruffini,1765—1822)才创立了一种逐次近似法解决数字高次方程无理数

根的近似值问题,而 1819 年英国数学家 W.G.霍纳(Horner,1786—1837) 在英国皇家学会发表的论文“用连续逼近法解任何次数字方程的新方法” 中,才提出与增乘开方法演算步骤相同的算法,后被称为“霍纳法”。秦九韶的成就要比鲁菲尼和霍纳早五六百年。

秦九韶对于一次同余组解法的理论概括,是他在数学史上的另一杰出贡献。中算家对于一次同余式问题解法的研究是适应天文学家推算上元积年的需要而产生的。最早见于记载的一次同余问题是《孙子算经》中的“物不知数问题”(亦称“孙子问题”):“今物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几有何?”这相当于求解一次同余组:

N≡2(mod3)≡3(mod5)≡2(mod7), 等价于求解不定方程组:

N=3x+2,N=5y+3,N=7Z+2

的正整数解 N。《孙子算经》所给出的答案是 N=23,但其算法很简略,未说明其理论根据。秦九韶在《数书九章》中明确给出了一次同余组的一般性解法,现简要介绍如下:

已知N≡Ri(modAi),i=1,2,3,⋯,n,

求最小的正整数 N。设 Ai 两两互素,若能求得一串数值 k1,k2,⋯,k1, 使 k2 分别满足

M

ki =

i

≡1(modA i ),i=1,2,3, ,n,

其中 M=A1·A2·A3·⋯·An,则

M M M

N ≡ R1k1

1

于是,问题的解答为

  • R2 k2

2

n

  • + R nk n

n

M

(mod M),

N = ∑Ri ki i=1

  • pM,

i

p 为正整数,它的取值要使 N 成为小于 M 的正整数。这就是孙子剩余定理,在西方文献中称为“中国剩余定理”。

显然,一次同余组解法的关键是如何选定满足条件

M

ki ≡ 1(mod Ai )

i

的一组数 kio。秦九韶将这组数称为“乘率”,并在《数书九章》中详细叙述了计算乘率的方法——“大衍求一术”(现在亦指整个一次同余组解法)。用现代符号表示,大衍求一术的基本计算程序是:

M

若Gi = ,先用A i除Gi ,求得余数gi<Ai ,那末Gi≡g i (modAi ),

i

于是 kiGi≡kigi(modAi)。但 kiGi≡1(modAi),所以问题归结为求 ki,使之满足 kigi≡1(modAi)。秦九韶把 Ai 称为“定数”,gi 称为“奇数”。他的大衍求一术实际上就是把奇数 gi 和定数 Ai 辗转相除,相继求得商数 q1, q2,⋯,qn 和余数 r1,r2,⋯,rn。在辗转相除过程中,随即算出下表右侧的 ci 值:

商数

余数

c 值

A1/g1

q1

r1

c1=q1

g1/r1

q2

r2

c2=q2c1+1

r1/r2

q3

r3

c3=q3c2+c1

.

.

.

.

.

.

.

.

.

rn-2/rn-1

. . .

qn rn cn=qncn-1+cn-2

秦九韶指出,当 rn=1 而 n 是偶数时,最后得到的 cn 就是所求乘率 ki。如果 rn=1 而 n 是奇数,那末把 rn-1 和 rn 相除,形式上令 qn-1=Rn-1-1,那末余数 rn+1 仍然是 1,再作 cn+1=qn+1cn+cn-1,这时 n+1 是偶数,cn+1 就是所求的 ki。不论哪种情形,最后一步都出现余数 1,故称“求一术”。可以证明,秦九韶这一算法是完全正确的和十分严密的。下面是用大衍求一术求乘率的一个数字实例(其数字见于《数书九章》中关于开禧历上元积年的推算)。已知奇数 g=377873,定数 A=499067,求乘率 k。按照辗转相除公式, 整个计算过程可表示为如下的筹算图式:

(1)■■

(2)■■

(3)■■

(4)■■

(5)■■

(6)■■

(7)■■

(8)■■

(9)■■

(10)■■

(11)■■

从图式(11)可知,右上角的数字(r10)已变成 1,并且 n=10 是偶数。因此, 左上角的数字(c10)即为所求乘率,即 k=457999,这时有 377873×457999

≡1(mod499067)。由上例可见,秦九韶的大衍求一术与他的高次方程数值解法一样,简洁、明确、带有很强的机械性,其程序亦可毫无困难地转化为算法语言,用计算机来实现。在《数书九章》中,秦九韶通过大量例题, 如“古历会积”、“治历演纪”“积尺寻源”、“推计土功”、“程行计地”等等,展示了大衍求一术在解决历法、工程、赋役和军旅等实际问题中的广泛应用。由于在许多问题中,模数 A■并非两两互素,而中国传统数学没有素数概念,所以将模数化为两两互素是相当困难的问题。秦九韶所设计的将模数化为两两互素的算法,尽管还不完善,但仍比较成功地解决了这一难题,有人称之为“没有素数的素数论”。综观他在求解一次同余组问题的各项成就,正如李文林、袁向东所说:“所有这些系统的理论, 周密的考虑,即使以今天的眼光看来也很不简单,充分显示了秦九韶高超的数学水平和计算技巧。”在西方,最早接触—次同余式的是意大利数学家 L.斐波那契(Fibonacci,约 1170—1250)。他在《算盘书》中给出了两

个一次同余问题,但没有一般算法。直到 18—19 世纪,L.欧拉(Euler, 1743)、G.F.高斯(Gauss'1801)才对一次同余组进行深入研究,重新获得与中国剩余定理相同的定理,并对模数两两互素的情形给出了严格证明。1852 年,英国传教士、汉学家伟烈亚力(A.Wylie,1815—1887)发表《中国数学科学札记》(Jottings on the science of Chinese arithmetic),其中谈到了大衍求一术。从 1856 年到 1876 年,德国人 L.马蒂生(Matthiessen, 1830—1906)等西方学者又多次指出大衍求一术原理与高斯方法的一致性,从而更加引起了欧洲学者的瞩目。德国著名数学史家 M. 康托尔(Cantor,1829—1920)高度评价了大衍求一术,他称赞发现这一算法的中国数学家是“最幸运的天才”。印度学者对一次同余式问题也有过重要贡献。在 6 世纪至 12 世纪间,印度数学家提出了一种类似于“求一术”的“库塔卡”算法,应用于解决与一次同余组等价的不定方程问题。但在时间上晚于《孙子算经》,而在一般性和完整性上又不如大衍求一术。

秦九韶所著《数书九章》,是他勤奋学习、苦心钻研和多年积累的数学成就的结晶,是一部堪与《九章算术》相媲美的数学名著。这部著作, 南宋时称为《数学大略》或《数术大略》,明清时还曾题称《数学九章》, 明万历时赵琦美为此书撰写跋文始称《数书九章》。后来道光时按赵抄本校刻的《宜稼堂丛书》本流传较广,《数书九章》遂成为现今的通称。该书共 18 卷 81 题,分为 9 类,每类 9 题。这些问题是秦九韶从他收集的大量资料中精选出来的较有代表性的问题。主要内容是:

  1. 大衍类,一次同余组的解法,大衍求一术; (2)天时类,历法推算,雨雪量的计算;
  1. 田域类,土地面积;

  2. 测望类,勾股、重差等测量问题; (5)赋役类,田赋、户税;

(6)钱谷类,征购米粮及仓储容积; (7)营建类,建筑工程;

(8)军旅类,兵营布置和军需供应; (9)市易类,商品交易和利息计算。

从其著作体例来看,《数书九章》受到《九章算术》等经典著作的传统影响,仍然采用问题集的形式,但在各题术文(解题方法)之后,多附有“草”,即表明演算步骤的算草图式。在《数书九章》中,除了前面提到的大衍求一术和正负开方术两项重要成就外,还记载了不少其他方面的成就。例如,他改进了线性方程组的解法,普遍应用互乘相消法代替传统的直除法,已同今天所用的方法完全一致;在开方中,他发展了刘徽开方不尽求微数的思想,最早使用十进小数来表示无理根的近似值;他对于《九章算术》和《海岛算经》的勾股测量术也多所阐发;他在几何方面的另一项杰出成果是“三斜求积术”,即已知三角形三边之长求其面积的公式。设三角形面积为 A,三边长分别为 a,b,c,则秦九韶的公式相当于:

1

A = 4

a 2 + b2 − c 2

[a 2b2 − ( ) 2 ],

2

这个公式与古希腊著名的海伦公式

(A =

s(s − a)(s− b)(s − c), 其中s = a + b + c

2

是等价的。《数书九章》的内容非常丰富,我们不仅可以找到数学和天文历法乃至雨雪量等方面的珍贵资料,而且还可以从中了解到南宋时期户口增长、耕地扩展、赋税、利贷、度量衡以及货币流通、海外贸易等等社会经济领域的真实情况。

关于秦九韶的哲学思想和数学思想,显然与宋代儒学中的道学学派一致。他明确指出“数与道非二本也”,再加上数学实践的切身体会,使他对于数学的重要性产生了较为清楚的认识。他说,数学研究“大则可以通神明,顺性命;小则可以经世务,类万物,讵容以浅近窥哉!”但他又承认自已对于“通神明,顺性命”没有太深的体会,于是注意搜求天文历法、生产、生活、商业贸易以及军事活动中的数学问题,“设为问答,以拟于用”,尽力满足社会实践的需要,并告诫人们要学好数学,精于计算,以避免由于计算错误而引起的“财蠹力伤”等等不良后果。为此,他付出了辛勤劳动,撰写出 20 余万言的数学巨著。他的这种思想和作法是难能可贵的,应该给予充分的肯定。

秦九韶是一位既重视理论又重视实践,既善于继承又勇于创新的数学家。他所提出的大衍求一术和正负开方术及其名著《数书九章》,是中国数学史上光彩夺目的一页,对后世数学发展产生了广泛的影响。美国著名科学史家 G.萨顿(Sarton,1884—1956)说过,秦九韶是“他那个民族,他那个时代,并且确实也是所有时代最伟大的数学家之一”。