数值重要分析公式之一牛顿迭代法讲解及推导.doc

上传人:小** 文档编号:85909838 上传时间:2019-03-14 格式:DOC 页数:8 大小:168.09KB
返回 下载 相关 举报
数值重要分析公式之一牛顿迭代法讲解及推导.doc_第1页
第1页 / 共8页
数值重要分析公式之一牛顿迭代法讲解及推导.doc_第2页
第2页 / 共8页
数值重要分析公式之一牛顿迭代法讲解及推导.doc_第3页
第3页 / 共8页
数值重要分析公式之一牛顿迭代法讲解及推导.doc_第4页
第4页 / 共8页
数值重要分析公式之一牛顿迭代法讲解及推导.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数值重要分析公式之一牛顿迭代法讲解及推导.doc》由会员分享,可在线阅读,更多相关《数值重要分析公式之一牛顿迭代法讲解及推导.doc(8页珍藏版)》请在金锄头文库上搜索。

1、牛顿迭代法一、 牛顿迭代法牛顿迭代法也称为牛顿-拉夫森(Newton-Raphson)迭代法,它是数值分析中最重要的方法之一,它不仅适用于方程或方程组的求解,还常用于微分方程和积分方程求解。2、 迭代公式用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源大概有以下几种方式(主要是第一种):1、设,对在点作泰勒展开:略去二次项,得到的线性近似式:。由此得到方程0的近似根(假定0),即可构造出迭代格式(假定0): 公式(1)这就是牛顿迭代公式,若得到的序列收敛于,则就是非线性方程的根。2、 牛顿迭代法也称

2、为牛顿切线法,这是由于的线性化近似函数是曲线过点的切线而得名的,求的零点代之以求的零点,即切线与轴交点的横坐标,如右图所示,这就是牛顿切线法的几何解释。实际上,牛顿迭代法也可以从几何意义上推出。利用牛顿迭代公式,由得到,从几何图形上看,就是过点作函数的切线,切线与轴的交点就是,所以有,整理后也能得出牛顿迭代公式:。3、 要保证迭代法收敛,不管非线性方程0的形式如何,总可以构造: 作为方程求解的迭代函数。因为:而且在根附近越小,其局部收敛速度越快,故可令:若0(即根不是0的重根),则由得:,因此可令,则也可以得出迭代公式:。4、 迭代法的基本思想是将方程改写成等价的迭代形式,但随之而来的问题却是

3、迭代公式不一定收敛,或者收敛的速度较慢。运用前述加速技巧,对于简单迭代过程,其加速公式具有形式:,其中记,上面两式可以合并写成:这种迭代公式称作简单的牛顿公式,其相应的迭代函数是:。需要注意的是,由于是的估计值,若取,则实际上便是的估计值。假设,则可以用代替上式中的,就可得到牛顿法的迭代公式:。牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种线性方程来求解。3、 算法描述用Newton法求方程f(x)=0的一个解输入 初始值x0;误差容限TOL;最大迭代次数m输出 近似解p或失败信息Step1 Step2 对i=1,2,.,m做setp34Setp3Setp4若,则输出

4、(p),停机,否则Setp5输出失败信息;停机注:在第4步中的迭代终止准则可用: 四、C语言代码求一元四次方程的解double func(double x) /函数 return x*x*x*x-3*x*x*x+1.5*x*x-4.0; double func1(double x) /导函数 return 4*x*x*x-9*x*x+3*x; int Newton(double *x,double precision,int maxcyc) /初始值, 精度, 迭代次数 double x1,x0; int k; x0=*x; for(k=0;kmaxcyc;k+) if(func1(x0)=0

5、.0)/若通过初值,函数返回值为0 printf(迭代过程中导数为0!n); return 0; x1=x0-func(x0)/func1(x0);/进行牛顿迭代计算 if(fabs(x1-x0)precision | fabs(func(x1)precision) /达到结束条件 *x=x1; /返回结果 return 1; else /未达到结束条件 x0=x1; /准备下一次迭代 printf(迭代次数超过预期!n); /达到迭代次数,仍没有达到精度 return 0; int main() double x,precision; int maxcyc; printf(输入初始迭代值x0

6、:); scanf(%lf,&x); printf(输入最大迭代次数:); scanf(%d,&maxcyc); printf(迭代要求的精度:); scanf(%lf,&precision); if(Newton(&x,precision,maxcyc)=1) /若函数返回值为1 printf(该值附近的根为:%lfn,x); else /若函数返回值为0 printf(迭代失败!n); getch(); return 0; 5、 二元函数的牛顿迭代法设z=f(x,y)在点(x0,y0)的某一邻域内连续且有直到2阶的连续偏导数,(x0+h,y0+k)为此邻域内任意一点,则有其中于是方程f(x,y)=0可近似表示为即同理,设z=g(x,y)在点(x0,y0)的某一邻域内连续且有直到2阶的连续偏导数,(x0+h,y0+k)为此邻域内任意一点,则同样有其中于是方程g(x,y)=0可近似表示为即于是得到方程组:求解这个方程组:当时雅可比行列式:所以,解可改写为:迭代公式为:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号