《非线性方程的数值解法 (2)优秀PPT.ppt》由会员分享,可在线阅读,更多相关《非线性方程的数值解法 (2)优秀PPT.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、非线性方程的数值解法第一页,本课件共有55页历史背景历史背景 代数方程的求根问题是一个古老的数学问题。理论上,代数方程的求根问题是一个古老的数学问题。理论上,次代数方程在复数域内一定有次代数方程在复数域内一定有 个根个根(考虑重数考虑重数)。早在。早在1616世纪世纪就找到了三次、四次方程的求根公式,但直到就找到了三次、四次方程的求根公式,但直到1919世纪才证明大世纪才证明大于等于于等于5 5次的一般代数方程式不能用代数公式求解,而对于超次的一般代数方程式不能用代数公式求解,而对于超越方程就复杂的多,如果有解,其解可能是一个或几个,也可越方程就复杂的多,如果有解,其解可能是一个或几个,也可能
2、是无穷多个。一般也不存在根的解析表达式。因此需要研究能是无穷多个。一般也不存在根的解析表达式。因此需要研究数值方法求得满足一定精度要求的根的近似解。数值方法求得满足一定精度要求的根的近似解。第二页,本课件共有55页求方程求方程 几何意义几何意义基本定理基本定理 如果函数如果函数 在在 上连续,且上连续,且则至少有一个数则至少有一个数 使得使得 ,若同时,若同时 的一阶的一阶导数导数 在在 内存在且保持定号,即内存在且保持定号,即 (或或 )则这样的则这样的 在在 内唯一。内唯一。abx*第三页,本课件共有55页1 1 二分法二分法 /*Bisection Method*/原理:原理:若若 f
3、Ca,b,且,且 f(a)f(b)0,则,则 f 在在(a,b)上至上至少有一实根。少有一实根。基本思想:基本思想:逐步将区间分半,通过判别区间端点函数值的符号,逐步将区间分半,通过判别区间端点函数值的符号,进一步搜索有根区间,将有根区间缩小到充分小,从而求进一步搜索有根区间,将有根区间缩小到充分小,从而求 出满足给定精度的根出满足给定精度的根 的近似值。的近似值。以以此此类类推推第四页,本课件共有55页终止法则?终止法则?abx1x2abWhen to stop?或或不能保证 x 的精度x*2xx*第五页,本课件共有55页 二分法算法给定区间a,b,求f(x)=0 在该区间上的根x.输入:a
4、和b;容许误差 TOL;最大对分次数 Nmax.输出:近似根 x.Step 1 Set k=1;Step 2 Compute x=f(a+b)/2);Step 3 While(k Nmax)do steps 4-6 Step 4 If|x|TOL,STOP;Output the solution x.Step 5 If x*f(a)0,Set b=x;Else Set a=x;Step 6 Set k=k+1;Compute x=f(a+b)/2);Go To Step 3;Step 7 Output the solution of equation:x;STOP.第六页,本课件共有55页3、
5、由二分法的过程可知:由二分法的过程可知:4、对分次数的计算公式:对分次数的计算公式:1、2、令令误差误差 分析分析第七页,本课件共有55页解解:例例1 1:用二分法求方程用二分法求方程 在区间在区间 上的上的根,误差限为根,误差限为 ,问至少需对分多少次?,问至少需对分多少次?第八页,本课件共有55页简单简单;对对f(x)要求不高要求不高(只要连续即可只要连续即可).无法求复根及无法求复根及偶重根偶重根收敛慢收敛慢 注:注:用二分法求根,最好先给出 f(x)草图以确定根的大概位置。或用搜索程序,将a,b分为若干小区间,对每一个满足 f(ak)f(bk)0 的区间调用二分法程序,可找出区间a,b
6、内的多个根,且不必要求 f(a)f(b)0。优点优点缺点缺点第九页,本课件共有55页2 迭代法的理论迭代法的理论 /*Theory of Iteration Method*/f(x)=0 x=g(x)(迭代函数)(迭代函数)等价变换等价变换思思路路从一个初值从一个初值 x0 出发,计算出发,计算 x1=g(x0),x2=g(x1),xk+1=g(xk),若若 收敛,即存在收敛,即存在 x*使得使得 ,且,且 g 连续,则由连续,则由 可可知知 x*=g(x*),即,即x*是是 g 的不动点,也就是的不动点,也就是f 的根。的根。看起来很简单,令人有点看起来很简单,令人有点不相信,那么问题是什么
7、不相信,那么问题是什么呢?呢?如何判定这种方法是如何判定这种方法是收敛的呢?收敛的呢?f(x)的根g(x)的不动点一、不动点迭代一、不动点迭代 /*Fixed-Point Iteration*/第十页,本课件共有55页xyy=xxyy=xxyy=xxyy=xx*x*x*x*y=g(x)y=g(x)y=g(x)y=g(x)x0p0 x1p1 x0p0 x1p1 x0p0 x1p1x0p0 x1p1几何意义几何意义第十一页,本课件共有55页例例2:已知方程已知方程 在在 上有一个根(正根)上有一个根(正根)下面选取下面选取5 5种迭代格式:种迭代格式:1 1、即即2 2、即即3 3、即即4 4、即
8、即5 5、即即第十二页,本课件共有55页取取计算结果如下:计算结果如下:法法1 1法法4 4法法3 3法法2 2法法5 5第十三页,本课件共有55页Lipschitz条件成立的充分条件考虑方程考虑方程 x=g(x),若若(I)当当 x a,b 时,时,g(x)a,b;(II)0 L 1 使得使得 对对 x a,b 成立。成立。则任取则任取 x0 a,b,由,由 xk+1=g(xk)得到的序列得到的序列 收敛于收敛于g(x)在在a,b上的唯一不动点。并且有误差估计式:上的唯一不动点。并且有误差估计式:(k=1,2,)且存在极限且存在极限连续时连续时第十四页,本课件共有55页证明:证明:g(x)在
9、在a,b上存在不动点?上存在不动点?令令有根有根 不动点唯一?不动点唯一?反证:若不然,设还有反证:若不然,设还有 ,则,则在在和和之间。之间。而而 当当k 时,时,xk 收敛到收敛到 x*?第十五页,本课件共有55页L 越 收敛越快可用 来控制收敛精度 小小注:注:条件(II)可改为 在a,b 满足Lipschitz条件,定理结论仍然成立(定理2.3)。第十六页,本课件共有55页 算法:不动点迭代给定初始近似值 x0,求x=g(x)的解.输入:初始近似值 x0;容许误差 TOL;最大迭代次数 Nmax.输出:近似解 x 或失败信息.Step 1 Set i=1;Step 2 While(i
10、Nmax)do steps 3-6Step 3 Set x=g(x0);/*计算 xi*/Step 4 If|x x0|TOL then Output(x);/*成功*/STOP;Step 5 Set i+;Step 6 Set x0=x;/*更新 x0*/Step 7 Output(The method failed after Nmax iterations);/*不成功*/STOP.当 x 很大时,此处可改为第十七页,本课件共有55页二、局部收敛性二、局部收敛性 /*Local Convergence*/(局部收敛性局部收敛性)若存在若存在 的不动点的不动点 的一个闭邻域的一个闭邻域 对
11、任意的对任意的 ,由迭代法,由迭代法 产生的序列产生的序列 均收敛于均收敛于 ,则称该迭代法局部收敛。,则称该迭代法局部收敛。注解注解:局部收敛性特点:局部收敛性特点:假定解存在,且肯定存在解的一个邻域,使假定解存在,且肯定存在解的一个邻域,使得对其中所有初始值,由迭代生成的序列收敛于解。得对其中所有初始值,由迭代生成的序列收敛于解。半局部收敛特点:半局部收敛特点:不知道解存在,但指出要从满足一定(通常很强)不知道解存在,但指出要从满足一定(通常很强)条件的初始值出发,保证收敛于某一(临近)解。条件的初始值出发,保证收敛于某一(临近)解。全局(整体)收敛:全局(整体)收敛:肯定在全空间或至少其
12、中一个很大的部分中,肯定在全空间或至少其中一个很大的部分中,无论从何处出发,都能保证收敛于一个解。无论从何处出发,都能保证收敛于一个解。第十八页,本课件共有55页 设设 为为 的不动点,的不动点,在在 的某邻域连续,的某邻域连续,且且 ,则迭代法,则迭代法(*)(*)局部收敛。局部收敛。证明:证明:因为因为 在在 的某邻域连续,的某邻域连续,存在邻域存在邻域即对即对则由则由定理定理2.32.3,迭代法,迭代法(*)(*)对对 收敛,即局部收收敛,即局部收敛敛.注注 第十九页,本课件共有55页例例3 3:已知方程已知方程 在在1.51.5附近有根,把方程写成三附近有根,把方程写成三种不同的等价形
13、式种不同的等价形式(1)(1)对应迭代格式对应迭代格式 ;(2)(2)对应迭代格式对应迭代格式 ;(3)(3)对应对应迭代格式迭代格式 ;判断迭代格式在判断迭代格式在 的收敛性,选的收敛性,选一种一种收敛格式收敛格式计算,精确到小数点后计算,精确到小数点后第二位第二位。解:解:(1 1),迭代格式收敛;,迭代格式收敛;(2 2),迭代格式收敛;,迭代格式收敛;(3 3),迭代格式发散。,迭代格式发散。选择选择(2)(2)计算计算 0 1 2 3 40 1 2 3 4 1.5 1.481 1.473 1.469 1.467 1.5 1.481 1.473 1.469 1.467第二十页,本课件共
14、有55页(收敛阶(收敛阶/*the order of Convergence*/)设序列设序列 收敛到收敛到 ,若存在实数,若存在实数 及常及常数数 ,使,使 ,则称序列则称序列 是是 阶收敛的,阶收敛的,称为渐近误差常数。当称为渐近误差常数。当 且且 时,时,称为线称为线性收敛,性收敛,为超线性收敛,为超线性收敛,时为平方或二次收敛时为平方或二次收敛.注注:(1 1)的大小反映了迭代法收敛的快慢,是收敛速度 的一 种度量;(2)设迭代函数 满足收敛定理的条件,则产生的序列满足 ,如果在 或 的邻域有 若取 ,必有 ,此时有第二十一页,本课件共有55页 设迭代法的迭代函数设迭代法的迭代函数 的
15、高阶导数的高阶导数 在不在不 动点动点 的邻域里连续,则式(的邻域里连续,则式(*)是)是 阶收敛的充要条件阶收敛的充要条件是是 且且 证明:证明:由由Taylor公式:公式:充分性取极限得取极限得第二十二页,本课件共有55页必要性设迭代式(设迭代式(*)是)是 阶收敛的,则有阶收敛的,则有 即即且且(反证法反证法)设结论不成立)设结论不成立则存在最小正整数则存在最小正整数 满足满足情形一情形一情形二情形二由充分性证明知由充分性证明知,迭代式(,迭代式(*)是)是 阶收敛的阶收敛的即即而而的极限不存在的极限不存在与与 阶收敛矛盾阶收敛矛盾证明方法与情形一类似证明方法与情形一类似(自己练习)(自
16、己练习)第二十三页,本课件共有55页2.4 牛顿法牛顿法 /*Newton-Raphson Method*/一、牛顿迭代公式的推导一、牛顿迭代公式的推导1、待定参数法待定参数法不动点迭代的不动点迭代的关键关键是构造满足是构造满足收敛条件收敛条件的的迭代函数迭代函数 一种一种自然的选择自然的选择是令是令为了加速不动点迭代的收敛过程,应尽可能使迭代函数为了加速不动点迭代的收敛过程,应尽可能使迭代函数 在在 处有处有更多阶导数等于零更多阶导数等于零(定理(定理2.52.5)。)。令令现设现设第二十四页,本课件共有55页取取满足满足因此,选取迭代函数因此,选取迭代函数Newton Raphson迭代格
17、式迭代格式称之为称之为牛顿牛顿拉夫森拉夫森方法,简称方法,简称牛顿法牛顿法原理:原理:将非线性方程将非线性方程线性化线性化取取 x0 x*,将将 f(x)在在 x0 做一阶做一阶Taylor展开展开:,在在 x0 和和 x 之间之间2、Taylor展开法展开法/*Taylors expansion Method*/第二十五页,本课件共有55页将将(x*x0)2 看成看成高阶小量高阶小量,则有:,则有:xyx*x0只要只要 f C1,每一步迭代都有,每一步迭代都有 而且而且 ,则,则 x*就是就是 f 的根。的根。与与x轴交点的横坐标轴交点的横坐标第二十六页,本课件共有55页无开方运算,又无除法
18、运算。无开方运算,又无除法运算。例例1 1:写出求写出求 的的Newton迭代格式;迭代格式;写出求写出求 的的Newton迭代格式迭代格式,要求公式中既要求公式中既解:解:等价于求方程等价于求方程 的正根的正根解法一:解法一:等价于求方程等价于求方程 的正根的正根 第二十七页,本课件共有55页解法二:解法二:等价于求方程等价于求方程 的正根的正根 Th2.7 (局部收敛性局部收敛性)设设 x*为方程为方程 f(x)=0的根,在包含的根,在包含x*的某个开区间内的某个开区间内 连续,连续,且且 ,则存在,则存在 x*的邻域的邻域 ,使得任取,使得任取初值初值 ,由,由Newtons Metho
19、d产生的序列产生的序列 以不低于以不低于二阶二阶的收敛速度收敛于的收敛速度收敛于x*,且,且第二十八页,本课件共有55页有根根唯一产生的序列单调有界保证收敛Th2.8 (收敛的充分条件收敛的充分条件)设设f(x)=0 且且f C2a,b,若,若(1)f(a)f(b)0;(2)在整个在整个a,b上上 不变号且不变号且 ;(3)选取选取 x0 a,b 使得使得 ;则则Newtons Method产生的序列产生的序列 xk 收敛于方程的根收敛于方程的根 ,且且第二十九页,本课件共有55页注:注:Newtons Method 收敛性依赖于x0 的选取。x*x0 x0 x0Th2.9 (收敛的另一充分条
20、件收敛的另一充分条件)设设 在在a,b上连续,上连续,(1)f(a)f(b)1)(1)阶收敛的方法,阶收敛的方法,改用改用Stefensen迭代方法优点不多。迭代方法优点不多。第四十二页,本课件共有55页取取计算结果如下:计算结果如下:法法2 2原原迭迭代代次次数数29法法3 3原原来来不不收收敛敛法法1 1原原来来不不收收敛敛返回返回第四十三页,本课件共有55页改进与推广(改进与推广(补充补充)/*improvement and generalization*/重根重根 /*multiple root*/加速收敛法:加速收敛法:Q1:若若 ,Newtons Method 是否仍收敛?是否仍收
21、敛?设设 x*是是 f 的的 n 重根,则:重根,则:且且 。因为因为 Newtons Method 事实上是一种特殊的不动点迭代,事实上是一种特殊的不动点迭代,其中其中 ,则,则A1:有局部收敛性,但重数有局部收敛性,但重数 n 越高越高,收敛,收敛越慢越慢。Q2:如何如何加速加速重根情况时的收敛速度?重根情况时的收敛速度?A2:将求将求 f 的的重根转化重根转化为求另一函数的为求另一函数的单根单根。令,则令,则 f 的重根的重根 =的单根。的单根。第四十四页,本课件共有55页 求复根求复根 /*Finding Complex Roots*/Newton 公式中的自变量可以是公式中的自变量可
22、以是复数复数记记 z=x+i y,z0 为初值,同样有为初值,同样有设设代入公式,令代入公式,令实、虚部对应相等实、虚部对应相等,可得,可得第四十五页,本课件共有55页 5 弦割法与抛物线法弦割法与抛物线法 /*Secant Method and Parabola Method*/x0 x1割线/*secant line*/切线斜率切线斜率 割线斜率割线斜率需要需要2个初值个初值 x0 和和 x1。Newtons Method 每一步要计算每一步要计算 f 和和 ,为了避免计算导数,为了避免计算导数值,现用值,现用 f 的值近似的值近似 ,从而得到,从而得到弦割法弦割法(割线法割线法)。)。x
23、2一、弦割法一、弦割法第四十六页,本课件共有55页Th2.10 局部收敛性局部收敛性 设设 表示区间表示区间 ,x*为方程为方程 f(x)=0的根,的根,函数函数f(x)在在 中有中有足够阶连续导数足够阶连续导数,且且 满足满足 则对则对 ,由割线法产生的序列,由割线法产生的序列 都收敛于都收敛于x*,且,且(i)(ii)(iii)其中其中收敛速度介于Newton and Bisection 之间 第四十七页,本课件共有55页Corollary(推论)设设 x*为方程为方程 f(x)=0的一个根,的一个根,且且 在在 x*的附近连续,则的附近连续,则 使得使得 由由Secant Method产
24、生的序列产生的序列 都收敛于都收敛于x*。例例1 证明方程证明方程 在区间在区间 内有内有唯一唯一根根 ,且,且使得对任意的初始值使得对任意的初始值 ,由,由割线法割线法产生的序产生的序列列 都收敛于都收敛于 。证明:证明:令令方程方程存在存在根根方程存在方程存在唯一唯一根根且且在在 附近连续附近连续由由推论推论知,由知,由割线法割线法产生的序列产生的序列 都收敛于都收敛于 。第四十八页,本课件共有55页xk-2Muller方法的思想来源于方法的思想来源于弦割法弦割法:利用利用3个已知点构造一条抛物个已知点构造一条抛物线线,取其与取其与x轴的交点构造下一次迭代值轴的交点构造下一次迭代值.x*二
25、、抛物线法二、抛物线法(Muller)几何图示几何图示xkxk-1xk+1第四十九页,本课件共有55页 Muller方法的具体实现方法的具体实现:设已知三个点设已知三个点则过上述三个点的则过上述三个点的抛物线方程抛物线方程为为:取该抛物线与取该抛物线与x轴的交点作为下一次迭代值轴的交点作为下一次迭代值,即即然后取新的相邻的三次迭代值重复上述过程然后取新的相邻的三次迭代值重复上述过程,即为即为Muller方法方法.第五十页,本课件共有55页 Muller方法中抛物线根的计算方法方法中抛物线根的计算方法:首先要将抛物线化为首先要将抛物线化为规范形式规范形式:引入新的变量引入新的变量第五十一页,本课
26、件共有55页将上述变量代入前面的抛物线方程将上述变量代入前面的抛物线方程,得得其中其中的两个零点为的两个零点为:第五十二页,本课件共有55页取取 的两个零点中靠近的两个零点中靠近 的那个零点的那个零点,则有则有 Muller方法的迭代公式为方法的迭代公式为:具体计算步骤见教材具体计算步骤见教材P75第五十三页,本课件共有55页 算法:Muller方法给定初始近似值 x0,x1,x2,求f(x)=0 的根.输入:初值 x0,x1,x2;容许误差 TOL.输出:近似解 x.Step 1 Set i=1;Step 4 If|t4(x2-x1)|TOLStep 2 do steps 3-7 then
27、Output(x);STOP;Step 3 Compute t3=(x2 x1)/(x1 x0);Step 5 Set i+;d3=1+t3;Step 6 Set x0=x1,x1=x2,x2=x;a=f(x0)t32-f(x1)t3d3+f(x2)t3;Step 7 goto Step 2.b=f(x0)t32-f(x1)d32+f(x2)(t3+d3);c=f(x2)d3;t4=-2c/b+sign(b)sqrt(b2-4ac);x=x2+t4(x2-x1);第五十四页,本课件共有55页Th2.5.2 (局部收敛性局部收敛性)设设 ,在在x*的某邻域内连续,则存的某邻域内连续,则存在在 x*的一个邻域的一个邻域 ,当,当 时时,由由抛物线法抛物线法产生的序列产生的序列 收敛于收敛于x*,且,且其中其中 ,是方程是方程 的根的根.Muller法的优点:初值的选取范围比Newton法和弦割法宽,而且可以一次求得方程的一对复根.第五十五页,本课件共有55页