【MATH】牛顿法基础

牛顿法 (Newton Method)

背景

求解非线性方程和优化问题,在此之前是用二分法解决逼近问题。

核心内容

  • 泰勒级数展开
  • 迭代更新
  • 梯度和海森矩阵(Hessian Matrix)
  • 收敛性条件

特点

收敛速度快,但需要计算高阶导数(海森矩阵)

基本思想

利用迭代点处的一阶导数(梯度)和二阶导数(海森矩阵)对目标函数进行二次函数近似,然后把二次模型的极小值点作为新的迭代点,并不断重复这一过程,直到满足截止条件(一般是求解精度)

基本牛顿法

基本牛顿法是一种用导数的方法,它的每一步迭代方向都是沿当前点函数值下降的方向。

应用A-求解非线性方程问题(又名切线法等名字较多)

在这里插入图片描述
假设,我们要求某个非线性方程 f ( x ) = 0 f(x)=0 f(x)=0,给出一阶泰勒展开式: f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + o ( x − x 0 ) 2 f(x)=f(x_0)+f'(x_0)(x-x_0)+o(x-x_0)^2 f(x)=f(x0)+f(x0)(xx0)+o(xx0)2
忽略二阶项,则有: x = x 0 − f ( x 0 ) f ′ ( x 0 ) x=x_0-\frac{f(x_0)}{f'(x_0)} x=x0f(x0)f(x0)
我们找到新的近似值 x x x,当重复整个过程就可以不断逼近零点,从几何意义上讲,改过程可以看成上图给定一个初始值 x 0 x_0 x0,求其切线与x轴的交点 x x x,得到近似值后重复整个过程直到截止条件。

总结

如果 x n x_n xn是非线性方程 f ( x ) = 0 f(x)=0 f(x)=0的一个近似解,如果 f ′ ( x n ) ≠ 0 f'(x_n)\neq0 f(xn)=0,则下一个近似解由下式给出 x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)} xn+1=xnf(xn)f(xn)

应用B-优化问题

我们集中讨论一维情形,对于一个需要求解的优化函数 f ( x ) f(x) f(x),求函数的极值问题可以转化为求解导数问题 f ′ ( x ) = 0 f'(x)=0 f(x)=0
给出函数二阶泰勒公式: f ( x ) = f ( x k ) + f ′ ( x k ) ( x − x k ) + 1 2 f ′ ′ ( x k ) ( x − x k ) 2 + o ( x − x k ) 3 f(x)=f(x_k)+f'(x_k)(x-x_k)+\frac{1}{2}f''(x_k)(x-x_k)^2+o(x-x_k)^3 f(x)=f(xk)+f(xk)(xxk)+21f′′(xk)(xxk)2+o(xxk)3
则问题可近似转化为: f ′ ( x k ) + f ′ ′ ( x k ) ( x − x k ) = 0 f'(x_k)+f''(x_k)(x-x_k)=0 f(xk)+f′′(xk)(xxk)=0即:
x = x k − f ′ ( x k ) f ′ ′ ( x k ) x=x_k-\frac{f'(x_k)}{f''(x_k)} x=xkf′′(xk)f(xk)得到更新公式,循环上述过程

流程
  1. 给定终止条件 0 < ε < 1 0<\varepsilon<1 0<ε<1;
  2. 选择初始点 x 0 ∈ R n x_0\in R^n x0Rn , 令 k = 0 k=0 k=0
  3. 计算一阶导(梯度) g k = ▽ f ( x k ) g_k = \triangledown f(x_k) gk=f(xk)
  4. 判断 g k < ε g_k<\varepsilon gk<ε
  5. 若是, x ∗ ≃ x k x^*\simeq x_k xxk
  6. 否则,计算 G k = ▽ 2 f ( x k ) G_k = \triangledown^2f(x_k) Gk=2f(xk),得到更新解: x k + 1 = x k − g k G k x_{k+1}=x_k-\frac{g_k}{G_k} xk+1=xkGkgk
  7. k = k + 1 k=k+1 k=k+1,重复计算过程转2

其他牛顿法

比如基于Armijo搜索的全局牛顿法等,都是此基础的优化,本处不再讨论。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值