什么是“牛顿法”或“牛顿迭代法”? 请简述过程及原理,有例子更好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是“牛顿法”或“牛顿迭代法”? 请简述过程及原理,有例子更好相关的知识,希望对你有一定的参考价值。

参考技术A 牛顿法是牛顿在17世纪提出的一种求解方程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的近似值序列Xn,其中Xn+1=Xn-f(Xn)/f'(Xn),称为r的n+1次近似值.上式称为牛顿迭代公式.

牛顿法和拟牛顿法

  梯度下降在逻辑回归中已经介绍过,它是求解无约束最优化问题的常用方法,而牛顿法和拟牛顿法也是求解无约束最优化问题的常用方法,且收敛速度更快。牛顿法是迭代算法,每一步都需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这一计算过程。

1.牛顿法

  考虑无约束最优化问题:

minxRnf(x)

其中 x 为目标的极小值点。
  备用知识——一元 f(x) 、二阶泰勒展开

f(x)=f(x(k))+f(x(k))(xx(k))+12f′′(x(k))(xx(k))2

  假设 f(x) 具有二阶连续偏导数,若第 k 次迭代值为x(k),则可将 f(x) x(k) 附近进行二阶泰勒展开:

f(x)=f(x(k))+gTk(xx(k))+12(xx(k))TH(x(k))(xx(k))

其中, gk=g(x(k))=f(x(k)) f(x) 的梯度向量在点 x(k) 的值, H(x(k)) f(x) 的海塞矩阵(Hesse matrix):

H(X)=[2fxixj]n×n
  

以上是关于什么是“牛顿法”或“牛顿迭代法”? 请简述过程及原理,有例子更好的主要内容,如果未能解决你的问题,请参考以下文章

高斯牛顿法的介绍

方程求根——牛顿迭代法

牛顿迭代法(Newton's Method)

matlab牛顿迭代法急!!(100分悬赏)

牛顿法

用MATLAB编出牛顿迭代法的程序