资源描述:
《ch7-3(newton法)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章非线性方程的解法非线性方程的解法对分区间法简单迭代法Newton法与弦截法非线性方程组的解法牛顿法与弦截法第三节牛顿法与弦截法简单牛顿法与牛顿重根法牛顿下山法牛顿迭代法原理弦截法及其收敛分析《数值分析》非线性方程的牛顿法(NewtonMethodofNonlinearEquations)牛顿法的流程图2牛顿法及其几何意义31牛顿法的改进33非线性方程的牛顿法本章研究对象本章重点研究对象引言求根问题包括:根的存在性、根的范围和根的精确化。一般提法与结论一般提法与结论取x0作为初始近似值,将f(x)在x0做Taylor展开:重复上述过程作为第一次近似值Newton迭代公式基
2、本思路:将非线性方程f(x)=0线性化。一、牛顿法原理及几何意义简单验证:牛顿法证明牛顿法的几何解释牛顿法几何解释xyx*x0x1x2牛顿法也称为切线法解:则由牛顿迭代公式可得:例1.牛顿法例题(1)选定初值x0,计算f(x0),f(x0)牛顿法的计算步骤:(2)按公式迭代得新的近似值xk+1(3)对于给定的允许精度,如果则终止迭代,取;否则k=k+1,再转步骤(2)计算允许精度最大迭代次数迭代信息二、牛顿法流程图结论:Newton法的收敛性依赖于x0的选取。x*x0x0x0疑问:Newton法是否永远收敛呢?如果不是,那么与谁有直接关系呢?Newton法的收敛性牛顿
3、法的缺点:1)牛顿迭代法存在从一个根跳到另一个根的情况。2)如果f(x)=0没有实根,则牛顿迭代序列不收敛。3)每次迭代都要求导,程序易中断。Newton法存在的问题三、牛顿法的改进xyx*x0x1x2斜率恒定不变思考题如何改进牛顿法?简化的牛顿法修改为简化的牛顿迭代法牛顿重根法牛顿重根法且若三种方法都收敛,则一般重根法收敛最快,牛顿法次之,简化迭代法最慢。例2解三种迭代公式分别为牛顿迭代法典型例题三种迭代公式迭代结果分别为:牛顿法迭代解1.0.92.0.932353.0.954464.0.977735.1.000006.1.000007.1.000008.1.00000精确解
4、{x->1.00000}重根法迭代解1.0.92.0.997063.0.999974.1.000005.1.000006.1.000007.1.000008.1.00000精确解{x->1.00000}简化法迭代解1.0.92.0.925833.0.948064.0.967525.0.980016.0.999527.1.000008.1.00000精确解{x->1.00000}牛顿迭代法例题解牛顿迭代法例题例3.程序Clear[f,x,xx]f[x_]:=x*Exp[x]-1g[x_]:=x-f[x]/f'[x]x=0.5;xx=0.51;Do[x=g[x];Print[k,"
5、",x],{k,1,8}]Abs[g'[xx]]-1//NClear[x]FindRoot[f[x]==0,{x,3}]迭代解1.0.571022.0.5671563.0.5671434.0.5671435.0.5671436.0.5671437.0.5671438.0.567143精确解{x->0.567143}牛顿迭代法程序例4.求方程的根,要求迭代格式一:迭代格式二:对迭代格式一:初始值取27,数值解是0.442852;对迭代格式二:初始值取3,数值解是0.442854牛顿迭代法例题牛顿下山法思路牛顿下山法称为牛顿下山法其中直到满足:牛顿下山法整理可得Clear[f,x0
6、]f[x_]:=x^3-x-1;Plot[f[x],{x,0,2}]x[n_]:=x[n-1]-f[x[n-1]]/f'[x[n-1]]x[0]=0.6;N[Table[x[n],{n,1,4}],5]N[Solve[f[x]==0,x],20]N[Solve[f[x]==0,x],20][[1]]Mathematica牛顿法牛顿迭代法程序Clear[f,x0]f[x_]:=x^3-x-1;Plot[f[x],{x,0,2}]x[0]=0.6;x[1]:=x[0]-(1/32)f[x[0]]/f'[x[0]]Abs[f[x[0]]]Abs[f[x[1]]]x[n_]:=x[n-
7、1]-f[x[n-1]]/f'[x[n-1]]N[Table[x[n],{n,2,5}],6]N[Solve[f[x]==0,x],20];N[Solve[f[x]==0,x],20][[1]]Mathematica牛顿下山法牛顿下山法程序1.牛顿迭代法的原理(泰勒展开);2.牛顿迭代法的几何意义—切线法;3.牛顿迭代法的流程图;4.牛顿迭代法的两种基本改进:简化的牛顿法和牛顿重根法内容小结思考题牛顿法还有没有其他的改进呢?程序框图与程序语言设计subroutinentspx2=x1-f/f