1其中f(x)为非线性函数.如求f(x)=0的根,123)(45xxxxf.2)ln(sin)(12xxexfx第八章非线性方程求根2例若干年以前,美国原子能委员会准备将浓缩的放射性废料装入密封的圆桶内沉至海底.但是,当时一些科学家与生态学家都反对这种作法.科学家用实验测定出圆桶能够承受的最大撞击速度为v=12.2m/s,如果圆桶到达海底时的速度超过这个速度,将会因撞击海底而破裂,从而引起严重的核污染.然而原子能委员会却认为不存在这种可能性.根据圆桶的质量,体积以及海水的密度与海底的深度,通过建立数学模型得知圆桶到达海底时的速度v(m/s)满足如下方程:那么圆桶到达海底时的速度究竟会不会超过12.2m/s呢?.088.1240)17.1261ln(08.223vv3§1对分区间法(二分法)原理:若fC[a,b],且f(a)·f(b)0,则f在(a,b)上必有一根.[a,b]称为f(x)=0的有根区间.下文中,设x*是方程f(x)=0的根.4取,20bax不妨设f(a)0,f(b)0.①若,0)(0xf则;0*xx②若,0)(0xf取,01xa;1bb③若,0)(0xf.01xb取,1aa以][1,1ba作为新的有根区间继续迭代,得有根区间序列.],[],[],[11nnbababa取2nnnbax为*x的第n个近似值.5abx0x1ab停机准则11εxxkk21)(εxfk或不能保证x的精度x*2xx*6误差分析:第0步产生的20bax有误差20abx*||x第k步产生的xk有误差12kkabx*||x对于给定的精度,可估计二分法所需的步数k:12lnlnln21εabkεabk①简单;②对f(x)要求不高(只要连续即可).①无法求复根及偶重根②收敛慢7例1试用二分法求方程02010)(3xxxf的唯一实根,要求误差不超过.105.04解,09)1(f,08)2(f[1,2]为有根区间;,0103)('2xxff(x)单调增加,方程有唯一根.对分区间次数.288.1312ln)105.0ln()12ln(4n取n=14.8计算结果如下表:nnanbnx)(nxf0121.51.6..1.752.8..2...............121.59448251.59472661.59460460.0007...131.59448251.59460461.59454360.0003...141.59454361.59460461.594574102010)(3xxxf1.5211.51.751.6250.54..9f(x)=0x=g(x)等价变换f(x)的根g(x)的不动点思路从一个初值x0出发,计算x1=g(x0),x2=g(x1),…,xk+1=g(xk),…若收敛,即存在x*使得且g连续,则由可知x*=g(x*),即x*是g的不动点,也就是f的根.0kkx*,limxxkk1limkkx,limkkxg§2迭代法10例2用简单迭代法求方程02010)(3xxxf的根,要求精确到0.510-6.解法一:20110)(3xxxxf迭代格式:,201131nnnxxx取初值计算得,5.10x,125.01x,376953.212x,861.100233x显然此迭代序列发散.11例2用简单迭代法求方程02010)(3xxxf的根,要求精确到0.510-6.解法二:10200)(2xxxf迭代格式:,102021nnxx初值,5.10x故,6326531.11x,5790858.12x,5945629.113x,5945618.114x,5945622.115x61415105.0||xx计算得.5945622.115*xx12例2用简单迭代法求方程02010)(3xxxf的根,要求精确到0.510-6.解法三:xxxxf4.010204.110)(2迭代格式:初值,5.10x,4.010204.1121nnnxxx,5947522.1,5.110xx,5945621.14x,5945621.1,5945614.132xx计算得13例2用简单迭代法求方程02010)(3xxxf的根,要求精确到0.510-6.解法四:,1020)(3xxxf迭代格式:初值,5.10x,10231nnxx,6625.1,5.110xx,5961283.1,5925062.11514xx计算得,5945619.1,5945624.14847xx14上例表明,对同一方程可构造不同的迭代格式,产生的迭代序列收敛性也不同.迭代法的收敛性与什么有关?怎样构造具有收敛性的迭代法?15xyy=xxyy=xxyy=xxyy=xx*x*x*x*y=g(x)y=g(x)y=g(x)y=g(x)x0p0x1p1x0p0x1p1x0p0x1p1x0p0x1p116定理考虑方程x=g(x),g(x)C[a,b],若(I)当x[a,b]时,g(x)[a,b];(II)0L1使得|g(x)|L对x[a,b]成立.则任取x0[a,b],由xk+1=g(xk)得到的序列收敛于g(x)在[a,b]上的唯一不动点.并且有误差估计式:0kkx||11|*|1kkkxxLxx(k=1,2,…)且存在极限***lim1xgxxxxkkk||1|*|01xxLLxxkk17证明:①g(x)在[a,b]上存在不动点?令xxgxf)()(bxga)(,0)()(aagaf0)()(bbgbf)(xf有根②不动点唯一?反证:若不然,设还有,则)~(~xgx),~*()()~(*)(xxξgxgxgxx*~在和之间*xx~0))(1)(~(ξgxx*而xxξg~*1|)(|18③当k时,xk收敛到x*?|*|kxx|*||)(||)(*)(|111kkkxxξgxgxg0|*|......|*|01xxLxxLkk④?||11|*|1kkkxxLxx|*||*||*||*|||11kkkkkkxxLxxxxxxxx可用来控制收敛精度||1kkxx19?||1|*|01xxLLxxkk⑤||......|||))((||)()(|||011111xxLxxLxxξgxgxgxxkkkkkkkkkk?***lim1xgxxxxkkk⑥*)(*)*)((lim**lim1xgxxxxξgxxxxkkkkkkkL越收敛越快小20例2用简单迭代法求方程02010)(3xxxf的根,要求精确到六位小数.解法一:2011)(3xxxg迭代函数14113)('2xxg解法二:1020)(2xxg迭代函数,11180)10(40|)('|222xxxg对],2,1[x21120)(14201xg故迭代法收敛.21局部收敛定理如果函数g(x)在x*的某邻域B*={x||xx*|*}内连续可微,且x*=g(x*),|g(x*)|1,则存在正数,*,由x0B开始的迭代收敛.该定理表明,若|g(x*)|1,只要初值x0选得离x*足够近,迭代法一定收敛.22xyy=g(x)x*y=xAitken加速:x0P(x0,x1)x1x2xˆP(x1,x2)21020102)(ˆxxxxxxx一般地,有:21212)(ˆKKKKKKKxxxxxxx比收敛得快.KxˆKxSteffensen加速:.2)(),(),(,21nnnzyxyxxxygzxgyxnnnnnnnnn23取迭代函数,1020)(2xxg按公式.2)(),(),(,21nnnzyxyxxxygzxgyxnnnnnnnnn计算得nnxnynz01.51.63265311.579085811.59449471.59458951.594551021.59456211.59456211.5945621例用Steffensen加速方法求的根,取x0=1.5,=106.02010)(3xxxf解一.24例用Steffensen加速方法求的根,取x0=1.5,=106.02010)(3xxxf解二.取迭代函数,2011)(3xxxg按公式.2)(),(),(,21nnnzyxyxxxygzxgyxnnnnnnnnn计算得nnxnynz01.5-0.125-21.37695311.63454082.346989118.74493721.60218081.73675934.342997031.59485311.59998351.695691141.59456251.59457011.594710651.594562125收敛速度定义设数列nx收敛于,*x如果存在正数r和a,使得axxxxrnnn||||lim**1则称数列nx是r阶收敛的,或称nx的收敛阶为r.r=1,称数列为线性收敛的;r1,称数列为超线性收敛的;r=2,称数列为平方收敛的.收敛阶r的大小刻划了数列的收敛速度,r越大,收敛越快.nx26定理设迭代函数g(x)在x*邻近有r阶连续导数,且,0)(,0)()('),(*)(*)1(***xgxgxgxgxrr则迭代公式xk+1=g(xk)所产生的迭代数列是r阶收敛的.证明:)(1kkxgxrkkrkxxrgxxxgxg*)(!)(...*)*)((*)()(*x0k0!)(*)(rxgr故.!)()(lim*)(**1rxgxxxxrrkkk27Aitken加速有超线性收敛.,0**ˆlimxxxxkkkSteffensen加速有r=2,条件是平方收敛.,1*)(xg对于简单迭代法,若则有线性收敛.,0|*)(||*||*|lim1xgxxxxkkk,0)('*xg28Newton-RaphsonMethod29原理:将非线性方程线性化(Taylor展开)设xn是x*的第n个近似值,将f(x)在xn做Taylor展开))(()()(0nnnxxxfxfxf)()(*nnnxfxfxx线性/*linear*/xyx*xn)()(1nnnnxfxfxx只要fC1,每一步迭代都有f(xn)0,而且若则x*就是f的根.*,limxxnn令xn+1§3牛顿法30例用牛顿法求方程02010)(3xxxf的根,取x0=1.5.解:迭代公式为1032010231nnnnnxxxxx代入初值得:,5945637.1,5970149.121xx.5945621.1,5945621.143xx可见牛顿法收敛很快.31定理(收敛的充分条件)设fC2[a,b],若(1)f(a)f(b)0;(2)在整个[a,b]上f不变号且f(x)0;(3)选取x0[a,b]使得f(x0)f(x0)0;则Newton’sMethod产生的序列{xk}收敛到f(x)在[a,b]的唯一根.有根根唯一产生的序列单调有界,保证收敛.32(局部收敛性)设f