牛顿法

牛顿法的基本含义

泰勒公式:

f(x)=f(a)0!(xa)0+f(a)1!(xa)+f′′(a)2!(xa)2+...+fn(a)n!(xa)n+Rn(x)(B.1)

现在要求f(x)的极小值,假设f(x)是二阶连续偏导数,若第k次迭代值为 xk ,则可将f(x)在该点附近进行二阶泰勒展开:

f(x)=f(xk)+gTk(xxk)+12(xxk)TH(xk)(xxk)(B.2)

gk=g(xk)=(f(xk)(B.3)

H(xk)=[2fxixj]nn

推导流程

我们知道求极值,必要条件是一阶导数为0,那么 f(x)=0
我们利用 f(x) 推导一下:

f(x)x=gk+H(xk)(xxk)

基于

xTAxx=2Ax

把一阶导数带入:

gk+H(xk)(xk+1xk)=0(B.4)

xk+1=xkH1kgk(B.5)

至此找到了两次不同位置点的更新公式,那就找到了迭代方法。于是

算法流程

输入: f(x) ,梯度 g(x)=f(x) , 海塞矩阵 H(x) , 精度要求 ε
输出: f(x) 的极小点 x
算法步骤:

  1. 初始化点 x0,k=0 .
  2. 计算梯度 g(xk)
  3. ||g(xk)||<ε ,则得到极小点 xk
  4. 否则继续迭代 xk+1=xkH1kgk ,得到k=k+1
  5. 然后转步骤2

核心要点

  1. 需要求极值
  2. 然后泰勒公式展开
  3. 然后求导,得到梯度和海塞矩阵
  4. 极值满足必要条件梯度为0,所以推导出两次迭代的更新公式
  5. 根据精度得到迭代跳出条件
  6. 海塞矩阵逆矩阵是复杂度较高的计算,需要优化和计算解决的问题。

参考

http://blog.csdn.net/sunnyxiaohu/article/details/52456261

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值