非线性方程的求解-毕业论文.docx
非线性方程的求解 The Solution of Nonlinear Equations 目录绪论11 非线性方程的简介11.1非线性方程的背景11.2非线性方程的概念22非线性方程求解的数值方法32.1 二分法32.1.1 二分法的思想32.1.2 二分法的推理32.1.3 二分法的应用42.2 牛顿迭代法42.2.1 迭代法42.2.2 牛顿迭代法62.3 改进牛顿迭代法102.3.1 改进牛顿迭代法的背景102.3.2 改进的法113 牛顿迭代法和改进牛顿迭代法的应用123.1 牛顿迭代法的应用123.2 改进牛顿迭代法的应用194 结束语22参考文献23致谢24I非线性方程的求解摘要非线性方程在实际问题中经常出现,很多熟悉的线性模型都是在一定的条件下由非线性问题简化得到的;非线性方程在科学与工程计算中的地位越来越重要,因此研究和探讨非线性方程求解的方法是非常有必要的。 本文先开始介绍了非线性方程的概念及相关背景,再着重描述了非线性方程的求解的一些常用分法:二分法,迭代法,牛顿迭代法。在这些方法当中,牛顿迭代法是求解非线性方程的一种非常常用并且有效的方法,但是牛顿迭代法有一些应用条件限制,因此提出了改进的牛顿迭代法;针对非线性方程的实例用上面提到的方法进行了数值计算,并且比较了牛顿迭代法和改进牛顿迭代法,最后介绍了牛顿迭代法在实际生活中的应用。【关键字】非线性方程 牛顿迭代法 数值计算The Solution of Nonlinear EquationsAbstractNonlinear equations appear frequently in practical problems, and many of us are familiar with the linear model obtained by the simplified nonlinear problems under certain conditions. Nonlinear equations are becoming more and more important in science and engineering computing. Therefore, it is necessary to study and explore ways to solve nonlinear equations.Firstly, this paper recommend some basic conceptions and related background ofnonlinear equations, then describe some methods of the solution of nonlinear equation emphatically, such as: the procedure of dichotomy, the iterate method, the Newton iterate method and the improved Newton iterate method. It is very useful and effective to use the Newton iterate method for solving nonlinear equations in those methods. However, we propose the improved Newton iterate method because of the limits of the Newton iterate method. Also ,we have carried on the approximate calculation to the nonlinear equations and have compared the Newton iterate method with the improved Newton iterate method,In the end ,we introduce the application of the Newton iterate method in the real life.【Key words】The nonlinear equations The Newton iterate method Numerical computationIII绪 论非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定的条件下由非线性问题简化得到的,为得到更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱.非线性问题的数学模型有无限维的如微分方程,也有有限维的.从线性到非线性是一个质的变化,方程的性质有本质的不同,求解方法也有很大的差别.非线性方程的数值解法在实际中有广泛的应用,特别是在各种非线性问题的科学计算中更显出它的重要性,而且,随着计算机的广泛应用,有更多的领域涉及到非线性方程的求解问题,例如,动力系统,非线性有限元问题,非线性力学问题,还有非线性最优化与非线性规划问题等,因此,研究 性方程的解法就具有重要的实际意义.由于非线性方程的复杂性,在解法上除了极特殊的非线性方程外,直接法几乎是不能使用的,这需借助于二分法,迭代法来求解.从计算的经验来看, Newton迭代法用来求非线性方程一种非常常见的而且是有效的方法,所以我们有必要研究和探讨求解非线性方程的Newton方法.1 非线性方程的简介1.1 非线性方程的背景非线性科学是一门研究非线性现象共性的基础学科.它是自20世纪六十年代以来,在各门以非线性为特征的分支学科的基础上逐步发展起来的综合性学科,被誉为本世纪自然科学的“第三次革命”.非线性科学几乎涉及了自然科学和社会科学的各个领域,并正在改变人们对现实世界的传统看法.科学界认为:非线性科学的研究不仅具有重大的科学意义,而且对国计民生的决策和人类生存环境的利用也具有实际意义.由非线性科学所引起的对确定论和随机论、有序与无序、偶然性与必然性等范畴和概念的重新认识,形成了一种新的自然观,将深刻地影响人类的思维方法,并涉及现代科学的逻辑体系的根本性问题.非线性问题的“个性”很强,处理起来十分棘手.历史上曾有过一些解非线性方程的“精品”,但与大量存在的非线性方程相比,只能算是“凤毛麟角”.因此,长期以来,对非线性问题的研究一直分散在自然科学和技术科学的各个领域.20世纪六十年代以来,情况发生了变化.人们几乎同时从非线性系统的两个极端方向取得了突破:一方面从可积系统的一端,即从研究多自由度的非线性偏微分方程的一端获得重大进展.如在浅水波方程中发现了“孤子”,发展起一套系统的数学方法,如反散射法,贝克隆变换等,对一些类型的非线性方程给出了解法;另一方面,从不可积系统的极端,如在天文学、生态学等领域对一些看起来相当简单的不可积系统的研究,都发现了确定性系统中存在着对初值极为敏感的复杂运动.促成这种变化的一个重要原因十计算机的出现和广泛应用.科学家们以计算机为手段,勇敢地探索那些过去不能用解析方法处理的非线性问题,从中发掘出规律性的认识,并打破了原有的学科界限,从共性、普适性方面来探讨非线性系统的行为.在数值计算中,非线性问题也是经常遇到的一类难题,特别是非线性方程组的数值求解问题构成了非线性科学的一个重要组成部分.1.2非线性方程的概念非线性方程,就是因变量与自变量之间的关系不是线性的关系,一般可以表示为.这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等.下面这些例子就是常见的非线性方程:,.非线性方程可分为两类:一类是多项式方程,这类方程可以定义为:,.另一类是非多项式方程,它不能用多项式方程的形式表示,没有固定的形式.求解第一类多项式方程,现在已经有了比较成熟的理论和方法.现在比较常用的一种数值方法是迭代法,能通过迭代次数的增加,从而越来越接近方程的解,求解第二类非多项式方程,是现在数学领域中的一个重点研究方向.一般来说,求解此类方程是采用随机搜索的办法.2非线性方程求解的数值方法2.1 二分法2.1.1 二分法的思想 二分法是区间迭代法的一种.它是重复运用零点存在性定理,每次将区间压缩一半且其中一个区间至少包含一个根,逐步缩短区间,直至最终区间长度满足一定的精度要求为止.2.1.2 二分法的推理先考察有根区间a,b,取中点,将它分成两半,然后进行根的搜索,即检查与是否同号,如果确系同号,说明所求的根在的右侧,这时令=,=.否则必在的左侧,这时令=,=,不管出现哪一种情况,新的有根区间,的长度仅为,的一半.对压缩了有根区间,又可施行同样的过程,即用中点=(+)/2,以将区间,再分为两半,然后通过根的搜索判定所求根在的哪一侧,从而又确定一个新的有根区间,长度是,的一半.如此反复二分下去,可得出一系列有根区间,其中每个区间都是前一个区间的一半,因此的长度=,当时趋向零,就是说,如果二分过程无限地继续下去,这些区间最终必将收缩于一点,该点显然就是所求的根.每次二分后,设取有根区间的中点作为根的近似值,则在二分过程中可以获得一个近似根的序列 ,则该序列必以根为极限.不过在实际计算时,不可能完成这个无限过程,其实也没有这个必要,因为数值分析的结果允许带有一定的的误差,由于: 只要二分足够多次(即k充分大)便有,这里为预定的精度.2.1.3 二分法的应用例1 求方程在区间内的一个实根,要求准确到小数点后第二位.解 这里,而,取的中点=将区间二等分,由于,即与同号,故所求的根在右侧,这时应=,而得到新的有根区间,.如此反复二分下去,二分过程无需贅述,现在预估所要二分的次数,按误差估计式,只要二分6次,便能达到预定的精度: 二分法计算结果如表1所示表1二分法的计算结果数据表k01.01.51.25-11.251.375+21.3751.3125-31.31251.3438+41.34381.3281+51.32811.3203-61.32031.3242-2.2 牛顿迭代法2.2.1 迭代法2.2.1.1 迭代法的思想迭代法是一种逐步逼近的方法,首先选定方程f( x) = 0 的一个近似根后,然后使用某个固定公式,反复校正这个根的近似值,使之逐步精确化,一直到满足给定的精度要求为止.2.2.1.2 迭代法的推理设方程有根,把方程化为等价方程 这种方程是隐式的,不能直接得出它的根,但如果给出根的某个猜测值代放在的右端,可得,然后,又可取作为猜测值,进一步得到,如此反复迭代如果按公式 确定的数列有极限,则称迭代过程式收敛,这时极限值显然就是方程的根.这种迭代法又称为不动点迭代法,由迭代过程所产生的数列并不都是收敛于某个数,与迭代方程的选取有关.2.2.1.3 迭代法的误差公式定理1 假定函数满足下列条件: 对任意,有 存在正数,使对任意,有 则迭代过程对任意初值均收敛于方程的根,且有如下误差估计式: 证明 由式有 据此反复递推得,于是对任意正整数,有:,在上式中令,注意到,即得,证毕.2.2.1.4 迭代法的局部收敛性定理2 设为方程的根,在的邻近连续且,则迭代过程在邻近具有局部收敛性.证明 由连续函数的性质,存在的某个邻域R:,使对任意成立。此外,对任意,总有,这是因为于是,依据定理1可以断定,迭代过程对任意初值均收敛,证毕.2.2.2 牛顿迭代法2.2.2.1 牛顿迭代法的背景牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要.2.2.2.2 牛顿迭代法的推导 通过Taylor 进行理论推导设是f(x)=0的一个近似根,把f(x)在处泰勒展开:若取前两项近似代替,则=0的近似线性方程为设,设其根为,则的计算公式为 这即是牛顿法,称为牛顿迭代公式,其迭代函数为 通过微分中值定理进行推导设是根的某个预测值,用迭代公式校正一次得,而由微分中值定理有其中介于与之间.假定改变不大,近似地取某个近似值L,则由得 可以期望,按上式右端可得是比更好的近似值.将每得到一次改进值算作一步,并用和分别表示第步的校正值和改进值,则加速迭代计算方案可表述如下:校正 改进 其中中的可以是多种多样的,当时,相应的迭代公式是 运用前面的加速技巧,对于迭代过程,其加速公式如下:记,上面两个式子可以合并写成这种迭代公式通常称为简化的公式,其相应的的迭代函数是 需要注意的是,由于是的估计值,而,这里的实际上是的估计值,如果用代替式中的,则得如下形式的迭代函数:,其相应的迭代公式 这就是著名的公式.2.2.2.3 法的几何解释对于方程,如果是线性函数,则对它求根是容易的,法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种线性方程来求解.图1 与轴的交点图方程的解可解释为曲线与轴的交点的横坐标,(见图1)取初值,将在初值处作Taylor展开得:取线性部分作为的近似值,有:,若,则有类似,我们也能得到:这样一直下去,我们可以得到迭代序列由上面图可知,过曲线上横坐标为的点引切线,并将该切线与X轴的交点的横坐标坐为新的近似值,类似这样下去,我们可以得一个切线方程:这样求得的值必满足式,由于这种几何背景,牛顿法亦称切线法.2.2.2.4 法的局部收敛性对于一种迭代过程,为了保证它是有效的,需要肯定它的收敛性,同时考察它的收敛速度.所谓收敛速度,是指在接近收敛过程中迭代误差的下降速度.定义 设迭代过程收敛于方程的根,如果迭代误差当时成立下列渐近关系式 则称该迭代过程是阶收敛的,特别地,=1时称为线性收敛,时称为超线性收敛,=2时称为平方收敛.定理 对于迭代过程,如果在所求根的邻近连续,并且 则该迭代过程在点邻近是阶收敛的.证明 由于,据定理可以马上断定迭代过程具有局部收敛性.再将在根处展开,利用条件,则有注意到 ,由上式可得 因此对于迭代误差,有,这表明迭代过程确实是阶收敛的,证明完毕.由上面定理可知,迭代过程的收敛速度依赖于迭代函数的选取.对于公式,其迭代函数为,假定是的一个单根,即,则由上式知,于是依据定理可以断定,法在根的邻近是平方收敛的.2.3 改进牛顿迭代法2.3.1 改进牛顿迭代法的背景牛顿迭代法是解非线性方程最著名和最有效的方法之一,在单根附近它比一般的迭代法有较快的收敛速度,但要注意它也有缺点:首先,它对迭代初值选取要求严格,初值选取不好,可能导致不收敛;其次,它迭代一次要计算的值,这势必会增加计算量,因此在这种情况下,提出改进的法是非常有必要的.2.3.2 改进的法2.3.2.1 Simpson牛顿法和几何平均牛顿法设是方程的根,是可导函数,显然成立:若将上面公式的右端积分用数值积分Simpson公式近似代替,并令,则得: 上式中用近似代替,整理得迭代格式 中关于是隐式的,这给求解带来很大的麻烦,为了避免隐式求解,我们提出了预估校正式: 式是牛顿迭代法与Simpson公式相结合得到的,我们称它为Simpson牛顿方法.若将右端用代替,则得到迭代格式: 当时,取,当,取,为了避免隐式求解,同样给出了式的预估校正式: 的取法同上,我们称为几何平均牛顿方法.2.3.2.2 牛顿下山法牛顿法的缺点之一是其收敛依赖与初值的选取,若偏离所求根较远,则牛顿法可能发散,为了防止迭代发散,我们对迭代过程再附加一项条件,既具有单调性: 满足这项要求的算法称为下山法.将法与下山法结合起来使用,即我们可在下山法保证函数值稳定下降的前提下,用法加快了收敛速度.为此将法计算结果: 与前一步的近似值适当加权平均作为新改进值,即其中称为下山因子,在希望挑选下山因子时,希望使单调性条件成立.注意:下山因子的选择是个逐步探索的过程,从开始反复将减半进行试算,如果能定出值使单调性条件成立,则称下山“成功”,与此相反,如果在上述过程中找不到使条件成立的下山因子,则称“下山失败”,这时需另选初值重算.3 牛顿迭代法和改进牛顿迭代法的应用3.1 牛顿迭代法的应用例1应用牛顿迭代法和,分别导出求的迭代公式并求 解 方程的牛顿迭代法公式: , 由题意知: 牛顿迭代法公式 =再由题意知:牛顿迭代法公式=结论分析:本题主要应用牛顿迭代法公式和极限还有导数的相关知识,计算量大,着重考察对迭代法思想的深刻理解.例2方程在附近有根,把方程写成3种不同的等价形式:(1) ,对应迭代格式:(2) ,对应迭代格式:(3) ,对应迭代格式:讨论这些迭代格式在时的收敛性.若迭代收敛,试估计其收敛速度,选一种收敛格式计算出附近的根到4位有效数字.(收敛速度的计算和比较)解 ,故方程在上有根.,故方程在上有根.,故方程在上有根.对于迭代式(1):, 而,故该迭代局部收敛,且收敛速度为1阶的.对于迭代式(2):在上,又故该迭代在上整体收敛,且收敛速度为一阶的.对于迭代式(3):在1,2上的值域为,该迭代式不收敛取迭代式,取初值进行计算,其结果如下:,结论分析:这题主要是分析迭代法的收敛性,以及收敛速度,着重考察对迭代法的收敛性和收敛速度的理解.例3 用Newton迭代法解方程在初值附近的根,并用数学工具软件Matlab求解.(保留小数点后6位有效数字)解 由题意知初值,由牛顿迭代公式:代入其中得 ,迭代4次后,发现与近似相等,因此得到此方程在初值一个根为1.732051(保留小数点6位有效数字)下面用数学工具软件Matlab求解.首先牛顿迭代法在matlab的计算程序如下:Function x=newton(fname,dfname,x0,e)%用途:Newton迭代法解非线性方程f(x)=0%格式:x=nanewton(fname,dfname,x0,e)x 返回数值解.%fname和dfname分别表示f(x)及其导函数%f(x),x0为迭代初值,e精度要求(默认为1e-4)If nargin<4,e=1e-4: %精度默认为1e-4EndX=x0;x0=x+2*e; %使while成立,进入whiler后x0得到赋值While abs(x0-x)>eX0=x;X0=x;X=x0-feval(fname,x0)/feval(dfname,x0);End然后,当时,f(x)>0, f(x)>0,即f(x)恒正,所以根在0,2,我们先用图解法找初值,在用Newton法程序newton.m求解.Fun=inline('x3+x2-3*x-3');Fplot(fun,0,2);Grid on;图2求根图由图2可知方程有唯一正根在1.6,1.8之间,我们取初值1.5代入Newton程序之中得:Dfun=inline('3*x2+2*x-3');Format long;Newton(fun,dfun,1.5,1e-4);Format short;Ans=1.73205080756888而用Matlab本身的函数fzero求出来的结果为:Format longFzero(inline('x3+x2-3*x-3'),1.5);Format shortAns=1.73205080756888例4 住房是居民消费一个主要部分,大部分人选择银行按揭贷款,然后在若干年内逐月分期还款,如果你借了10万,还款额一定超过10万.解 设贷款总额为,贷款期限为N个月,采取逐月等额方式偿还本息,若为第K个月的欠款数,a为月还款,r为月利率,我们得到那些列迭代关系式那么因此得到月还款计算公式:下面是一则报纸在2002年2月12日第二版上一则房产广告:表2房贷数据表建筑面积总价30%首付70%按揭月还款85.9836万10.8万30年1436元不难算出,你向银行总共借了25.2万,30年内共要还款51.96万,约为当初借款的两倍,这个案例中的贷款年利率的是多少呢?我们根据a=0.1436, =25.2,N=360,由上a的求解公式得到:我们令 则该问题转化为非线性方程求解的问题,令求出r我们先用Newton函数求解,在Matlab中输入如下程序:常识1:r应比当时活期存款月利率略高一些,我们用当时的活期存款利率为0.0198/2作为迭代初值,为剔除r=0这个没有意义的根,我们对稍作变形;Clear;Fun=inline(25.2*(1+r)360/0.1436-(1+r)360-1)/r,r)Fun=Inline function;Fun(r)=25.2*(1+r)360/0.1436-(1+r)360-1)/rDfun=inline(25.2*360*(1+r)359/0.1436-(360*(1+r)360-1)/(r2);R=newton(fun,dfun,0.0198/2,1c-4);R=12*r;然后求到结果:R=0.0553由是得到年利率为5.53%.下面我们用Matlab中的fzero函数检验一下:Clear;Fun=inline(25.2*(1+r)360-(1+r)360-1)/r*0.1436,r)Fun=Inline functionFun(r)=25.2*(1+r)360-(1+r)360-1)/r*0.1436R=fzero(fun,0.0198/2);R=12*rR=0.05533.2 改进牛顿迭代法的应用例1 求方程的根,取初值(要求用三种方法)解 (1)由题意知,用牛顿法公式:将代入,迭代5次得:(2)由Simpson牛顿法,将代放,迭代3次得,. (3)由几何平均牛顿法,将代放,迭代3次得,.结论分析:此题应用三种方法求解非线性方程,其中应用牛顿迭代法,迭代5次得到了所要的结果,而用别的两种方法:Simpson牛顿法和几何平均牛顿法只迭代了三次就得到了结果,说明这两种方法加快了迭代速度.例2 求方程的根解 (1) 取,用牛顿法公式:将代入,得:,.迭代三次得到的结果有6位有效数字.(2)改用作为迭代初值,用牛顿法公式迭代一次得这个结果反而比更偏离了所求的根(3)用牛顿下山法解,通过对逐取半进行试算:当时,得:由牛顿下山法得: 此时有而,且与些类推,应用牛顿下山法公式得,由计算,得即为的近似值.结论分析:我们由上面的解法可知,当取的初值离非线性方程的近似根比较近时,可用牛顿迭代法较快的求得近似解,收敛速度较快,但是当取的初值离近似根比较远时,牛顿迭代法有可能发散,因此这时就可用牛顿下山法,即保证迭代过程是收敛的,又可保证了用牛顿迭代法加快收敛速度.4结束语本文主要讨论求解非线性方程的解法,比如二分法,迭代法与牛顿迭代法及改进牛顿迭代法的相关知识.在迭代法中以Newton法最实用,最有效,它在单根附近具有二阶收敛,但应用时要选取较好的初始近似才能保证迭代收敛,当然Newton法也有缺点,每次迭代都得去计算,以及其收敛依赖与初值的选取,若偏离所求根较远,则牛顿法可能发散,为了克服这些缺点,可使用简单Simpson牛顿法,几何平均牛顿法与Newton下山法,大大减化了计算量与提高了效率.Newton法是求解非线性方程组的最基础、最常用、最重要的方法,很多新方法是以它的变型或改进的,我们仍然具有研究的价值.随着计算机技术大规模在数值计算的应用,因此我们可以通过编程语言在计算机上求解那些计算量繁琐,计算步骤重复的非线性方程,大大方便了我们,也加深计算机这门学科与数学的联系.参考文献1 李庆扬,王能超,易大义.数值分析(第4版)M.北京:华中科技大学出版社.2006.2 清华大学,北京大学计算方法编写组.计算方法M.北京:科学出版社.2002.3 华东师范大学数学系. 数学分析(第3 版)M.北京:高等教育出版社,2006.4 李庆扬,关治,白峰杉. 数值计算原理M .北京:清华大学出版社,2005.5 张诚坚,高健,何南忠. 计算方法M .北京:高等教育出版社,2002.6 吴勃英等.数值分析原理M.北京:科学出版社, 2003.7 HUAN G Ting - zhu , BAI Zhong - zhi. Bounds for spect ral radii of Iterative mat ricesJ . Joural of applied sciences ,1998 ,16 (3) :269 275.23