秩2算法可以保证在任意第kk步迭代下, 只要一维搜索是精确的,近似矩阵Hk\boldsymbol{H}_k就是正定的。

DFP算法

  1. 令k=0k=0,选择初始点x(0)\boldsymbol{x}^{(0)},任意选择一个堆成正定实矩阵H0\boldsymbol{H}_0。
  2. 如果g(k)=0\boldsymbol{g}^{(k)} = \boldsymbol{0}, 停止迭代; 否则,令d(k)=−Hkg(k)\boldsymbol{d}^{(k)} =-\boldsymbol{H}_k\boldsymbol{g}^{(k)}
  3. 计算
    αk=argminα≥0f(x(k)+αd(k))x(k+1)=x(k)+αkd(k)

    \alpha_k = \arg \min_{\alpha \ge 0} f(\boldsymbol{x}^{(k)} + \alpha\boldsymbol{d}^{(k)} ) \\ \boldsymbol{x}^{(k+1)} = \boldsymbol{x}^{(k)} + \alpha_k\boldsymbol{d}^{(k)}
    4.计算

    Δx(k)=αkd(k)Δg(k)=g(k+1)−g(k)Hk+1=Hk+Δx(k)Δx(k)TΔx(k)TΔg(k)+[HkΔg(k)][HkΔg(k)]TΔg(k)THkΔg(k)

    \Delta\boldsymbol{x}^{(k)} = \alpha_k\boldsymbol{d}^{(k)} \\ \Delta\boldsymbol{g}^{(k)} = \boldsymbol{g}^{(k+1)} - \boldsymbol{g}^{(k)}\\ \boldsymbol{H}_{k+1} = \boldsymbol{H}_k + \frac{\Delta\boldsymbol{x}^{(k)}\Delta\boldsymbol{x}^{(k)T}}{\Delta\boldsymbol{x}^{(k)T}\Delta\boldsymbol{g}^{(k)} } +\frac{[\boldsymbol{H}_k \Delta\boldsymbol{g}^{(k)}][\boldsymbol{H}_k \Delta\boldsymbol{g}^{(k)}]^T}{\Delta\boldsymbol{g}^{(k)T}\boldsymbol{H}_k \Delta\boldsymbol{g}^{(k)}}
    5.令 k==k+1k==k+1, 回到第二步。

定理18.1 利用DFP算法求解二次型问题时,Hessian矩阵为Q=QT,有Hk+1Δg(i)=Δx(i),0≤i≤k\boldsymbol{Q} = \boldsymbol{Q}^T, 有\boldsymbol{H}_{k+1}\Delta\boldsymbol{g}^{(i)}=\Delta\boldsymbol{x}^{(i)}, 0 \le i \le k成立。

需要说明的是DFP算法是一种共轭方法。
定理18.2 假定g(k)≠0\boldsymbol{g}^{(k)} \ne \boldsymbol{0},在DFP算法中,只要矩阵Hk\boldsymbol{H}_{k}是正定的, Hk+1\boldsymbol{H}_{k+1}就一定是正定的。

DFP算法能够使得Hk\boldsymbol{H}_{k}是正定的,因此它由于秩1算法,但是,处理一些规模较大的非二次型问题时,DFP算法会被“卡住”,迭代无法继续展开,原因是Hk\boldsymbol{H}_{k}矩阵接近称为奇异矩阵了,后续的BFGS算法可以解决这一问题。

最优化学习笔记(十八)——拟牛顿法(4)DFP算法相关推荐

  1. 最优化学习笔记(十九)——拟牛顿法(5)BFGS算法

    一.BFGS算法的更新公式 为了推导BFGS算法,需要用到对偶或者互补的概念,前边已经讨论过hessian矩阵逆矩阵的近似矩阵需要满足以下条件: Hk+1Δg(i)=Δx(i)0≤i≤k \bolds ...

  2. 最优化学习笔记(十六)——拟牛顿法(2)

    Hessian矩阵逆矩阵的近似 一.拟牛顿法的基本思路 令H0,H1,H2,-\boldsymbol{H_0,H_1, H_2}, \dots表示Hessian矩阵逆矩阵F(x(k))−1\bolds ...

  3. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...

  4. windows内核开发学习笔记十八:IRP 处理的标准模式

    windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...

  5. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  6. 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形

    <MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...

  7. 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现

    (注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffe ...

  8. three.js学习笔记(十八)——调整材质

    介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...

  9. 【theano-windows】学习笔记十八——混合蒙特卡洛采样

    #前言 继续之前的Theano学习,本次主要学习混合蒙特卡洛(Hybrid Monte-Carlo Sampling)采样算法. 国际惯例,参考网址 Hybrid Monte-Carlo Sampli ...

最新文章

  1. PHP中try{}catch{}是异常处理.
  2. dojo gridx修改表头
  3. 卫星导航精密单点定位(PPP)技术
  4. 为PHP安装Memcached扩展连接Memcached
  5. 计算机的登入灯出操作系统,为什么计算机不能像电灯一样瞬时打开?
  6. ubuntu升级python_Ubuntu 升级python3为更高版本【已实测】
  7. Java学习、简单代码编译
  8. python中文版软件下载-Python IDLE(Python集成开发环境)v3.7中文版
  9. 【转载】快速掌握一个语言最常用的50%
  10. 电子商务概论(农)之章节课后题
  11. 经济类图书推荐--转自水木
  12. ubuntu如何杀进程_ubuntu kill进程
  13. 【sphinx】中文声学模型训练
  14. 国外服务器使用CDN加速怎么样
  15. 乙女心,养的第一株多肉小植物
  16. PPT文件如何解决不能打印的问题
  17. Simulink文件命名问题
  18. 山东 计算机专业,山东省内计算机专业大学排名?
  19. R语言学习day2丨三大法宝:判断、循环、函数
  20. 反编译工具Virtuous Ten Studio使用

热门文章

  1. 给定4个数字组合的C语言算法,leetcode 454. 四数相加 II c语言
  2. cwntos linux kde桌面,Centos如何安装KDE的桌面
  3. 【OpenCV 例程200篇】19. 图像的圆形遮罩
  4. Python数模笔记-StatsModels 统计回归(3)模型数据的准备
  5. mysql 数据类型怎么用,myMySQL数据库怎么更改表中某字段的数据类型? MySQL数据库使用教程...
  6. 机械制造工艺基础_机械制造工艺基础知识,錾削与锯削加工工艺
  7. 360浏览器登录_浏览器发展历史介绍及当今主流浏览器的详细对比
  8. mybatis 控制台打印执行的SQL语句
  9. 数据类型总结(干货)
  10. Java Lambda表达