牛顿-拉夫森(Newton-Raphson)迭代法 2
newton raphson 超越方程组

newton raphson 超越方程组超越方程组是数学中一种常见的求解方程组的方法,而牛顿-拉夫森方法(Newton-Raphson method)则是求解超越方程组最常用的方法之一。
本文将详细介绍牛顿-拉夫森方法的基本原理、算法步骤、应用范围以及注意事项。
一、基本原理牛顿-拉夫森方法是一种迭代方法,它通过不断逼近方程组的解来求解超越方程组。
该方法基于方程组的原函数在解处的泰勒级数的展开式,通过逐步调整未知数的值,使得函数值的差值越来越小,最终达到方程组的解。
二、算法步骤1. 初始设定两个初始值x1和x2,它们是未知数的可能解。
2. 根据泰勒级数的展开式,使用牛顿-拉夫森方法逐步迭代,得到新的未知数值。
3. 判断新得到的未知数值是否满足方程组的条件,如果满足则停止迭代,否则返回步骤2。
三、应用范围牛顿-拉夫森方法适用于求解具有单峰函数特性的超越方程组。
例如,常微分方程、偏微分方程以及非线性方程组等都具有单峰函数特性,因此可以用牛顿-拉夫森方法求解。
此外,该方法还可以用于解决一些工程问题、物理问题以及经济问题中的方程组求解问题。
四、注意事项1. 初始值的选取对于求解结果的影响很大,需要根据具体问题选择合适的初始值。
2. 迭代过程中需要不断调整未知数的值,直到满足方程组的条件为止,因此需要耐心和细致。
3. 对于一些具有特殊性质的方程组,可能需要采用其他方法进行求解,例如割线法、共轭法等。
总之,牛顿-拉夫森方法是求解超越方程组最常用的方法之一,具有简单易行、精度高等优点。
在使用该方法时,需要注意初始值的选取、迭代过程的调整以及特殊情况的应对,以确保得到正确的求解结果。
牛顿迭代法论文

南昌工程学院课程设计姓名:专业:年级:学号:年月日牛顿迭代算法摘要: 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。
另外该方法广泛用于计算机编程中。
牛顿迭代法是一个重要的计算方法和思想。
牛顿迭代法的主要功能:计算方程时可以比较快速方便的计算出来结果但并不影响计算出来结果的精确度,运用于多种工业设计和数学设计方面.关键字: 牛顿迭代方程根算法一 .牛顿迭代法简介1.1 牛顿迭代法的概述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。
设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0) f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。
过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。
重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。
牛顿拉夫森法 原理

牛顿拉夫森法原理
牛顿-拉夫森法(Newton-Raphson method)是一种用于求解非线性方程数值解的迭代算法。
其基本原理是利用泰勒公式对函数进行近似,并利用函数在某一点的导数来修正函数的值,从而逐步逼近方程的根。
具体来说,设非线性方程为f(x) = 0,其中f(x)是一个在x附近的某一点可导的函数。
我们选择一个初始点x0,并使用泰勒公式对f(x)在x0处进行展开,得到f(x) = f(x0) + f'(x0)(x-x0),其中f'(x0)是f(x)在x0处的导数。
然后,我们利用这个近似公式来构造一个迭代公式。
设x(k)为第k次迭代的近似解,则下一个近似解x(k+1)可以通过以下公式得到:
x(k+1) = x(k) - f(x(k))/f'(x(k))
这个公式就是牛顿-拉夫森法的核心。
在每次迭代中,我们使用上一次的近似解来计算新的近似解,并逐步逼近方程的根。
要注意的是,牛顿-拉夫森法需要知道函数在某一点的导数,因此对于一些难以求导的函数,可能需要采用其他方法来求解。
此外,如果初始点选择不当或者函数在某些区域变化剧烈,可能会导致迭代不收敛或者收敛速度非常慢。
牛顿拉夫逊迭代法,fortran -回复

牛顿拉夫逊迭代法,fortran -回复牛顿拉夫逊迭代法,在数值计算中是一种用于求方程根的迭代算法。
它属于一种高度有效且理论上被广泛接受的数值方法,被广泛应用于科学与工程领域。
本文将以牛顿拉夫逊迭代法为主题,一步一步地解释该算法的原理与使用。
在开始介绍牛顿拉夫逊迭代法之前,我们首先来了解一下什么是迭代法。
迭代法是一种通过不断迭代逼近解的方法。
这种方法通常适用于无法通过解析方法求得解的问题,或者解析方法过于复杂的问题。
迭代法的基本思想是从一个初始解开始,通过不断逼近,使得每一步的解越来越接近真实解。
而牛顿拉夫逊迭代法就是其中一种常用的迭代算法。
牛顿拉夫逊迭代法是基于牛顿法和拉夫逊法的一个改进算法。
牛顿法是一种求解方程根的数值方法,通过利用函数的导数来逼近方程的解。
而拉夫逊法是一种解非线性方程的迭代算法,通过多项式插值来逼近方程的解。
牛顿拉夫逊迭代法综合了这两种方法的优点,在求解非线性方程时表现出了良好的效果。
牛顿拉夫逊迭代法的基本思想是通过不断迭代的方式,使用切线来逼近方程的根。
具体来说,从一个初始猜测值开始,计算函数在该点的导数,然后使用切线方程求出下一个近似解。
这个过程将一直持续,直到找到足够精确的解。
下面我们以一个简单的非线性方程进行示例,来演示牛顿拉夫逊迭代法的步骤。
假设我们要解方程f(x) = x^3 - 2x - 5 = 0。
第一步,选择一个初始猜测值x0。
这个初值可以是任意的,但最好选择一个离方程根比较近的值,以便迭代过程更快收敛。
我们选取x0 = 2作为初始猜测值。
第二步,计算方程在x0处的导数f'(x0)。
在本例中,f'(x) = 3x^2 - 2。
将x0 = 2带入方程得到f'(2) = 3(2)^2 - 2 = 10。
第三步,计算切线方程的解。
切线方程的表达式为y = f'(x0)(x - x0) + f(x0)。
将x0 = 2和f'(2) = 10带入切线方程,得到y = 10(x - 2) + f(2)。
牛顿法

牛顿迭代法编辑同义词牛顿法一般指牛顿迭代法牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
中文名牛顿迭代法外文名Newton's method别名牛顿-拉夫逊(拉弗森)方法提出时间17世纪目录1 产生背景2 牛顿迭代公式3 其他迭代算法▪欧几里德算法▪斐波那契数列4 C语言代码5 C++代码6 matlab代码▪定义函数▪主程序7 Python代码8 Java代码9 JavaScript代码10 Fortran代码产生背景编辑多数方程不存在求根公式,因此求精确根非常困难,甚至不可解,从而寻找方程的近似根就显得特别重要。
方法使用函数的泰勒级数的前面几项来寻找方程的根。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。
另外该方法广泛用于计算机编程中。
牛顿迭代公式编辑设是的根,选取作为的初始近似值,过点做曲线的切线,,则与轴交点的横坐标,称为的一次近似值。
过点做曲线的切线,并求该切线与x轴交点的横坐标,称为r的二次近似值。
重复以上过程,得的近似值序列,其中,称为的次近似值,上式称为牛顿迭代公式。
用牛顿迭代法解非线性方程,是把非线性方程线性化的一种近似方法。
把在点的某邻域内展开成泰勒级数,取其线性部分(即泰勒展开的前两项),并令其等于0,即,以此作为非线性方程的近似方程,若,则其解为,这样,得到牛顿迭代法的一个迭代关系式:。
已经证明,如果是连续的,并且待求的零点是孤立的,那么在零点周围存在一个区域,只要初始值位于这个邻近区域内,那么牛顿法必定收敛。
并且,如果不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。
牛顿法

牛顿法牛顿迭代法牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。
设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0) f'(x0)(x-x0),求出L与x轴交点的横坐标x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。
过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴的横坐标x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。
重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r 的n+1次近似值,上式称为牛顿迭代公式。
解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。
把f(x)在x0点附近展开成泰勒级数f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +…取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=f(x)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。
牛顿法和拟牛顿法是求解无约束最优化的常用方法,有收敛速度快的优点. 牛顿法属于迭代算法,每一步需要求解目标函数的海赛矩阵的逆矩阵,计算复杂. 拟牛顿法通过正定矩阵近似海赛矩阵的逆矩阵,简化了这个过程。
牛顿-拉夫逊迭代法原理及其实现

牛顿迭代法(简写)就是一种近似求解实数域与复数域求解方程的数学方法。
那么这个方法是具体是什么原理呢?牛顿迭代如何迭代?直接看数学公式描述如何迭代不直观,先来看动图就很容易理解牛顿迭代法为什么叫迭代法以及怎样迭代的:牛顿迭代法是原理是根据一个初始点在该点做切线,切线与X轴相交得出下一个迭代点的坐标,再在处做切线,依次类推,直到求得满足精度的近似解为止。
由前面描述知道,牛顿迭代法是用来近似求解方程的,这里有两个点需要说明:•为啥要近似求解?很多方程可能无法直接求取其解•迭代法非常适合计算机编程实现,实际上计算机编程对于牛顿迭代法广为应用来看看,数学上如何描述的?其中为函数在处的一阶导数,也就是该点的切线。
来简单推一推上面公式的由来,直线函数方程为:知道一个直线的一个坐标点以及斜率则该直线的方程就很容易可以得知:那么该直线与轴的交点,就是y=0也即等式x 的解:啥时候停止迭代呢?1.计算出2.给出一个初始假定根值x0,利用上面迭代式子进行迭代3.计算绝对相对迭代近似误差4.将绝对相对近似误差与预定的相对误差容限进行比较。
如果,则迭代步骤2,否则停止算法。
另外,检查迭代次数是否已超过允许的最大迭代次数。
如果是这样,则需要终止算法并退出。
另一个终止条件是:如何编码呢?由于牛顿迭代法主要目的是解方程,当然也有可能用于某一个数学函数求极值,所以无法写出通用的代码,这里仅仅给出一个编代码的思路。
相信掌握了思路,对于各种实际应用应该能很快的写出符合实际应用的代码。
假定一函数为其波形图如下:其一阶导数为:那么对于该函数的根:从图上大致可以知道有两个根,如果直接解方程,则很难求出其根,可以编个代码试试:#include <stdio.h>#include <math.h>#include <stdlib.h>/*假定待求根函数如下*/#define F(x) (2*(x)*(x)-10*cos(x)+(x)-80)/*其一阶导数为*/#define DF(x) (4*(x)+10*sin(x)+1)float newton_rooting(float x0,float precision,float min_deltax,int max_iterations) {float xn,xn1,fn,fn1,dfn;float deltax;int step = 0;xn = x0;xn1 = x0;do{xn = xn1;fn = F(xn);dfn = DF(xn);/*判0*/if( fabs(dfn) <1e-6 ){if( fabs(fn)>precision )return NAN;elsereturn fn;}xn1 = xn - fn/dfn;fn1 = F(xn1);deltax = fabs(xn1-xn);step++;if( step>max_iterations ){if( fabs(fn1)<precision )return xn;elsereturn NAN;}}while( fabs(fn1)>precision || deltax>min_deltax );return xn1;}void main(){float root_guess = 23.0f;float precision = 0.00001f;float min_deltax = 0.001f;float root;int step = 7;root = newton_rooting( root_guess,precision,min_deltax,step );printf("根为: %f,函数值为:%f\n", root,F(root));root_guess = -23;root = newton_rooting( root_guess,precision,min_deltax,step );printf("根为: %f,函数值为:%f\n", root,F(root));}结果:根为: 6.457232, 函数值为:0.000004根为: -6.894969,函数值为:-0.000008函数值已经很接近于0了,如果还需要更为精确的值,则可以选择在此基础上进一步求解,比如利用二分法逼近。
牛顿迭代法

一 .牛顿迭代法简介1.牛顿迭代法的产生背景牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)=0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。
另外该方法广泛用于计算机编程中。
利用牛顿迭代法来解决问题需要做好的工作:(1)确定迭代变量。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
(2)建立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
(3)对迭代过程进行控制。
在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。
2.牛顿迭代法的概述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3.4 牛顿迭代法牛顿迭代法也称为牛顿-拉夫森(Newton-Raphson)迭代法,它是数值分析中最重要的方法之一,它不仅适用于方程或方程组的求解,还常用于微分方程和积分方程求解。
3.4.1 牛顿迭代法用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源大概有以下几种方式:1设],[)(2b a C x f ∈,对)(x f 在点],[0b a x ∈作泰勒展开: !2))((''))((')()(20000x x f x x x f x f x f -+-+=ξ略去二次项,得到)(x f 的线性近似式:))((')()(000x x x f x f x f -+≈。
由此得到方程=)(x f 0的近似根(假定≠)('0x f 0),)(')(000x f x f x x -= 即可构造出迭代格式(假定≠)('k x f 0):)(')(1k k k k x f x f x x -=+ 公式(3.4.1)这就是牛顿迭代公式,若得到的序列{k x }收敛于α,则α就是非线性方程的根。
2 牛顿迭代法也称为牛顿切线法,这是由于)(x f 的线性化近似函数)(x l =))((')(000x x x f x f -+是曲线y =)(x f 过点))(,(00x f x 的切线而得名的,求)(x f 的零点代之以求)(x l 的零点,即切线)(x l 与x 轴交点的横坐标,如右图所示,这就是牛顿切线法的几何解释。
实际上,牛顿迭代法也可以从几何意义上推出。
利用牛顿迭代公式,由k x 得到1+k x ,从几何图形上看,就是过点))(,(k k x f x 作函数)(x f 的切线k l ,切线k l 与x 轴的交点就是1+k x ,所以有1)()('+-=k k k k x x x f x f ,整理后也能得出牛顿迭代公式:)(')(1k k k k x f x f x x -=+。
3 要保证迭代法收敛,不管非线性方程=)(x f 0的形式如何,总可以构造:)()()(x f x k x x x -==ϕ )0)((≠x k ?作为方程求解的迭代函数。
因为:)(')()()('1)('x f x k x f x k x --=ϕ 而且)('x ϕ在根α附近越小,其局部收敛速度越快,故可令:0)('=αϕ若≠)('αf 0(即根α不是=)(x f 0的重根),则由0)('=αϕ得:)('1)(ααf k =, 因此可令)('1)(x f x k =,则也可以得出迭代公式:)(')(1k k k k x f x f x x -=+。
4 迭代法的基本思想是将方程0)(=x f 改写成等价的迭代形式)(x x ϕ=,但随之而来的问题却是迭代公式不一定收敛,或者收敛的速度较慢。
运用前述加速技巧,对于简单迭代过程)(1n n n x f x x +=+,其加速公式具有形式:θθϕ--=+1)(1n n n x x x )(111n n n x x x --+=++θθ,其中)(1n n x x ϕ=+ 记1-=θL ,上面两式可以合并写成:L x f x x n n n )(1-=+ 这种迭代公式称作简单的牛顿公式,其相应的迭代函数是:L x f x x )()(-=ϕ。
需要注意的是,由于L 是)('x ϕ的估计值,若取)()(x f x x +=ϕ,则)('x ϕ实际上便是)('x f 的估计值。
假设0)('≠x f ,则可以用)('x f 代替上式中的L ,就可得到牛顿法的迭代公式:)(')(1n n n n x f x f x x -=+。
牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种线性方程来求解。
3.4.2 牛顿迭代法的收敛性 牛顿迭代公式可以看成是由)(')()(x f x f x x -=ϕ而获得的不动点迭代格式。
这样就可以应用不动点迭代的收敛原则,只须证明在根α附近的迭代函数是一个压缩映象。
由于:222)]('[)(")()]('[)(")()]('[1)('x f x f x f x f x f x f x f x =--=ϕ,这里的根α是单根,即0)(=αf 且0)('≠αf ,于是:0)]('[)(")()('2==ααααϕf f f 。
那么由)('x ϕ的连续性可知,存在一个邻域),(δαδα+-,对这个邻域内的一切x ,有:qx <)('ϕ,其中O <q <1,因此)(x ϕ为区间),(δαδα+-上的一个压缩映象,于是有以下结论: 定理 3.4.1 设],[)(2b a C x f ∈,*x 是0)(=x f 的精确解,且0*)('≠x f ,则存在*x 的δ邻域)*,*(δδ+-x x ,对于任何迭代初值)*,*(0δδ+-∈x x x ,迭代序列}{n x 收敛于*x 。
牛顿迭代法具有较高的收敛速度,它的收敛阶数为p =2;而牛顿迭代法的局部收敛性较强,只有初值充分地接近*x,才能确保迭代序列的收敛性。
为了放宽对局部收敛性的限制,必须再增加条件建立以下收敛的充分条件。
定理 3.4.2设],[)(2baCxf∈,且满足:在区间],[ba上,⑴)()(<bfaf;⑵0)('≠xf;⑶)("xf不变号;⑷],[bax∈,满足条件:)(")(>xfxf则牛顿迭代序列}{nx,单调地收敛于方程)(=xf的唯一解*x。
由条件⑴至条件⑷可归结为四种情形:①)(<af,0)(>bf,0)('>xf,0)(">xf;②)(<af,0)(>bf,0)('>xf,0)("<xf;③)(>af,0)(<bf,0)('<xf,0)(">xf;④)(>af,0)(<bf,0)('<xf,0)("<xf。
对定理的几何意义作如下说明:条件⑴保证了根的存在性;条件⑵表明函数单调变化,在区间],[ba内有惟一的根;条件⑶表示函数图形在区间],[ba上的凹向不变。
条件⑶和条件⑷一起保证了每一次迭代值都界于区间],[ba内。
在不满足上述收敛充分条件时,有可能导致迭代值远离所求根的情况或死循环的情况(如下图所示)。
【例3.4.1】对于给定的正数a ,用牛顿法建立求平方根的收敛迭代公式。
解 令a x x f -=2)(,(x >0),则0)(=x f 的正根就是a 。
用牛顿法求解的迭代公式是:)(21221n n n n n n x a x x a x x x +=--=+, 公式(3.4.2) 由于当x >0时,x x f 2)('=>0,2)(''=x f >0,故由收敛定理可知,对于任意满足条件a x >0的初始近似值,由选代公式所产生的序列必定收敛于平方根a 。
公式(3.4.2)是计算平方根的准确而有效的计算方法。
3.4.3 牛顿迭代法的变形用牛顿法解方程,虽然在单根附近具有较快的收敛速度,但它有个明显的缺点,就是每次都要计算导数)('x f ,当)(x f 比较复杂时,计算)('x f 可能很困难。
下面介绍两种克服这种困难的方法,另外还介绍一种扩大牛顿迭代法初值选择范围的方法,它们统称为变形的牛顿迭代法。
1 简化牛顿法为避免频繁地计算导数值)('x f ,可将它取为固定值,比如在牛顿迭代公式中用)('0x f 代替)('n x f ,即在迭代过程中始终保持分母不变,则有简化牛顿迭代公式(或固定斜率切线法):)(')(01x f x f x x n n n -=+ 公式(3.4.3) 其几何意义如下图所示,这时除第一次迭代仍为曲线的切线外,其余皆为该切线的平行线。
简化牛顿法避免了每次计算导数值。
更一般地,若取L x f n =)(',则迭代公式成为:L x f x x n n n )(1-=+,称为推广的简化切线法。
这时L 值应满足下式: 1)('1)('<-=L x f x ϕ 满足上式的L 为:2)('0<<L x f ,可见当L 与)('x f 同号且满足上述不等式时,推广的简化切线法是收敛的。
该迭代形式在参数法里也曾得到过。
2 由牛顿法的收敛性定理知,牛顿法对初始值的选取要求是很高的。
一般地说,牛顿法只有局部收敛性。
当初始值取得离根太远时,迭代将不收敛,而一旦初始值进入收敛域内,牛顿法就有平方收敛的速度,为了扬长避短,扩大初始值选取的范围,下面介绍牛顿法的一种改进——牛顿下山法。
将牛顿法的迭代公式修改为:)(')(1n n n n x f x f x x λ-=+ 公式(3.4.3) 其中,λ是一个参数,λ的选取应使)(1+n x f <)(n x f 成立,当)(1+n x f <1ε或n n x x -+1<2ε,就停止迭代,且取1*+≈n x x ,其中1ε,2ε为事先给定的精度,1ε称为残量精确度,2ε为根的误差限;否则再减λ,继续迭代。
按上述迭代过程计算,实际上得到了一个以零为下界的严格单调下降的函数值序列,这个方法就称为牛顿下山法。
λ称为下山因子,要求满足0<λε1≤≤λ,λε称为下山因子下界,为了方便,一般开始时可简单地取1=λ,然后逐步分半减小,即可选取1=λ,21,221,…,λελ≥,且使)(1+n x f <)(n x f 成立。
牛顿下山法计算步骤可归纳如下:⑴ 选取初始近似值0x ;⑵ 取下山因子1=λ; ⑶ 计算1+n x ,)(')(1n n n n x f x f x x λ-=+ ⑷ 计算)(1+n x f ,并比较)(1+n x f 与)(n x f 的大小,分以下两种情况:① 若)(1+n x f <)(n x f ,则当n n x x -+1<2ε时,则就取1*+≈n x x ,计算过程结束;当n n x x -+1>2ε时,则把1+n x 作为新的n x 值,并重复回到⑶。
②若)(1+n x f ≥)(n x f ,则当λελ≤且)(1+n x f <1ε,就取n x x ≈*,计算过程结束;否则,若λελ≤,而)(1+n x f ≥1ε时,则把1+n x 加上一个适当选定的小正数,即取δ++1n x 作为新的n x 值,并转向⑶重复计算;当λελ>,且)(1+n x f ≥1ε时,则将下山因子缩小一半,并转向⑶重复计算。