《九章算术》开方算法系统及其与现代计算机程序的比较

上传人:公**** 文档编号:497776590 上传时间:2023-12-27 格式:DOCX 页数:9 大小:33.15KB
返回 下载 相关 举报
《九章算术》开方算法系统及其与现代计算机程序的比较_第1页
第1页 / 共9页
《九章算术》开方算法系统及其与现代计算机程序的比较_第2页
第2页 / 共9页
《九章算术》开方算法系统及其与现代计算机程序的比较_第3页
第3页 / 共9页
《九章算术》开方算法系统及其与现代计算机程序的比较_第4页
第4页 / 共9页
《九章算术》开方算法系统及其与现代计算机程序的比较_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《《九章算术》开方算法系统及其与现代计算机程序的比较》由会员分享,可在线阅读,更多相关《《九章算术》开方算法系统及其与现代计算机程序的比较(9页珍藏版)》请在金锄头文库上搜索。

1、九章算术开方算法系统及其与现代计算机程序的比较傅海伦中国古代把开方法与二次、三次或高次数字方程解法统称为开方术。九章算术少广章提出了完整的开平方、开立方程序。一、九章算术的开平方程序开平方相当于求x2=N的根。开方术曰:置积为实。借一算,步之,超一等。议所得,以一乘所借一算为法,而以除。除已,倍法为定法。其复除,折法而下。复置借算,步之如初,以复议一乘之,所得副以加定法,以除。以所得副从定法。复除,折下如1刖。九章算术给出的术文言简意赅,在开方筹式中每一个数字的记数和入算,都严格遵循位置值制。由于其中明确指出:复除,折而下、复除,折下如前,可见,这是一个具有一般性的机械化算法程序。即是说,不论

2、平方根有多少位数,反复实施这一程序都可求出来。所以,在此有必要对一般情形下的这种机械化程序加以剖析。以总的来说,开平方的程序是:首先作四行的筹式布算,即从上到下的四行依次布以方根(议所得)、被开方数(实)、法和借算,然后机械反复实施超、议、除、折的四大步骤,直至适尽、结束。超:将置于个位上的借算自右向左隔一位移一步,移到与实的最高位(N为奇数位)或次高位(N为偶数位时)对齐为止。若移n位,这相当于将方程进行倍根变换,变换后的方程为102nx12=N的形式,如图(2)议:议得根的第一位得数为a1除:以ai乘借算102n得102nai作为法。置于第三行,使得以法除实时,恰得商ai,而余数Ni小于1

3、02nai2:N+(10%)=ai+Ni/102才。折:撤去借算,将法102na1加倍为定法,并将定法向右退一位为2?102n一耳如图(4),再在下行个位上布置借一算。为求方根第二位得数,需要重复以上四个步骤:超:将置于个位上的借算自右向左隔一位移一步,显然祇需移n1步,即1q2如图(5),这又相当于求方程102n2x22+2?102n1aix2=N10V的正根。议:复议得根的第二位得数a2除:以女乘借算102n2,加定法,得法:2?102n1ai+1C2n2a2,同样以法除实:(N10262)+(2?102n1ai+102n2a)=a2+N2/(2?102n1ai+102n2a2),余数N2

4、小于(2?102n1ai+102n2a2)a2o如图(6),如果余数为零,则开方完毕;若不为零,则折下如前,按接下来的程序步骤继续开方。通过对上述筹算开平方法的分析,可知它是根据下面这些公式来逐步推求的,与现代的迭代法完全一致,可以通过计算机来实现:(a+b)2=a2+(2a+b)b(a+b+c)2=(a+b)2+2(a+b)+cc(a+b+c+d)2=(a+b+c)2+2(a+b+c)+dd开平方术文还有对几种特殊情况的处理方法:一是被开方数为分数的情形,要通分内子,若分母是平方数,则分子、分母分别开方,然后相除,即A=b/a,方三、份/瓜;若分母不可开,则以分母乘分子,开分子后再以分母除,

5、即A=b/a,A=at/a2,/=向/4。二是开方不尽的情形,这相当于求无理根,称为不可开,求出整数部分后,以面命之。显然,有了以上程序和处理方法,任何一个数可以开平方,说明九章算术的术文更具有抽象性、普适性。二、九章算术的开立方程序开立方相当于求x3=N的根。九章算术开立方术是:开立方术曰:置积为实。借一算,步之,超二等。议所得,以再乘所借一算为法,而除之。除已,三之为定法。复除,折而下。以三乘所得数,置中行。复借一算,置下行。步之,中超一,下超二等。复置议,以一乘中,再乘下,皆副以加定法。以定除。除已,倍下,并中从定法。复除,折下如前。对比开平方术和开立方术,不难看出,两种开方的程序基本上

6、是统一的,都是通过筹式布算,机械重复地实施超、议、除和折的四大步骤,直至适尽,结束。祇是在开立方的筹式布算中,在法和借算之间增加一行中行,使原来的四行布算变为五行布算,并在相应的超和折的步骤中有细小的变动或调整。对被开方数是分数、或分母不是立方的情形,处理的方式也与开平方相同,这说明,开立方的程序也具有抽象性和普适性,适应于任何一个数的开立方。根据术文,对一般情形下的开立方及其与开平方程序过程的比较可见下表:商10nai10na1/n10al/n10a1实开平万NNN-102na2N102na12N-102nH2(N102naj(2?102n1a12+102n&)&开立方N103na3N-10

7、3na13N-103na3(N-103na13)-(3?103n1a12+3?103n2a+廿一)吃法开平方102nH2?102nH八八)/n一12?10ai2?102nA+102n2a2开立方103nH23?103nH2,-3n1210a3?103n1a12+3?103n2a氏+103n3a22中行开平方无开立方3a13?103n2a23?103n2a1(副)3?103n2aa借算开平方1102n102n102n2102n2开立方1/C3n101103n3103n3(副)103n3a22(1)(3)(5)(6)通过分析上面的筹算开立方方法,可知它是根据下面这些公式来逐步推求的,也和现代迭代的

8、方法完全一致,可以在计算机上实现。(a+b)3=a3+(3a2+3ab+b2)b(a+b+c)3=(a+b)3+3(a+b)2+3(a+b)c+c2c(a+b+c+d)3=(a+b+c)3+3(a+b+c)2+3(a+b+c)d+d2d国古代数学将二次方程x2+bx+c=0(b,c0)的正根称为开带从平方法,九章算术虽未给出开带从平方和开带从立方的程序,但在开平方、开立方术中从求根的第二位得数起,就是求形如x2+bx+c=0,x3+bx2+cx=d(b,c,d0)正根的程序,这实际上已蕴含了开带从平方和立方的程序。三、刘徽对开方程序的改进刘徽借助于出入相补原理,对九章算术提出的开平方、开立方程

9、序给予了几何解释,从而证明了开方程序的合理性,使人们对开方术有了直观性的感性认识。同时,在阐述其几何意义时,对开方程序也作了改进,以往论者认为刘徽的开方程序与九章算术相同,刘徽祇是解释了九章算术的程序,郭书春先生经过研究指出二者起码有两个重大不同4:首先,九章算术中,在议得某位得数(设第一位a,第二位b)后,算出法(或定法)(开平方是a及2a+b;开立方是a2及3a2+3ab+b2),再以法除实,使得实如法恰恰得到该位得数。此除即除法,显然它还保留了开方由除法脱胎出来的痕迹,刘徽注开方术,是将除实解释成以议得数乘法(开平方a2及(2a+b)b;开立方是a3及(3a2+3ab+bjbM实,止匕除

10、,即减,这无疑是程序上的一大进步。其次,九章算术的借算在每使用一次后都要撤去,议得次一位得数时要复置借算(开立方时还要置中行)于个位,再步之如初,显得繁琐,刘徽则保留借算,将中行与借算先与法对齐,再通过退位求减根方程,显得简洁。总之,通过刘徽的改进,程序已简便得多,已基本接近于现今方法,后来在孙子算经,张丘建算经及贾宪黄帝九章算经细草中得到了继承和发展。四、九章算术开方术与现代计算机程序比较以上开平方、开立方、开带以平方和立方程序,共同构成中国古代数学一个独立的算法程序系统开方算法程序系统,九章算术中开方算法程序不仅表现了中国筹算所能达到的高超的算技,而且充份体现了中国数学思想方法的构造性和算

11、法机械化特色。九章算术与这种开方算法具有的代数意义密切相关。由于在开方中都借用一根算筹分别表示未知量的平方和立方,这样就赋予用算筹所列出的开方式以x2=N和x3=N两个代数方程,于是,开平方和开立方的各个演算步骤也就成了解方程求正根的过程。事实上,要保证算法程序机械化的一步步进行,并在有限步骤内求得方根的每一位得数,从这种二项二次方程或二项三次方程的代数意义上,都要经过以下三个步骤:I.首先把方程进行倍根变换,估计方根的第一次近似值。II.每求得方根的一次近似值之后,就利用二项展开式将原方程进行减根变换,求出一个新的方程。III.在新方程中,以定法除实即以一次项系数常数项,求得方程的下一次近似

12、值。因此这些步骤可循环重复,直至根值全部求出或求到一定数位为止。以开立方为例,相当于求方程f(x)=x3N=0的正根,估计方根的第一次近似值为xi,依II进行减根变换,即令x=xi+y则y=xxi代入f(x)=0得y3+3xiy2+3xi2y=Nxi3再依IIIy=(N-x13)/3xi2=-f(xi)/f(xi),因此,x=xif(xi)/f(xi)。这就是九章算术开方术的演算原理,而这一原理,恰好是Newton-Raphson解法的根据则。现代计算机要用牛顿一类的迭代法求一元二次或三次方程f(x)=0的根,首先大致估计出根的范围,给一个初值X0,然后可用迭代公式Xi+i=Xi-f(Xi)/

13、f(Xi)依次求出第i+1次根的近似值x+1,设是所求根的精度要求,若满足|(Xi+1Xi)/X叫,则xi+1的值即为所求方程的解,否则再求xi+2=xi+1-f(xi+1)/f(xi+1),然后判断|(xi+2xi+1)/Xi+20即可,然而计算时此值若不在根附近,则往往不收敛。2)在计算机中用到一阶微分f(x),但它可能无法得到或不易列出。这两点在一般的开方中还并不明显,但在以后的高次方程的数值解中则显得突出。1 .对初始值的选取,由于一开始倍根,使得初始值很容易估计在根附近,并由于采用位置值制,使这一步极易做到。由于这个方法被一直保留到高次方程的数值解中,因而在高次方程数值解中亦不存在问题。2 .一阶微分即减根方程中的方,由于是用二次展开式系数得到,所以很好计算,在以后的高次方程数值解中,因用增乘方法得到,亦是很易计算与表达的。计算机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号