牛顿法求极值

最近在做两幅图像间单应性矩阵估计的研究,遇到LM(Levenberg-Marquardt)算法求极值,在查找资料的过程中发现它兼具梯度下降、与牛顿法的特点,遂逐层抽丝剥茧,现总结牛顿法。

  • 一维牛顿法解方程
    求函数f(x)的根。复杂方程的根很难直接求得,最开始用牛顿法迭代来求方程的根。
    方法是给一个初值x1,在x1处用一阶泰勒展式(为什么用一阶泰勒展式这里需要弄懂泰勒展式之后再来解释???)来近似表示函数f(x)见公式(1)。
    f(x) = f(x1) + f’(x1)(x - x1) (1)
    将f(x) = 0带入公式(1),求得交点x = x1 - f(x1)/f’(x1),这个x点并不是函数f(x)的根,但是距离真正的根更近了一点,如图1所示。
    将上一步所求的x值作为x2值,在x2值处用一阶泰勒展式见公式(2)。
    f(x) = f(x2) + f’(x2)(x - x2) (2)
    将f(x) = 0带入公式(2),求得交点x = x2 - f(x2)/f’(x2),依次迭代进而推出公式(3)。
    x(n+1)=x(n)-f(x(n))/f’(x(n)) (3)
    最终求得的x值变化小于一个阈值就认为这个x值是函数f(x)的近似根。

  • 一维牛顿法求极值
    牛顿法用于求函数极值。对于f(x)的极值点也就是求f’(x)的根,那么也就是如上面介绍的求f’(x)=0的根。给定初值x1,在x1处用二阶泰勒展式见公式(4)。
    f(x) = f(x1) + f’(x1)(x - x1) + 1/2f’’(x1)(x-x1)^2 (4)
    对f(x)求导,令f’(x) = 0, 得x = x1 - f’(x1)/f’’(x1),依次迭代得
    x(n+1)= x(n) - f’(x(n) )/f’’(x(n) )。

  • 多维牛顿法求根
    以上讨论的都是二维向量的情况,下面介绍当因变量X=(x1,x2,x3 … xn)一个向量时的求解,对多维向量进行泰勒展式:
    多维泰勒展式
    令一阶泰勒为0得到:
    一阶泰勒为0
    整理:
    整理
    假定方程组由一系列方程{f1=0, f2=0, …, fn=0}组成,可以将上式整理为矩阵形式:
    方程组
    n个未知数所以有n组方程才能求得n个未知数。
    上式中的n*n矩阵为雅可比矩阵(Jacobian Matrix),简记为J(F)。同时,将自变量(x1,…,xn)记为X,将(t1,…,tn)记为T,将(f1,…,fn)记为F,则有:
    在这里插入图片描述
    化简后可得:
    在这里插入图片描述
    将方程组的解写为迭代形式,即可得到适用于方程组求解的牛顿法迭代公式:
    在这里插入图片描述

  • 多维牛顿法求极值

  • 参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值