求解非线性方程的迭代法数学软件一、迭代法原理二、弦截法三、牛顿法四、小结目录上页下页返回结束求解非线性方程的迭代法一、迭代法原理1.迭代法的思想迭代法是数值计算中的一类典型方法,不仅用于方程求根,而且可用于方程组求解,矩阵求特征值等许多问题。迭代法的基本思想是一种逐次逼近的方法。首先取一个粗糙的近似值,然后用同一个递推公式,反复校正这个初值,直到满足给定的精度为止。迭代法的关键在于构造递推公式。目录上页下页返回结束求解非线性方程的迭代法构造f(x)=0的一个等价方程:()xx从某个近似根x0出发,计算得到一个迭代序列0kkx1()kkxxk=0,1,2,......(x)的不动点f(x)=0x=(x)等价变换f(x)的零点当迭代序列收敛时,称迭代公式收敛或迭代收敛,否则称迭代发散。这种求非线性方程根的方法称为迭代法。迭代公式迭代函数目录上页下页返回结束求解非线性方程的迭代法2.迭代法的收敛性关于迭代法的收敛性与迭代函数之间的关系,我们不加证明地给出如下几个定理。定理1设)(x在区间],[ba上具有一阶连续的导数,且满足下面2个条件:(1)当],[bax时,],[)(bax;(2)存在正常数1L,使得对任意],[bax,有Lx|)(|。目录上页下页返回结束求解非线性方程的迭代法2.迭代法的收敛性定理1那么(i)方程)(xx在],[ba上有唯一根*x;(ii)对任意],[0bax,迭代公式)(1kkxx收敛,且*limxxkk;(iii)对任意的,k有||1|*|1kkkxxLLxx;(iv)对任意的,k有||1|*|01xxLLxxkk;(v)*)(**lim1xxxxxkkk。目录上页下页返回结束求解非线性方程的迭代法在实际计算中,对于给定的允许误差,当L较小时,常以前后两次迭代近似值1,kkxx满足||1kkxx来终止迭代。定理1结论中的(iii)、(iv)、(v)分别称为误差后验估计式、误差先验估计式、渐进误差估计式。定理1的两个条件有时较难验证也较难满足,这时常用的是局部收敛条件。所谓局部收敛,指的是迭代公式在x*的某个邻域是收敛的。关于局部收敛有如下的定理。目录上页下页返回结束求解非线性方程的迭代法3.迭代法的局部收敛性定理2设方程)(xx有根*x,且在*x的某个邻域}*{xxxD内)(x存在一阶连续的导数,那么(1)当Dx,1|)('|x时,迭代公式)(1kkxx是局部收敛的;(2)当Dx,1|)('|x时,迭代公式)(1kkxx是发散的。目录上页下页返回结束求解非线性方程的迭代法4.收敛的阶记*xxekk,如果)(0lim1Npceepkkk则称序列}{kx是p阶收敛的。为了进一步研究收敛速度问题,引入阶的概念:特别地,1阶收敛称为线性收敛,2阶收敛称为平方收敛;若p=1,c=0时,通常称为超线性收敛.显然,p越大收敛越快。目录上页下页返回结束求解非线性方程的迭代法4.收敛的阶定理3若)(x在*x附近的某个邻域内有)1(pp阶连续导数,且0,0*)(,,0*)('*,*)()()1(ppxxxx则对一个任意接近*x的初始值,迭代公式)(1kkxx是p阶收敛的,且有!*)(*)(*lim)(1pxxxxxppkkk定理3可以利用泰勒展开式加以证明目录上页下页返回结束求解非线性方程的迭代法二、弦截法1.弦截法的算法过程(1)过两点(a,f(a)),(b,f(b))作一直线,它与x轴有一个交点,记为x1;(2)如果f(a)f(x1)0,过两点(a,f(a)),(x1,f(x1))作一直线,它与x轴的交点记为x2,否则过两点(b,f(b)),(x1,f(x1))作一直线,它与x轴的交点记为x2;(3)如此下去,直到|xn-xn-1|,就可认为xn为f(x)=0在区间[a,b]上的一个根。目录上页下页返回结束求解非线性方程的迭代法2.弦截法的迭代公式0)()(),()()(0)()(),()()(),()()(111kkkkkkkkxfafbfbfxfbxbxxfafafafxfaxaxafafbfabax目录上页下页返回结束求解非线性方程的迭代法3.弦截法的Matlab编程实现functionroot=chord_cut(f,a,b,e)%弦截法求函数f在区间[a,b]上的一个零点%f函数名,a区间左端点,b区间右端点,e根的精度,root函数的零点function[root,n]=chord_cut2(f,a,b,e)%弦截法求函数f在区间[a,b]上的一个零点%f函数名,a区间左端点,b区间右端点,e根的精度,root函数的零点,n迭代次数目录上页下页返回结束求解非线性方程的迭代法例1用弦截法求方程2lnxx在区间[1,4]上的一个根.目录上页下页返回结束求解非线性方程的迭代法三、牛顿法1.牛顿法的基本思想用线性方程来近似非线性方程,即采用线性化方法,对于非线性方程f(x)=0,将f(x)在xk处作Taylor展开,去掉高阶项后得))(()()(kkkxxxfxfxf如果f(xk)≠0,用xk+1代替x,由f(x)=0可得下列迭代公式,2,1,)(')(1kxfxfxxkkkk目录上页下页返回结束求解非线性方程的迭代法2.牛顿迭代公式,2,1,)(')(1kxfxfxxkkkk称上式为方程f(x)=0的牛顿迭代公式,简称牛顿法。牛顿法具有明显的几何意义,))((')(kkkxxxfxfy是曲线在点(xk,f(xk))处的切线方程。xk+1就是切线与x轴交点的横坐标,所以牛顿法就是用切线与x轴交点的横坐标近似代替曲线与x轴交点的横坐标。因此牛顿法也称切线法。目录上页下页返回结束求解非线性方程的迭代法xy)(xfy))(,(kkxfx*xkx1kx目录上页下页返回结束求解非线性方程的迭代法3.牛顿法的收敛速度,)(')()(xfxfxx经计算得*)('*)(*)(,*))('(*)(*)(*)('2xfxfxxfxfxfx因此,若x*是f(x)=0的单根,则牛顿法是至少2阶收敛的;进一步分析还可以发现,当x*是f(x)=0的重根时,牛顿法只是1阶收敛的,并且重数越高,收敛越慢。牛顿法的迭代函数目录上页下页返回结束求解非线性方程的迭代法4.牛顿法的编程实现functionroot=newton1(f,a,b,e)%牛顿法求函数f在区间[a,b]上的一个零点%f函数名,a区间左端点,b区间右端点,e根的精度,root函数的零点function[root,n]=newton2(f,a,b,e)%牛顿法求函数f在区间[a,b]上的一个零点%f函数名,a区间左端点,b区间右端点,e根的精度,root函数的零点,n迭代次数目录上页下页返回结束求解非线性方程的迭代法例2用牛顿法求方程023xx在区间[0.5,2]上的一个根.目录上页下页返回结束求解非线性方程的迭代法四、小结1.迭代法原理2.弦截法3.牛顿法目录上页下页返回结束求解非线性方程的迭代法作业割线法:用)(xf在kkxx,1两点的差商代替)('kxf,得,2,1),()()()(111kxxxfxfxfxxkkkkkkk此为割线法的迭代公式。其几何意义就是用割线来代替切线。它的收敛速度比切线法慢,而且需要两个初值开始迭代。将割线法的迭代公式编程实现,要求输出迭代次数。用割线法求方程0133xx在0x=2附近的根,误差限为410。