标签:
杂谈 |
作者:@中科大胡不归
【作者按:《中国古代数学思想》,孙宏安著,大连理工大学出版社2008年4月第一版,编入《数学科学文化理念传播丛书》。上一篇见http://weibo.com/p/1001603909163699801041。欢迎在微博上通过在私信页面点击“订阅文章”或输入“DY”订阅我的群发。在电脑上点击我的置顶微博中的标签可以完全列出与分类阅读我的文章。推荐关注@秋秋和丫丫的小五
第六章:数学思想的异彩——宋元数学高峰。本篇记录此章第1节第3部分的(2)和(3)。
6.1 宋元数学成果点滴
3、秦九韶的数学成果
(2)大衍总数术
《数书九章》中的大衍类问题的总的算法就是一次同余式组的解法。在第一卷的前面就给出这一算法,称为大衍总数术。它是《孙子算经》“物不知数”问题的一般化,直接来源则是历法中推算上元积年的算法。
大衍类问题,就是求一个正整数N,被A1除余R1,被A2除余R2……被An除余Rn。其实就是求解一次同余式组
N ≡ Ri (mod Ai) (i = 1,
2,
…,
n)
如果A1, A2,…, An两两互质,则下式中的ai = Ai (i = 1, 2, …, n)。否则,求出两两互质的数a1, a2,…, an,使得它们的乘积等于[A1, A2,…, An]。按:A1, A2,…, An的最小公倍数。
这叫求“定数”。
令
M = Πi=1n ai
Mi = M /ai
如果有k1, k2,…, kn分别满足
kiMi ≡ 1 (mod ai) (i = 1, 2, …, n)
则一次同余式组
N ≡ Ri (mod ai) (i = 1,
2,
…,
n)
的最小正整数解是
N = Σi=1n Ri kiMi -PM
其中P是适当的非负整数,使得0 < N ≤ M。
秦九韶在大衍总数术中规定了一系列的术语,解释如下:
问数:(1)式中的诸Ai (i = 1, 2, …, n)
定数:(2)式中的诸ai (i = 1, 2, …, n)
衍母:M = Πi=1n ai
衍数:Mi = M /ai (i = 1, 2, …, n)
奇数:gi,使Mi = Siai gi,0 ≤ gi < ai (i = 1, 2, …, n;Si为正整数) 按:即Mi除以ai的余数
乘率:ki,是使kigi ≡ 1 (mod ai) 成立的最小正整数,由大衍求一术求之。
用数:Ti = kiMi (i = 1, 2, …, n)
余数:Ri (i = 1, 2, …, n)
个总:Ni = TiRi
总数:N* =Σi=1n Ni
所求率数:N = N* - PM,P为使得0 < N ≤ M成立的适当非负整数
秦九韶在这里定义了一系列的概念,并且利用它们进行逻辑推导得出所需要的抽象的结论,这是数学思想中的新异因素——一种抽象化与原来的算法化结合的思想,因为利用概念推导的是一个算法。按:好!终于进化到这一步了!
大衍总数术先给出由问数求定数的算法,然后用大衍求一术求乘率,对大衍求一术加以解说。列表说明。
例 《数书九章》卷二“余米推数”题:“问:有米铺诉被盗去米一般三箩,皆适满,不记细数。今左壁箩剩一合,中间箩剩一升四合,右壁箩剩一合。后获贼,系甲、乙、丙三名。甲称当夜摸得马勺,在左壁箩满舀入布袋。乙称踢得木屐,在中箩舀入袋。丙称摸得漆碗,在右壁箩舀入袋。将归食用,日久不知数。索得三器,马勺满容一升九合,木屐容一升七合,漆碗容一升二合。欲知所失米数,计赃结断,三盗各几何?答数:共失米九石五斗六升三合,甲窃米三石一斗九升二合,乙、丙各窃米三石一斗七升九合、三石一斗九升二合。”
按题意相当于解同余式组
x ≡ 1 (mod 19) ≡ 14 (mod 17) ≡ 1 (mod 12)
衍母:M = 19 × 17 × 12 = 3876
衍数:M1 = 17 × 12 = 204, M2 = 19 × 12 =228, M3 = 19 × 17 = 323
乘率:
204k1 ≡ 1 (mod 19),推出14 k1 ≡ 1 (mod 19),推出k1 = 15;
228k2 ≡ 1 (mod 17),推出7 k2 ≡ 1 (mod 17),推出k2 = 5;
323k3 ≡ 1 (mod 12),推出11 k3 ≡ 1 (mod 12),推出k3 = 11。
x = 204 × 15 × 1 228 × 5 × 4 323 × 11 × 1 (mod 3876) ≡ 22573 (mod3876) ≡ 3193 (mod 3876)
甲、乙、丙各盗3192、3179、3192合。共盗上三数之和 = 9563合。按:此题的规模十分宏大,缺点在于三个衍母是互质的,因此直接应用大衍求一术就够了。为了更充分地表现秦九韶相对于《孙子算经》的进展,应该使衍母中出现不互质的数。
这是一项十分高超的数学成果。西方提出并解决这个问题要等待19世纪高斯的工作。这个成果后来被称为中国剩余定理,真正是驰名中外的一流数学成果!按:直到今天,数论中拿得出手的算法仍然只有求最大公约数的辗转相除法和解不定同余式组的中国剩余定理这两个。
(3)高次数字方程解法
秦九韶总结了贾宪、刘益等人的开方法,得到一种读到的解任意次方程的解法,称为“正负开方术”。在现在的意义上看,与英国数学家霍纳(W. G. Horner,1786—1837)1819年发表的方法是一致的。
对于形如
anxn an-1xn-1 … a1x a0 = 0
的高次方程及其正根。秦九韶用算筹表示为图的形式。其中商即根,实即常数项,规定“实常为负”,方即一次项,隅即最高项,各廉即中间各项。按:“实常为负”的要求总是可以实现的。如果常数项为正,则把整个方程乘以-1。如果常数项为0,则方程有一个根为0,去掉这个根后,把方程除以x,即原来的a1变成新的a0,重复以上步骤。总会遇到第一个系数不为0(否则整个方程就是0 = 0,没有意义),把它变成负数即可。
下面以《数书九章》卷五“尖田求积”题为例说明秦九韶法。原问:“有两尖田一段,其尖长不等。两大斜三十九步,两小斜二十五步,中广三十步。欲知其积几何?”(译文:有一个由具有一条公共底边的大小两个等腰三角形结合组成的两头尖的地块,已知公共底边长30步,大三角形腰长39步,小三角形腰长25步。问此地块的面积是多少?)
秦九韶列出了一个筹式,相当于方程
-x4 763200x2 - 40642560000 = 0。按:解方程的方法很好,但例子举得令人哭笑不得。原题根本不需要列方程,直接用基础的几何学就可以解决。底边长的一半是15,大三角形的高是sqrt (392 - 152) = 36,小三角形的高是sqrt (252 - 152) = 20。所以大三角形的面积是36 × 15 = 540,小三角形的面积是20 × 15 = 300,地块的总面积是(36 20) × 15 = 840。对这么简单的问题居然搞出个四次方程来,从侧面说明中国古代的几何太差!
确定解的位数——估商。大约是一个以8为首位数字的百位数,于是设x = 800 y,代入原方程得到一个关于y的方程
-y4 - 3200y3 - 3076800y2 - 826880000y 38205440000 = 0
这个方程的解是一个两位数。估出y的第一位商再重复原来的作法,就可以得到原方程的数值解840。
秦九韶法的基本特点是随乘随加,有很强的机械性,可以毫无困难地转化为计算机程序。若方程的根是无理数,可用此程序求出根的任意精度的近似值。所以说,秦九韶圆满解决了求高次方程正根的问题。按:这么说是可以成立的。不过要注意,秦九韶给出的是数值求解任意次代数方程的方法,不是解析求解,跟卡丹、韦达等人给出的三次、四次方程解析解法不是同一个层面的成果。西方数学家解出三次、四次方程后,自然就去寻找五次方程的解法,却总是找不到,于是猜想五次以上的方程没有普适的解法。这个猜想是正确的,引出了近世代数这个领域。很遗憾,中国数学家完全没有向这个方向思考。本书作者说了很多数学实用思想的优点,请问这个例子算不算一个缺点呢?