目标函数为nn维二次型函数时,共轭方向法能够在nn步迭代之后得到极小点。接下来会发现,共轭方向法的中间迭代步骤具有一种很有意义的性质。选定x(0)\boldsymbol{x}^{(0)}作为迭代初始点, d(0)\boldsymbol{d}^{(0)}为初始搜索方向, 有:

x(1)=x(0)−(g(0)Td(0)d(0)TQd(0))d(0)

\boldsymbol{x}^{(1)} = \boldsymbol{x}^{(0)} - \biggl( \frac{\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}}{\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}}\biggr)\boldsymbol{d}^{(0)}
可以证明:

g(1)Td(0)=0

\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)}=0
推导过程:

g(1)Td(0)=(Qx(1)−b)Td(0)=x(0)TQd(0)−(g(0)Td(0)d(0)TQd(0))d(0)TQd(0)−bTd(0)=g(0)Td(0)−g(0)Td(0)=0

\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)} = (Q\boldsymbol{x}^{(1)}-\boldsymbol{b})^T\boldsymbol{d}^{(0)} \\=\boldsymbol{x}^{(0)T}Q\boldsymbol{d}^{(0)} - \biggl( \frac{\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}}{\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}}\biggr)\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}-\boldsymbol{b}^{T}\boldsymbol{d}^{(0)}\\ =\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}-\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}=0
    方程 g(1)Td(0)=0\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)}=0表示步长为 α0=argminϕ0(α)\alpha_0=\arg min \phi_0(\alpha),其中, ϕ0(α)=f(x(0)+αd(0))\phi_0(\alpha)=f(\boldsymbol{x}^{(0)}+\alpha\boldsymbol{d}^{(0)}).推导过程如下:
由链式法则可得:

dϕ0dα(α)=∇f(x(0)+αd(0))Td(0)

\frac{d\phi_0}{d\alpha}(\alpha)=\nabla f(\boldsymbol{x}^{(0)}+\alpha\boldsymbol{d}^{(0)})^T\boldsymbol{d}^{(0)}
将 α=α0\alpha = \alpha_0带入得:

dϕ0dα(α0)=g(1)Td(0)=0

\frac{d\phi_0}{d\alpha}(\alpha_0) = \boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)} = 0
由于 ϕ0\phi_0是关于 α\alpha的平方函数,其中 α2\alpha^2的系数为 d(0)TQd(0)>0\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)} >0, 说明 ϕ0\phi_0存在唯一的极小点,因此, α0=argminϕ0(α)\alpha_0=\arg min \phi_0(\alpha)。
    以此类推,可以证明,对于所有 kk,都有:

g(k+1)Td(k)=0

\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(k)} = 0

α0=argminf(x(k)+αd(k))

\alpha_0=\arg min f(\boldsymbol{x}^{(k)}+\alpha\boldsymbol{d}^{(k)})
实际上,还有更一般的结论,如下引理所示:
* 引理 *在共轭方向算法中, 对于所有的 k,0≤k≤n−1,0≤i≤kk, 0 \le k \le n-1, 0 \le i \le k 都有 :

g(k+1)Td(i)=0

\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(i)} = 0

最优化学习笔记(十二)——基本共轭方向算法(续)相关推荐

  1. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  2. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  3. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  4. ROS学习笔记十二:使用roswtf

    ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...

  5. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  6. 【现代机器人学】学习笔记十二:轮式移动机器人

    目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...

  7. 【theano-windows】学习笔记十二——卷积神经网络

    前言 按照进度, 学习theano中的卷积操作 国际惯例, 来一波参考网址 Convolutional Neural Networks (LeNet) 卷积神经网络如何应用在彩色图像上? 卷积小知识 ...

  8. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 变量的地址就是指针,存放指针的变量就是指针变量(因而又叫作地址变量 address variable); 这个地址编号本身就是一个无符号的整数,在32位系统下为4字节(8位 ...

  9. Vue.js 学习笔记 十二 Vue发起Ajax请求

    首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...

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

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

最新文章

  1. C++里如何使用功能键(F1、F2·····)进行操纵?
  2. 工程师如何解决穿衣搭配烦恼?——滴搭平台与算法
  3. 【数据结构与算法】之深入解析“整数转罗马数字”的求解思路与算法示例
  4. vsCode ext install 不工作
  5. 使用keil建立标准STM32工程模版(图文详细版!)
  6. chrome java插件_Java程序员喜欢的10款软件里有你在用的吗?
  7. OC基础1:一些基本概念
  8. code的bootstrap如何有提示 vs_如何用DataFocus对Excel表中数据进行分析?
  9. encoder decoder模型_3分钟|聊一聊 Decoder 模块
  10. 渲染百万网页,终于找到影响性能的原因了
  11. UWP TextBox私人定制
  12. 从时间中提取年月(MySQL中extract函数用法)
  13. MSDN帮助文档中文
  14. MYSQL安装+Mysql-front 注册码
  15. 计算机键盘怎样做除法,电脑键盘除法是哪个键?
  16. 3D 音效 Matlab实现
  17. 火车头采集html5游戏,火车头采集工具Wed发布配置方法
  18. tokenize java,Java split string - Java tokenize string examples - 入门小站-rumenz.com
  19. 我在Blue Nile(蓝色尼罗河)上通过python爬取一百万颗钻石,最终选出心仪的一颗
  20. 18650圆柱锂电池comsol5.6模型 参数已配置,电化学生热研究,三种放电倍率,

热门文章

  1. 第一个鸿蒙程序“hello world“
  2. java sql server 2016_SQL server 2016 安装步骤
  3. mysql5.0.19_CentOS下升级MySQL5.0.19到5.5
  4. 数据结构排序2-希尔,快速,归并排序
  5. django与grpc融合的过程
  6. java 对list增删_List 中正确的增删操作
  7. 【Python】pyCryptodome模块实现AES加密、解密
  8. Spring中@Async
  9. 【二分法】- leetcode
  10. shell执行的特殊变数