第五章 非线性方程的数值解法

《第五章 非线性方程的数值解法》由会员分享,可在线阅读,更多相关《第五章 非线性方程的数值解法(37页珍藏版)》请在文档大全上搜索。
1、 计算方法非线性方程的数值解法5 1、二分法 2、不动点迭代的构造及其收敛性判定 3、Newton迭代 4、割线法 5、非线性方程组的迭代解法主要知识点主要知识点2008年10月6日12时7分沈阳航空工业学院飞机设计教研室第2页,共45页第第4 4章章 数值积分数值积分 计算方法5.1 引言2008年10月6日12时7分沈阳航空工业学院飞机设计教研室第3页,共48页历史背景 代数方程的求根问题是一个古老的数学问题。理论上, 次代数方程在复数域内一定有 个根(考虑重数)。早在16世纪就找到了三次、四次方程的求根公式,但直到19世纪才证明大于等于5次的一般代数方程式不能用代数公式求解,而对于超越方
2、程就复杂的多,如果有解,其解可能是一个或几个,也可能是无穷多个。一般也不存在根的解析表达式。因此需要研究数值方法求得满足一定精度要求的根的近似解。 nn求方程 几何意义0( )f x 基本定理1Th 如果函数 在 上连续,且则至少有一个数 使得 ,若同时 的一阶导数 在 内存在且保持定号,即 (或 )则这样的 在 内唯一。 ( )f x , a b( ) ( )0f a f b ( )0f ( )fx ( )0fx , a b( )f x , a b0( )fx abx*( )yf x oxy1 二分法 /* Bisection Method */原理:若 f Ca, b,且 f (a) f
3、(b) 0,则 f 在 (a, b) 上至少有一实根。基本思想:逐步将区间分半,通过判别区间端点函数值的符号,进一步搜索有根区间,将有根区间缩小到充分小,从而求 出满足给定精度的根 的近似值。x )(xfy aboxy x 21bax 1b 2112xba 2a 3a 1a32xba 2b3b11,a b22,a b33,a b以此类推终止法则?abx1x2abWhen to stop?11xxkk 2()kf x 或不能保证 x 的精度x*2xx* 二分法算法给定区间a,b ,求f(x)=0 在该区间上的根x.输入: a和b; 容许误差 TOL; 最大对分次数 Nmax.输出: 近似根 x.
4、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. 11111 222, ,kkkkkabxxxbak 且
5、3、 12lnlnlnbak 由二分法的过程可知:4、对分次数的计算公式: 11,kka ba bab 0,kkkkf af bxab 1、 111122kkkkkbababa 2、 1112kkxxba 令误差 分析2Th解:211 510 ,.;ab,12ln()lnlnban 21 5 11012ln( .)lnln 4.645n例1:用二分法求方程 在区间 上的根,误差限为 ,问至少需对分多少次?310 xx 1 1 5 , . 210 简单; 对f (x) 要求不高(只要连续即可) .无法求复根及偶重根收敛慢 用二分法求根,最好先给出 f (x) 草图以确定根的大概位置。或用搜索程序
6、,将a, b分为若干小区间,对每一个满足 f (ak)f (bk) 0 的区间调用二分法程序,可找出区间a, b内的多个根,且不必要求 f (a)f (b) 0 。优点缺点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 的根。 0kkx*limxxkk kkkkxgx liml
7、im1看起来很简单,令人有点不相信,那么问题是什么呢?如何判定这种方法是收敛的呢?f (x) 的根x g (x) 的不动点x 10 1 2(), , ,(*)kkxg xk 一、不动点迭代 /*Fixed-Point Iteration*/xyy = xxyy = xxyy = xxyy = xx*x*x*x*y=g(x)y=g(x)y=g(x)y=g(x)x0p0 x1p1x0p0 x1p1x0p0 x1p1x0p0 x1p1几何意义例2: 已知方程 在 上有一个根(正根)324100 xx1 2 , 下面选取5种迭代格式:1、32410 xxxx 即32410( )g xxxx 2、234
8、10 xx 1321102xx 1321102g xx即3、即2104xxx 12104xxx 12104g xxx4、即12104xx 12104g xx 5、即xxxxxx83104223( )( )( )f xg xxfx 取01 5 .x 计算结果如下:123840875673246972010275 10.xxxx 法11234451113484013673813649613652613751713652251365230013.xxxxxxx 法412123081650299691865086.( .)xxx 法31234451129128695140254134546137517
9、13751713751713651378211365230013.xxxxxxxx 法2123413733313652613652300141365230013.xxxx 法5Lipschitz(利普希茨)条件成立的充分条件3Th 考虑方程 x = g(x), 若( I ) 当 xa, b 时, g(x)a, b;( II ) 0 L 0 , r0 使得使得axxxxrnnn|*|*|lim1则称数列则称数列xn r 阶收敛阶收敛.特别特别: (1) 收敛阶收敛阶r=1时时,称为线性收敛称为线性收敛; (2) 收敛阶收敛阶r1时时,称为超线性收敛称为超线性收敛; (3) 收敛阶收敛阶r=2 时
10、时,称为平方收敛称为平方收敛序列的收敛阶数越高序列的收敛阶数越高, ,收敛速度越快收敛速度越快例例 方程方程 x3+10 x-20=0,取取 x0 = 1.5, 证明迭代证明迭代法法)10/(2021 nnxx是线性收敛是线性收敛)10/(20)(2 xx 22)10/(40)( xxx 证证:令令 f (x) = x3 + 10 x 20, 绘出绘出 y = f(x) 图形可知图形可知方程的根方程的根 x*1.5, 令令求导数求导数, 得得-6-4-20246-300-200-1000100200300 xx3+ 10 x-20|*|)(|*)()(|*|1xxxxxxnnnn |*)(|
11、)(|lim|*|*|lim1xxxxxnnnnn 利用利用Lagrange中值定理中值定理, 有有其中其中, 介于介于xn和和x*之间之间. 所以所以n由此可知由此可知,这一序列的收敛阶数为这一序列的收敛阶数为1,即迭代法即迭代法是线性收敛是线性收敛.显然显然,在在x*附近附近1| )(| x 0)( x 定理定理 设设x*是是 的不动点的不动点,且且)(x0*)(*)(*)()1( xxxp 而而 则则 p阶收阶收敛敛0*)()(xp)(1nnxx| )(|!|*|*)()(|*|)(1nppnnnpxxxxxx 由由Taylor公式公式其中其中, 介于介于xn和和x*之间之间.所以所以n