牛顿拉夫逊法(Newton-Raphson Method)

牛顿拉夫逊法(Newton-Raphson Method) 

(2015-07-02 15:15:48)
转载
  分类: computerVision
http://baike.baidu.com/view/643093.htm
牛顿 迭代法 Newton's method )又称为 牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method) ,它是 牛顿 在17世纪提出的一种在 实数 域和 复数 域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的 泰勒级数 的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。


http://www.cnblogs.com/kemaswill/p/3505133.html
牛顿拉夫逊法(Newton-Raphson Method)_第1张图片
其核心思想是沿着导数方向连续性的逼近一个实函数的根值。

http://blog.csdn.net/lttclaw_/article/details/37316663

二分法基本思想就是在每次将解的可能范围减半,如猜价格游戏就可以很好体现这点。一个物品价格在0到10000间,猜中点然后根据反馈是高了还是低了将猜测范围减半,这样下来,必然能不断趋近于正确结果。

牛顿-拉夫逊法为数学上求近似解的方法,也称牛顿法,切线法,是给一个初始值,这个初始值对应函数的切线与x轴交点为下一个跟接近解的值,依次继续,直到误差小到要求的程度牛顿拉夫逊法(Newton-Raphson Method)_第2张图片

其实这个方法还是很简单的,比如求解一个非线性方程的根:  f(x) = 0。

假设r是这个方程的根,那么:
                             f(r) = 0

牛顿法的思路就是找到一个离r非常近的x,但是因为r实际上是不知道的,因此也没有办法一开始就可以设置一个很接近于r的x,因此先随机设定一个x0,=》 r = x0 + h,使用taylor展开,下面就是找到一个足够小的h和xn满足上面这个公式,如果h足够小了,那么说明xn就是非常接近r了。
              如果f'(xn)=0,那么就表示h就是足够小。
使用上面的方法反复的进行迭代逼近,可以得到一个收敛的解。


http://www.cnblogs.com/begtostudy/archive/2010/08/25/1808029.html

求方程f (x ) = cos(x ) − x 3 的根。两边求导,得f  '(x ) = −sin(x ) − 3x 2 。由于cos(x ) ≤ 1(对于所有x ),以及x 3 > 1(对于x >1),可知方程的根位于0和1之间。我们从x 0 = 0.5开始。

\begin{matrix} x_1 & = & x_0 - \frac{f(x_0)}{f'(x_0)} & = & 0.5 - \frac{\cos(0.5) - 0.5^3}{-\sin(0.5) - 3 \times 0.5^2} & = & 1.112141637097 \ x_2 & = & x_1 - \frac{f(x_1)}{f'(x_1)} & = & \vdots & = & \underline{0.}909672693736 \ x_3 & = & \vdots & = & \vdots & = & \underline{0.86}7263818209 \ x_4 & = & \vdots & = & \vdots & = & \underline{0.86547}7135298 \ x_5 & = & \vdots & = & \vdots & = & \underline{0.8654740331}11 \ x_6 & = & \vdots &= & \vdots & = & \underline{0.865474033102} \end{matrix}




泰勒公式的推导:

公式推导

我们知道,根据 拉格朗日中值定理导出的有限增量定理有:
于是:
其中误差α是在Δx→0即x→x 0的前提下才趋向于0,所以在近似计算中往往不够精确。于是我们需要一个能够足够精确的且能估计出误差的多项式:
来近似地表示函数f(x)且要写出其误差f(x)-P(x)的具体表达式。设函数P(x)满足 :
于是可以依次求出A 0、A 1、A 2、……、A n,显然有:
 
,所以
   
 
,所以
   
 
,所以
   
 
,所以
   
至此,多项的各项系数都已求出,得:
以上就是函数
   
的泰勒展开式。
接下来就要求误差的具体表达式了。设
   
,令
   
得到:
进而:
根据 柯西中值定理:
其中θ 1在x和x 0之间;
继续使用柯西中值定理得到:
其中θ 2在θ 1和x 0之间;
连续使用n+1次后得到:
其中θ在x和x 0之间;
同时:
而:
 
进而:
综上可得:
一般来说展开函数时都是为了计算的需要,故x往往要取一个定值,此时也可把R n(x)写为R n [1]  

麦克劳林展开

函数的麦克劳林展开指上面泰勒公式中x 0取0的情况,即是泰勒公式的特殊形式,若f(x)在x=0处n阶连续可导,则下式成立:
其中
   
表示f(x)的n阶导数。
   
,其中δ在0与x之间时,公式称为拉格朗日型余项的n阶麦克劳林公式;
   
时公式称为带佩亚诺型余项的n阶麦克劳林公式

你可能感兴趣的:(算法--之根的迭代)