必读网 - 人生必读的书

TXT下载此书 | 书籍信息


(双击鼠标开启屏幕滚动,鼠标上下控制速度) 返回首页
选择背景色:
浏览字体:[ ]  
字体颜色: 双击鼠标滚屏: (1最慢,10最快)

中国古代数学》作者:郭书春

_3 郭书春(现代)
3x+6y+9z=78,
(6)
以(1)式减(6)式,得
4y+8z=39,
(7)
其方程如(b)所示。以(5)式y的系数5乘(7)式,得20y+40z=195,以(5)式四次减之,得36z=99,以9约之,得4z=11。【169】其方程如(c)所示。然后,用代入法,将中行与右行分别化成4y=17,4x=37,其方程如(d)所示。于是。可以看出,上述运算完全符合现代数学的矩阵理论:【170】《九章》方程术是世界上最早最完整的线性方程组解法。在国外,它最早出现在7世纪初印度婆罗门笈多(约公元598-?)的书中。在欧洲,则是法国数学家布丢在1559年提出的,比《九章》晚七八百年到1700年。
第三节 正负术
方程术会导致负数的产生。这里有两个途径,一是直除法消元过程中常出现小数减大数的情形,如方程章第3问;二是方程本身常出现负系数,如第4问,依题意列出5x-11=7y,移项便得5x-7y=11。因此《九章》引入了负数概念和正负术。刘徽说:“今两算得失相反,要令正负以名之。”(《九章算术·方程章注》)这是关于正负数的明确定义。《九章》给出:正负术曰:同名相除,异名相益,正无入负之,负无入正之。其异名相除,同名相益,正无入正之,负无入负之。
这是著名的正负数加减法则。同名、异名是现今之同号、异号。前四句讲减法,其意义是:若二数同号,则其差的绝对值是其绝对值之差:(±a)-(±b)=±(a-b),a≥b>0;(±a)-(±b)=【171】(b-a),00;负数没有与之对减的数,则为正数:0-(-a)=a,a>0。后四句是加法法则:(±a)+(【171】b)=±(a-b),a≥b>0;(±a)+(【171】b)=【171】(b-a),00;0+(+a)=a;0+(-a)=-a,a>0。
正负术最初只用于方程术,宋元之后才用于其他数学分支。以《九章》方程章第8问为例,列出方程为【172】。以右行上系数2乘中行,三度减右行;以右行上系数2乘左行,五度加右行,得【173】,以3约中行,得 【174】,以下的变换结果依次是:【175】→【176】→【177】。在这里多次应用了正负数加减法则。同时我们看到,尽管《九章》没有明确提出正负数乘除法法则,但实际上却实施了正负数乘除法运算。朱世杰在《算学启蒙》中首次提出了正负数乘法法则。
第四节 损益术
损益术是通过移项建立方程的方法。《九章》方程章说:“损之曰益,益之曰损。”用现今的话就是,在等式一端损,相当于在另一端益;在等式一端益,相当于在另一端损。有时是损益常数项,如方程章第2问:“今有上禾七秉,损实一斗,益之下禾二秉,而实一十斗;下禾八秉,益实一斗,与上禾二秉,而实一十斗。问上、下禾实一秉各几何?”方程最先是:【178】经过损益,变形为:【179】
有时既损益常数项,也损益未知数。如第4问:“今有上禾五秉,损实一斗一升,当下禾七秉;上禾七秉,损实二斗五升,当下禾五秉。问上、下禾实一秉各几何?”方程最先是:【180】经过损益,变形为:【181】
损益术还包括今之合并同类项。第11问是:“今有二马、一牛价过一万,如半马之价;一马、二牛价不满一万,如半牛之价。问牛、马价各几何?”方程最先是:【182】经过损益,得:【183】
第五节 互乘相消法
直除法消元显得繁琐,刘徽在方程章“牛羊直(同值)金”问中创造了互乘相消法。此问是“今有牛五、羊二,直金十两;牛二、羊五,直金八两。问牛、羊各直金几何?” 方程是:【184】刘徽用右行牛的系数5乘左行,又用左行牛的系数2乘右行,得【185】两行相减,得21y=20,y=20/21,这就是互乘相消法。刘徽说,以小推大,此种方法“虽四、五行不异也”,就是说,这是一种普遍方法。
可惜,刘徽的这种先进思想700多年间未引起数学家们的重视。贾宪更多地用互乘相消法为方程章题目作细草,有时互乘后先约简再相消,如方程章第5问:“今有上禾六秉,损实一斗八升,当下禾一十秉;下禾一十五秉,损实五升,当上禾五秉。问上、下禾实一秉各几何?”
列出方程:【186】
“互乘两行,皆十约之”,运用正负术相消得,4y=12,y=3,x=8
但在有的题目中,贾宪仍用直除法。因为在这些方程中,用直除法更简便些,必须因题制宜。
秦九韶则完全废止了直除法,全部使用互乘相消法。有时他在互乘前先求出两相乘数的公约数,约简后再互乘,显得更简捷。如《数书九章》“均货推本”问列出方程【187】欲以第一行消去第三行x的系数525,而525与第一行x的系数5有等数5,便以5约525,得105,便以105乘第一行,加第三行,得【188】第一、四行x的系数有公因子5,第二、三行y的系数有公因子3,但前者比后者大,故先约后者的系数。以3约33得11,约105得35,以11乘第三行,以35乘第二行,减第三行,得【189】便求出z的值。类此,依次求出y、x、u的值。
第六节 方程新术
刘徽在方程章“麻麦”问注中提出了方程新术。所谓方程新术,是通过各行相加减,借助某行消去其他各行的常数项及某些未知数,使每行中只剩下两个未知数,从而求出诸未知数的相与之率,就某一行,或利用今有术化成同为某物之数,或利用衰分术求解。麻麦问较繁琐,而雀燕问也使用了方程新术,谨以此为例。雀燕问是:今有5只雀、6只燕分别飞到一天秤的两端,雀轻燕重。若将1只雀与1只燕交换,天秤恰好平衡。已知5只雀6只燕共重1斤。问雀、燕一只重多少?方程是:【190】损益之,得【191】
第一行已无常数项,由此得出雀、燕的相与之率:x:y=4:3
将第二行化为x(或y)的关系,【192】。
在实际问题中,由于求诸未知数的相与之率较复杂,方程新术并不见得比直除法简便。如麻麦问刘徽用旧术运算需77步,用新术需124步。由此可见,他探讨新术的目的并不在于要推广这种方法,而是要告诉人们这样一个道理:必须深刻掌握数理,灵活运用数学方法,以解决数学问题。
第七章 高次方程数值解法
中国古代,求【193】,及【194】的正根(n=2、3、4、……)的方法都叫开方术,是最为发达的数学分支之一。汉唐千余年间,人们只能开正系数的平方、立方,宋元时代,发展为开任意有理系数的高次方。
第一节 开平方
《周髀》载陈子应用勾股定理测望太阳距离时要开平方,但无开方程序。《九章》少广章提出了世界上最早的开平方的完整抽象程序。刘徽认为,开平方的几何意义是已知一正方形面积求其边长。《九章》按四行布算,最上行准备放议得(即根),下面一行布置被开方数,称为实,第三行是法,最下一行是借一算,与实的个位相齐,这相当于【195】,如(1)。将借算自右向左隔一位移一步,至不能移为止。根的位数比移的步数多1,实是个位、十位数,借一算根是一位数,实是三位、四位数,借算移一步,根是二位数,依此类推,如(2)。议所得(根的第一位)【197】,以【197】乘借算【198】得【199】,为法,应使A÷【199】得到【197】后余数小于【200】。刘徽认为这一步是以【197】乘法【199】减A,即【201】,如(3)。其几何意义是从面积为A的正方形中减去以【202】为边长的正方形黄甲,如图27。【196】再求第二位得数。撤去借算,将法【199】加倍,为定法,如(4)。刘徽认为其几何意义是与黄甲相连的两朱幂的长【202】,此朱幂的宽是第二位得数。将定法向右退一位,为【203】,再在下行个位上布置借一算,自右向左隔一位移一步,显然只有n-1步,即【204】。求根的第二位得数相当于求减根方程【205】的正根,如(5)。议得【206】,以【206】乘借算10(2n-2),加定法,得【207】,使得【208】的商是【206】,而其余数小于【209】。刘徽认为这一步相当于求出余实【210】,如(6)。其几何意义是从正方形余下部分中减去两朱幂及以【211】为边长的小正方形黄乙。若余实仍不为零,则继续开方。显然,这种方法对任何自然数的开方都是适用的。《九章》的例题中被开方数有的高达10位,如【212】。如果被开方数是分数,则通分后,分子、分母分别开方,然后相除,如:【213】
图27 开平方术示意
如果分母不可开(无理数),则以分母乘实,开方之后,除以分母:【214】《九章》少广章说:“若开之不尽者为不可开,当以面命之。”这里“不可开”大体相当于无理数。《九章》之后,对开方不尽的情形,有人以【215】表示【216】的近似值,刘徽指出,这个值太小,应有不等式【217】。刘徽又提出,为得到【216】的精确近似值,求出整数部分之后,应继续开方,“求其微数”,以十进分数逼近【216】。他说:“退之弥下,其分弥细,则朱幂虽有所弃之数,不足言之也。”《九章算术·少广章注》)刘徽的思想不仅开十进小数之先河,而且是保证我国圆周率计算在世界上领先千余年的先决条件,此是后话。
《孙子算经》、《张丘建算经》未提出抽象的开方程序,但从题目的开方细草中可以看出,它们在求得根的一位得数后,不再撤去借算,而是保留借算,改称下法,退二位求减根方程。它们还吸取了刘徽的改进。北宋贾宪提出立成释锁法,继承了以往开方法的长处并加以改进,与现今方法无异。
一次项系数不为零的开方称为带从开方。《九章》勾股章有需开带从平方的例题(见第五节),而未有开方程序。但是,上述开方程序中从求第二位得数起,便是开带从方。
第二节 开立方
《九章算术》也提出了开立方的完整程序。
开立方术曰:置积为实。借一算步之,超二等。议所得,以再乘所借一算为法,而除之。除已,三之为定法。复除,折而下。以三乘所得数置中行。复借一算置下行。步之,中超一,下超二等。复置议,以一乘中,再乘下,皆副以加定法。以定法除。除已,倍下、并中从定法。复除,折下如前。开之不尽者,亦为不可开。若积有分者,通分内子为定实。定实乃开之,讫,开其母以报除。若母不可开者,又以母再乘定实,乃开之。讫,令如母而一。
图28 开立方术示意
明白了开方术,这段文字并不难理解。这里作五行布算:议得(根)、实、法、中行、借算。刘徽以立体模型给开立方以直观几何解释。开立方是已知一正方体的体积求其边长。设其根为n+1位,以根的一位得数的立方【218】减实A,便是从体积为A的正方体中减去以【219】为边长的正方体。【220】便是其剩余部分,它由三种七块立体组成,如图28(1)。第一种是角上的小正方体,如图28(2),其体积为【221】;第二种是三块扁状小长方体,每一块体积为【222】,如图28(3);第三种是三块条状小长方体,每一块体积为【223】,刘徽称为三长廉,如图28(4),廉是边的意思。因此要求x1相当于求减根方程的正根,这实际上是一个开带从立方问题。【224】《隋书·律历志》说祖冲之“又设开差幂、开差立,兼以正负参之,指要精密,算氏之最也。”钱宝琮认为,开差幂是开长、宽有差的长方形面积,开差立是开长、宽、高有差的长方体体积。设宽x,长x+k,高x+l,则x(x+k)=A或【225】是带从平方,就是开差幂。而x(x+k)(x+l)=A或【226】就是开差立。如果k、l有一个或两者都是负数,则【227】、x的系数可能为负,这就是要兼以正负参之的原因所在。就是说,祖冲之已能解决负系数带从平方、立方问题。可惜他的著作已失传。目前所传最早开带从立方问题出现在王孝通《缉古算经》中,他解决了形如【228】及【229】的求解问题,其中a、A>0,b≥0。后者通过两次开平方解决。贾宪的立成释锁立方法是与现今无异的开立方法。
第三节 贾宪三角
贾宪把他的开方法叫立成释锁。释锁形象地比喻开方像打开一把锁;而唐宋历算家把载有一些计算常数的算表称为立成;立成释锁法就是借助某种算表进行开方的方法。贾宪把开方法的立成称作开方作法本源,今天称之为贾宪三角。 目前中学课本与若干小册子把它称作杨辉三角,是以讹传讹。实际是,它保存在杨辉书中,而杨辉明确指出“贾宪用此术”。
贾宪三角是将整次幂二项式【230】的展开式的系数摆成的三角形,如图29。这个图下面有五句话:“左衺乃积数,右衺乃隅算,中藏者皆廉。以廉乘商方,命实而除之。”(《永乐大典》所引《详解〈九章〉算法》)前三句说明了贾宪三角的结构:最外左右斜线上的数字,分别是【231】展开式中积【232】和隅算【233】的系数,中间的数二,三、三,四、六、四,……分别是各廉。后两句说明了各系数在立成释锁方法中的作用。二,三、三分别在开平方、开立方中的作用,上面已经看到了;四、六、四,五、十、十、五,……分别在开四次、五次……方中的作用与此类似。贾宪三角的提出,表明贾宪实际上已把立成释锁方法推广到高次方,这是一个重大突破。
图29 贾宪三角
贾宪三角之后附有造法,即“增乘方求廉法:列所开方数,以隅算一,自下增入前位,至首位而止。复以隅算如前升增,递低一位求之。”(《永乐大典》所引《详解〈九章〉算法》)贾宪还给出了求六次方各廉的细草,如第110页所示。最后得到六、十五、二十、十五、六便是六次方的各廉。显然,用这种方法可以求出任意高次方的各廉。换言之,贾宪已能把贾宪三角写到任意多层。【表】后来,朱世杰用两组平行线将贾宪三角的数联结起来,如图30,说明贾宪三角还成为朱世杰解决高阶等差级数求和问题的主要工具。
15世纪,阿拉伯数学家阿尔·卡西用直角三角形表示了同样意义的三角形。16、17世纪欧洲许多数学家都提出过这个三角形,其中以帕斯卡最有名,被称作帕斯卡三角。
第四节 增乘开方法
贾宪创造的增乘开方法,又称递增开方法,把开方技术推进到一个新的阶段。目前中学数学教科书中的综合除法的程序与此相类似。它主要用随乘随加代替一次使用贾宪三角的各廉。我们以开1336336的四次方(古代称为三乘方)为例说明之。
图30 朱世杰改进的贾宪三角
递增三乘开方法草曰①:(1)置积为实。别置一算名曰下法于实末。常超三位,约实。〔一乘超一位,三乘超三位。万上定实。〕 (2)上商得数〔三十〕;乘下法,生下廉〔三十〕;乘下廉,生上廉〔九百〕;乘上廉,生立方〔二万七千〕。命上商,除实〔余五十二万六千三百三十六〕。(3)作法:商第二位得数。以上商乘下法,入下廉〔共六十〕;乘下廉,入上廉〔共二千七百〕;乘上廉入方〔共一十万八千〕。(4)又乘下法入下廉〔共九十〕;乘下廉入上廉〔共五千四百〕。又乘下法入下廉〔共一百二十〕。(5)方一、上廉二、下廉三、下法四退〔方一十万八千,上廉五千四百,下廉一百二十,下法定一。〕。(6)又于上商之次续商置得数〔第二位:四〕。以乘下法入下廉〔一百二十四〕;乘下廉入上廉〔共五千八百九十六〕,乘上廉并为立方〔一十三万一千五百八十四〕。命上商,除实,尽,得三乘方一面之数[如三位立方,依第二位取用]。 其计算草图应为:【234】这是有文字记载的第一个开四次方程序,它比立成释锁法简便。这个开方如果不用随乘随加,便要利用贾宪三角第五层,计算4·3,【235】,【236】。同时,它的程序化比立成释锁法更强,只要作好第一步布位定位,掌握退位步数,那么以商自下而上递乘递加,每低一位而止,对任何次方都相同。开方次数愈高,商的位数愈多,数字愈大,就愈显得这种方法优越。后来在阿拉伯地区产生了同样的方法。而在欧洲,直到上世纪初才先后由鲁菲尼与霍纳创造出来,故称为鲁菲尼—霍纳法或霍纳法,比贾宪晚800余年。
注释:
①此为法、草合一,原以大、小字区别,今将草放入方括号中。以下的(1)、(2)、(3)、……是作者加的,以便与下图相应。
第五节 正负开方术
祖冲之求解负系数方程的资料已佚。现存史料中,第一次突破方程系数为正的限制的是北宋12世纪数学家刘益。据杨辉《田亩比类乘除捷法》所引,刘益《议古根源》中提出了形如【237】,【238】,【239】的方程,可见他还突破了首项系数是1的限制。刘益为解决这些负系数方程,提出了益积开方术和减从开方术。杨辉说刘益的方法“实冠前古”。这两种方法尚不是增乘方法,后者与增乘开方法比较接近。
秦九韶提出正负开方术,把以增乘开方法为主体的高次方程数值解法发展到十分完备的程度。他的方程有的高达10次,方程系数在有理数范围内没有限制。他规定实常为负,这实际上是求解如下方程的正根:【240】秦氏正负开方术的完整表述在《数书九章》田域类“尖田求积”问中:已知两尖田合成的一段田地,大斜39步,小斜25步,中广30步,求其面积(如图31)。此题归结为开玲珑三乘方①:【241】
图31 尖田
其开方过程是:
(1)列出方式,开玲珑三乘方。【242】
(2)上廉超一位,益隅超三位,商数进一位。上廉再超一位,益隅再超三位,商数再进一位,上商八百为定。【243】(3)以商生隅,入益下廉,以商生下廉消从上廉,以商生上廉,入方,以商生方,得正积,乃与实相消。以负实消正积,其积乃有余,为正实,谓之“换骨”。【244】(4)一变,以商生隅,入下廉。以商生下廉,入上廉内,相消。以正负上廉相消。以商生上廉,入方内,相消。以正负方相消。【245】
(5)二变:以商生隅,入下廉;以商生下廉,入上廉。【246】(6)三变:以商生隅,入下廉。【247】
(7)四变:方一退,上廉二退,下廉三退,隅四退;商续置。【248】(8)以方约实,续商置四十,生隅入下廉内。以商生下廉,入上廉内。以商生上廉,入方内。以续商四十命方法,除实,适尽。所得商数八百四十步为田积。【249】秦九韶指出“后篇效此”,表明这是一种普遍方法。这个开方中,出现常数项由负变正的情况,秦九韶称为“换骨”。开方过程中,还会出现常数项绝对值增大的情形,秦氏称为“投胎”。秦氏提出这些情形,目的在于指示人们遇到反常情形不要裹足不前,而是要继续下去。
正负开方术是13世纪宋元数学家的共识。南宋的杨辉,金元的李冶、朱世杰对此都有贡献。李冶、朱世杰不再规定实常为负,而是可正可负,并对常数项变号或绝对值增大的情况也提出了处理意见。数学家们还提出了之分法。如《益古演段》第40题需求【250】的正根,就原式开方,开不出准确根,李冶便以22.5乘常数项23002,得517545,一次项系数不变,二次项系数变为-1,再开方,即求【251】的正根。这实际上是作变换y=22.5x,求出y=465,因此,【252】。朱世杰把这种方法推广到高次方。《四元玉鉴》的“和分索隐”门第13问的开方式是【253】。他开得正根的整数部分8之后,尚有余式【254】便以5763乘常数项,5762乘一次项系数,576乘二次项系数,三次项系数不变,以1为首项系数,开方式化成【255】这实际上进行变换【256】,开方得y=384,因此【257】,【258】。之分法又称作连枝同体术,是非常巧妙的。
注释:
①若方程的奇次幂系数皆为零时,则称之为“开玲珑某乘方”。
第六节 根与系数的关系
刘益《议古根源》根据已知“直田积864步,只云长阔共60步”,连续提出两个问题,一是“欲先求阔步得几何?”一是“欲先求长步,问得几何?”显然此二问都归结到同一方程【259】,它的两个根x1=24,x2=36便分别为这两个问题的答案。但是刘益和杨辉都未能从这一例子认识到二次及其以上的方程可能有多于一个的正根,并进而讨论根与系数的关系问题。直到清中叶中国古典数学复兴,汪莱、李锐才考虑这个问题,取得了杰出的成就。汪莱1801年在《第五册算书》中首先提出二次方程可能有一个或二个正根,三次方程可能有一个、二个或三个正根。秦九韶、李冶书中的方程有许多不只一个正根,不加分析地取其中一个为答数是不应该的。例如,形如【260】的几个方程如有正根,便不只一个,而【261】的正根可能是一个,可能是三个。他还明确指出,如x1,x2,x3是其正根,则【262】。
汪莱初步考虑了正根个数与方程系数正负号的关系。汪莱从六安将《第五册算书》寄给扬州焦循,次年焦循携书到杭州与李锐共同研究。李锐将汪莱对二、三次方程正根的研究推广到任意高次方程,提出了三条判别根与系数关系的法则,把这项研究提高到一个新的阶段。然而三条中第二条有语病,汪莱举出了一个反例。他们对这一问题继续研究。后来李锐撰《开方说》,提出:方程系数符号变化一次的常有一个正根,变化二次的有二正根,变化三次的有三正根或一正根,变化四次的有四正根或二正根。正根个数比符号变化次数少时,所缺少的根就是汪莱所说的“无数”,它们必定成对,没有缺一根的情形。李锐这一判别法则与欧洲17世纪笛卡儿的符号法则是等价的。
李锐还承认方程的根可以是负数,用增乘开方法求负根的方法与求正根一致。他认为,求出一个根之后,可用此根将方程降低一次以求第二个根,如此逐步降幂,而不必就原方程开方。李锐还首次提出方程有重根的问题。至此,中国的方程论形成了一门比较完整的学科
第八章 天元术与四元术
用开方术解决实际问题,包括列出开方式和开方术两方面的内容。上节介绍了开方术,现在来谈开方式造术。宋元时代,开方式造术发展成为一种专门的学问,叫做天元术。后来又发展出二元术、三元术与四元术。
第一节 天元术与四元术的历史
在第五节,我们已经看到了刘徽怎样从实际问题中抽象出二次方程的。唐王孝通列出了更复杂的方程。如《缉古算经》第15问,已知勾股相乘幂【263】,弦多于勾【264】,求勾a、股b、弦c。他的术文是关于勾a的开方式:【265】。自注的列开方式的思路是:【266】但是,怎样想到由【267】开始变换,是个十分技巧的问题。不过,从刘徽到王孝通,其共同的方法是将两数相乘看成面积,三数相乘看成体积,通过出入相补原理解决。这种方法在宋朝发展为演段法,它实际上是通过等积变换列出方程的方法。在这里,未知量与已知量一样投入图形变换和数量运算。问题在于,对未知数没有统一的符号,显得繁琐。天元术以一个符号“天元一”表示未知数,通过天元多项式的运算相消,列出开方式,开方式造术有了规范的程序。
由于史料散佚,天元术的早期发展情况尚不清楚。祖颐在《四元玉鉴·后序》中谈到了天元术的发展概况。他说:“平阳(今山西临汾)蒋周撰《益古》,博陆(今河北蠡县)李文一撰《照胆》,鹿泉(今河北获鹿县)石信道撰《钤经》,平水(今临汾)刘汝谐撰《如积释锁》,绛(今山西新绛县)人元裕细草之,后人始知有天元也。”就是说,天元术通过从蒋周到元裕一系列数学家的不断努力,才完善起来。可惜这些著作除《益古》的部分题目保存在李冶的《益古演段》中外,其余已荡然无存。这里未提到李冶,其中元裕是不是李冶至友元好问,学术界亦未有定论。无论如何,李冶时代,天元术已是北方金元数学家的共同财富,《测圆海镜》、《益古演段》只是目前传世的使用天元术的最早的著作。李冶的笔记中对天元术的发展情况则谈得更为详细。他年轻时在东平县看到一算经,以人表示常数项,居中,仙、明、霄、汉、垒、层、高、上、天表示未知数的9、8……、1次幂,居人之上,地、下、低、减、落、逝、泉、暗、鬼表示未知数的-1、-2……8、-9次幂,居人之下。后来他看到的天元术著作取消了表示各幂次的汉字,而以天元表示正幂,在上,地元表示负幂,在下,其幂次按位置值表示,在上距天元愈远,幂次愈高,在下距地元愈远,幂次愈低。太原彭泽、彦材作了重大改革,他们交换天元、地元的位置,采取天元在下,地元在上的方式。我们知道,开方图式中常数项在上,之下依次排列未知数的一次、二次……幂,彦材的改革使天元术表示法与开方图式一致,简便得多了。李冶《测圆海镜》表明,洞渊已经有了立天元一的明确步骤。李冶对天元术的重大贡献在于,他取消了表示负幂的地元,只用一个“元”字表示未知数的一次幂,或用“太”表示常数项,其他幂次皆按位置值给出,进一步简化了天元术的表示和运算。他在《测圆海镜》中仍取正幂在上,负幂在下的方式,在《益古演段》中则颠倒过来,正幂在下,负幂在上,后来的数学家都采取这种方式。
人们把天元术与方程术结合起来,便创造了二元术、三元术与四元术,即二元、三元、四元联立高次方程组的解法。祖颐在叙述了天元术的历史之后,接着写道:“平阳李德载因撰《两仪群英集臻》兼有地元,霍山(今霍县)邢先生颂不高弟刘大鉴润夫撰《乾坤括囊》,末仅有人元二问。吾友燕山朱汉卿先生演数有年,探三才之赜,索《九章》之隐,按天、地、人、物立成四元。”(《四元玉鉴·后序》)李德载、刘大鉴的著作亦失传。不过此处地元不再表示负幂,而是与天元并列的另一未知数。三元术则以天、地、人为未知数,四元术以天、地、人、物为未知数。
第二节 天元术
天元术的基本思想是:首先立所求的量为天元一,根据问题的条件给出两个等价的天元式,使两个天元式相减,便得到一个开方式,即一个方程式。后面这个过程叫做如积相消。而如积释锁则包含了列方程、解方程的完整过程。显然,立某量为天元一相当于今天的设某某为未知数x,天元式相当于今天的含未知数的多项式。如按《测圆海镜》的记法【268】便表示多项式【269】。我们以《测圆海镜》卷七第2问为例展示天元术。此题是:假令有圆城一所,不知周径。或问丙出南门直行一百三十五步而立,甲出东门直行十六步见之。问径几何?又法曰:二行相乘得数,又自之,为三乘方实。并二行步,以乘二行相乘数,又倍之为从。二行相并数以自乘于上,又二行相减数自乘减上位为第一廉。第二廉空。一益隅。益积开之得半径。
如图32,设南行EA为k,东行FB为l,则此即要求解方程【270】
图32 测圆
李冶用天元术推导这个四次方程的方法是:
草曰:立天元一为半城径,副置之。上加南行步得【271】为股,下位加东行步得【272】为勾。勾股相乘得【273】为直积一段,以天元除之得【274】为弦。以自之,得【275】为弦幂,寄左。乃以勾自之,得【276】,又以股自之,得【277】,二位相并得【278】,为同数。 与左相消,得【279】。开益积三乘方,得一百二十步,即半城径也。
这段文字用现代符号翻译出来就是:设x为圆城半径OC。x+k为股OA,x+l为勾OB。由于AB·OC=OA·OB,即AB·x=(x+k)(x+l),故弦【280】,【281】又【282】,两者相减,两端乘以x2,即得上述开方式。
由此可见,在李冶时代已完全掌握了天元多项式的加、减、乘法及除数为天元单项式的除法,掌握了指数的乘除法运算及合并同类项等运算。由于天元式的表示采取位置值制,故乘除数为天元幂的乘除法,只要上下移动“元”字或“太”字即可。
第三节 四元术
四元术就是多元高次方程组解法,它实际上包括四元术表示法和四元消法两部分内容。
四元术的表示方法是常数项居中,旁记一“太”字,天元幂系数居下,地元居左,人元居右,物元居上,其幂次由它们与“太”字的位置关系决定,不必记出天、地、人、物等字,距“太”字愈远,幂次愈高,相邻两元幂次之积记入每行列的交叉处,不相邻之元的幂次之积无相应位置,寄放在夹缝中,如图33。一个筹式相当于现今的一个方程式,二元方程组列出两个筹式,三元方程组列出三个筹式,四元方程组列出四个筹式。这是一种分离系数表示法,对列出高次方程组与消元都很方便。可惜由于平面只有上、下、左、右四个方向,最多只能列出四元,高出四元的方程组便无能为力。
图33 四元布列
四元术的核心是四元消法,即将四元四式消成三元三式,再消成二元二式,最后化成一元一式,即高次开方式。朱世杰《四元玉鉴》卷首的“假令细草”中列出了天元术、二元术、三元术和四元术的范例。谨将第3问“三才运元”的消法解释如下。【表】问题是:“今有股弦较除弦和和与直积等。只云勾弦较除弦较和与勾同,问弦几何?”即已知(a+b+c)÷(c-b)=ab,(-a+b+c)÷(c-a)=a,及勾股定理a2+b2=c2,求c。其解法是:(见第133—135页)
由于朱世杰的文字过于简括,“互隐通分相消”所引用罗士琳细草,只是提供一个大体说明消元过程的例子。至于是否符合朱氏原意,不得而知。事实上,许多学者有不同的细草。
第九章 垛积招差
垛积是高阶等差级数求和问题。一个级数若每相邻两项之差不相等而每相邻两差的差都相等,则称为二阶等差级数。同样,就明白了三阶、四阶等差级数。二阶及其以上的等差级数常称为高阶等差级数,是宋元数学的一个重要分支。而其渊源应追溯到等差级数。
第一节 等差级数
人们很早就认识了等差级数。《九章算术》均输章有几个等差级数的例题。如“今有金箠长五尺,斩本一尺重四斤,斩末一尺重二斤。问次一尺各重几何?”《九章》用衰分术求解,刘徽则根据首项、末项、项数先求出公差:【283】,【284】,公差【285】。刘徽实际上已掌握了【286】。此题为递减,公差应为d=-1/2。“九节竹”问也是一个等差级数问题。这些问题都未给出求和公式。盈不足章良驽二马问则更进了一步。在求良、驽二马15日所行里数时,使用了公式【287】,这是已知等差级数的首项a1,公差d,项数n,而求前n项和的公式。不过,描述上述公式的文字是《九章》术文还是刘徽注,学术界有不同意见,尚难定论。刘徽又把上述公式写成:【288】这可以看作是上述公式的推导。
等差级数问题在《张丘建算经》中又得到多方面发展。卷上第22问:“今有女善织,日益功疾,初日织五尺。今一月,共织九匹三丈。问日益几何?术曰:置今织尺数,以一月日而一,所得倍之,又倍初日尺数减之,余为实。以一月日数,初一日减之,余为法,实如法得一。”设首项a1,项数n,前n项和Sn,则公差【289】。第23问:“今有女子不善织,日减功迟,初日织五尺,末日织一尺,今三十日织讫。问织几何?术曰:并初末日织尺数,半之,余,以乘织讫日数,即得。”设初日织a1,末日织an,此即前n项和公式【290】。卷上第32问、卷中第1问都是已知首项a1,公差d及各项平均值m,求项数n=〔2(m-a1)+d〕÷d。卷下第36问是已知公差1,首项1,则n项和【291】
第二节 隙积术
等差级数问题在宋元时代发展为高阶等差级数求和问题。这一课题的开创者是北宋大科学家沈括。沈括研究了《九章算术》的刍童等立体体积公式(见第四节),认为已相当完备,但是,没有求隙积的方法。隙积就是积之有隙者,如将一颗颗棋子、坛、罐等垒起来,如图34,虽然有刍童的形状,但因有刻缺空隙,若用刍童术求积,数值偏小。沈括便提出了隙积术。设隙积的上底宽a1,长b1,下底宽a2,长b2,高n层,且a2-a1-b2-b1=n-1,沈括提出的隙积术是:【292】
图34 隙积
即刍童状隙积中物件的个数比刍童体积多n/6×(a2-a1)。隙积术实际上是一个二阶等差级数求和问题:【表】南宋杨辉《详解九章算法》以各种菓子垛比类《九章》的立体。其中刍童形菓子垛与沈括的隙积术相同。四隅垛(比类方锥、阳马)的求积公式为:【293】方垛(比类方亭)的求积公式为:【294】
三角垛(比类鳖臑)的求积公式为:【295】
不难看出,这都是二阶等差级数求和问题。同时,可以看出,在沈括的隙积术中令 a1=b1=1,a2=b2=n,便是杨辉的四隅垛公式;令a1=b1,a2=b2,便是杨辉的方垛公式;令a1=1,b1=2,a2=n,b2=n+1,便成为两个三角垛之和【296】两端除以2,便得到杨辉的三角垛公式。
第三节 垛积术与招差术
杨辉的二阶等差级数求和解法通常叫垛积术,朱世杰则把垛积术的研究推向最高峰。《四元玉鉴》卷中“茭草形段”、“如象招数”和卷下“果垛叠藏”三门33题中,都是已知高阶等差级数总和求其项数的问题。为了解决这些问题,需要按照各自的求和公式列出一个高次方程来,然后用“正负开方术”求其根。在这些问题中,朱世杰提出了一系列三角垛公式:茭草垛(或称茭草积):【297】
三角垛(或落一形垛):【298】
撒星形垛(或三角落一形垛):【299】
三角撒星形垛(或撒星更落一形垛):【300】
三角撒星更落一形垛:【301】
这些公式在朱世杰的书中似乎没有条理,但是,从它们之中,后一个被称作前一个的落一形垛,即前一个的前n项之和是后一个的第n项来看,它们在朱世杰的头脑中是形成了一个完整的体系的。我们再看它们与贾宪三角的关系:上述各级数依次是贾宪三角第2、3、4、5、6条斜线上的数字,而其和恰恰是第3、4、5、6、7条斜线上的第n个数字,这就是为什么朱世杰用两组平行于左、右两斜的平行线将贾宪三角的各个数联结起来。可见,朱世杰已经掌握了三角垛的一般公式:【302】显然,当p=1,2,3,4,5时便是上述三角垛公式。朱世杰还解决了以四角垛之积为一般项的一系列高阶等差级数求和问题,以及岚峰形垛等更复杂的级数求和问题。
郭守敬(公元1231—1316年)、王恂(公元1235—1281年)等元朝天算学家曾用招差术推算日、月的按日经行度数。朱世杰也把用招差术解决高阶等差级数求和问题发展到十分完备的程度。“如象招数”门第5问附录中:“(今有官司)依立方招兵,初招方面三尺,次招方面转多一尺,得数为兵。今招一十五方,问招兵几何?”“术曰:求得上差二十七、二差三十七、三差二十四、下差六。求兵者:今招为上积,又今招减一为茭草底子积为二积,又今招减二为三角底子积为三积,又今招减三为三角落一积为下积。以各差乘各积,四位并之,即招兵数也。”设日数为x,f(x)为第x日共招兵数,则逐日招兵数为【303】,当x=1,2,3,4……时,f(x)之值及逐级差如下:【表】上差△=27,二差△2[平方]=37,三差△3[立方]=24,下差△4[4次方]=6。而上积为n,二积为以(n-1)为底子的茭草垛积【304】,三积为以(n-2)为底子的三角垛积【305】,下积为以(n-3)为底子的三角落一形垛积【306】。因此,求f(n)相当于列出招差公式【307】这一公式与现代通用形式完全一致。欧洲在格雷果里(J·Gregory)的著作(公元1670年)中才首先对招差术加以说明,而普遍公式则出现在牛顿的著作(公元1676年)中。朱世杰指出招差公式的各项系数恰恰依次是各三角垛的积,是他的突出贡献。上式中,n=15,则【308】即为15日共招兵人数。
第十章 不定问题
不定问题在中国古代数学中占有重要地位。我们分勾股数组、五家共井、百鸡问题、同余式问题等几个方面阐述这一成就。
第一节 勾股数组
勾股定理【309】本身就是一个不定问题,显然它有无数组解。满足该定理的有理数组(a,b,c)通常称为勾股数组,西方称为毕达哥拉斯数组。如何表示出勾股数组,是两千多年来数学家们关注的问题。公元前五、六世纪,毕达哥拉斯设一奇数为【310】,m为正整数,那么【311】就是勾股数组;后来柏拉图以【312】为勾股数组公式,欧几里得以【313】或【314】表示勾股数组,显然这些表达式并未给出全部勾股数组。
世界上第一次给出勾股数通解公式的是《九章算术》勾股章“二人同所立”问。问题是:“今有二人同所立。甲行率七,乙行率三。乙东行,甲南行十步而邪东北与乙会。问甲、乙行各几何?”显然甲行c+a,乙行b,而(c+a):b=m:n=7:3。《九章》先求出南行率即勾率【315】,东行率即股率b=mn,邪行率即弦率【316】。然后根据已知南行步数,用今有术求出东行和邪行步数。这里勾、股、弦三率便是勾股数的通解表示式,其为通解的条件是m、n为互素的奇数,《九章》的两个例题都符合此条件。国外被认为最先给出勾股数组通解公式的是希腊的丢番都,其公式【317】,是若令【318】,则可得到与《九章》等价的公式。丢番都大约与刘徽同时,比《九章》晚了三、四百年。
《九章算术》已知勾股差与弦求勾股的问题后来也发展为勾股差率与弦率的形式:【319】这是勾股数组的通解公式的另一种形式,其条件为p、q为互素奇数,【320】是一个完全平方数。秦九韶曾用该公式成功地解决了遥度圆城的十次方程造术。美国数论专家迪克森(Dick-son)1894年提出了勾股数组的另一种形式:【321】。显然,其雏形便是《九章》勾股章已知弦勾差、弦股差求勾、股、弦的公式。
第二节 五家共井
《九章算术》方程章有一五家共井题:“今有五家共井,甲二绠不足,如乙一绠;乙三绠不足,以丙一绠;丙四绠不足,以丁一绠;丁五绠不足,以戊一绠;戊六绠不足,以甲一绠。如各得所不足一绠,皆逮。问井深、绠长各几何?”依术列出方程是:【322】《九章》按方程术解,得出x=265,y=191,z=148,u=129,υ=76,w=721。此题六个未知数,只能列出5行方程,消元的结果,应得到υ=76/721w。刘徽指出,《九章》的解法是“举率以言之”,实际上只给出了最小的一组正整数解。此是不定问题,是中国数学史上首次明确提出不定问题。
第三节 百鸡问题
《张丘建算经》也提出了一个不定问题,即世界数学史上著名的百鸡问题:“今有鸡翁一直钱五,鸡母一直钱三,鸡雏三直钱一,凡百钱买鸡百只。问鸡翁、母、雏各几何?”依术列出方程:【323】《张丘建算经》认识到这是一个不定方程,给出了(4,18,78),(8,11,81),(12,4,84)三组解,是其全部正整数解。《张丘建算经》提示了解法:“术曰:鸡翁每增四,鸡母每减七,鸡雏每益三,即得。”这个提示太简括,其具体解法后人有若干猜测。钱宝琮的理解是:以3乘第2行,减第1行,化成7x+4y=100,其中4y与100都是4的倍数,因此x应是4的倍数:x=4t,那么y=25-7t,z=75+3t,令t=1,2,3,则x=4,8,12,y=18,11,4,z=78,81,84。因为必须求正整数解,故x不能为0或负数,也不能大于12,只能有以上三组解。后来人们一直未找到百鸡问题的一般解法,直到19世纪中叶,宋元数学复兴之后,骆腾凤《艺游录》、时曰醇《百鸡术衍》用大衍求一术求解,才找到一般解法。
百鸡问题对阿拉伯、欧洲数学产生了巨大影响。13世纪意大利菲波那契的《算法之书》,15世纪阿拉伯的阿尔·卡西的《算术之钥》都有百鸡问题,显然源于中国。
第四节 大衍总数术与大衍求一术
中国民间历来流传着“秦王暗点兵”、“韩信点兵”、“鬼谷算”、“隔墙算”、“剪管术”等数字游戏,实际上都是一种方法,它导源于《孙子算经》“物不知数”问,秦九韶称作“大衍总数术”,即今之一次同余式组解法。同余是数论中的一个重要概念,给定一个正整数m,如果二整数a、b,使a-b被m整除,就称a、b对模m同余,记作a≡b(modm)。“物不知数”题是:“今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”这是世界数学史上首次提出同余式问题。用现代符号表示,此题是求满足同余式:N≡2(mod 3)≡3(mod 5)≡2(mod 7)的最小正整数N。《孙子算经》的解法是N=2×70+3×21+2×15-2×105=23。
其根据是:70=2×5×7≡1(mod 3),21=3×7≡1(mod 5),15=3×5≡1(mod 7)。 可见《孙子算经》的作者在一定程度上明白了下面这个定理:若Ai(i=1,2……)是两两互素的正整数,Ri同余式解法还来自于历法制定中上元积年的计算。中国古代的历法,要假定远古有一个甲子日,那一年的冬至与十一月的合朔都恰好在这一日的子时初刻。有这么一天的年度叫上元,从上元到制定历法的本年的总年数叫上元积年。已知本年冬至时刻及十一月平朔时刻,求“上元积年”在数学上便是同余式问题。但是,“历家虽用,用而不知”(《数书九章序》),在中国数学史也是世界数学史上第一次提出一次同余式组完整解法的是南宋数学家秦九韶。
秦九韶的方法称为大衍总数术。他将诸ki叫作乘率,诸Ai叫作定数,【326】叫作衍母,【327】叫衍数,而方法的核心是大衍求一术,即求乘率ki的方法。为叙述方便,我们将【328】记为G,将Ai记为A,ki记为k,求一术变成在A、G互素的情况下求满足kG≡1 (modA)的k值。秦九韶首先提出,如果G>A,若G≡g(modA),0秦九韶把大衍总数术不仅用于历法推算,而且用于建筑、行程、粟米交易、库额利息,甚至断案等问题。谨以“余米推数”问为例。有一米铺投诉被盗去三箩筐米,不知数量。左箩剩1合,中箩剩14合,右箩剩1合。后捉到盗米贼甲、乙、丙。甲说,当夜他摸得一只马杓,一杓杓将左箩的米舀入布袋;乙说,他踢着一只木履,将中箩的米舀入布袋;丙说,他摸得一只漆碗,将右箩的米舀入布袋。三人将米拿回家食用,日久不知其数,遂交出作案工具。量得一马杓容19合,一木履17合,一漆碗12合。问共丢失的米数及三人所盗的米数。这是求同余式组的解N。
N≡1 (mod 19)≡14(mod 17)≡1 (mod 12)
由于19、17、12两两互素,便为定数。衍母为19×17×12=3876,衍数依次是17×12=204,19×12=228,19×17=323。求分别满足k1×204≡1 (mod 19),k2×228≡1 (mod 17),k3×323≡1(mod 12)的乘率k1,k2,k3。由于衍数分别大于定数,便用定数减衍数,得奇数14,7,11。问题变成求分别满足k1×14≡1 (mod 19),k2×7≡1 (mod 17),k3×11≡1 (mod 12)的k1,k2,k3。求k1的程序:【331】求k2的程序:【332】
求k3的程序:【333】
于是 N≡1×15×204+14×5×228+1×11×323(mod3876)≡22573(mod3876)=3193.
每箩米数3193合,甲、丙盗米各为3192合,乙盗米3179合,共盗米9563合。
注释:
①【325】
第十一章 无穷小分割思想
返回书籍页