matlab cg steihaug,截断共轭梯度法

本文介绍了如何在Matlab中实现截断共轭梯度法(Steihaug-Toint CG),用于解决信赖域子问题。在存在信赖域约束时,该方法通过添加额外的终止条件处理负曲率或超出信赖域的情况。文中给出了详细的算法步骤和代码实现。
摘要由CSDN通过智能技术生成

截断共轭梯度法

考虑信赖域子问题: 676f644a7a5c2272a1c08bc1b429c19d.png 其中 d999c22eccdd6508971ea757447e2eae.png 是目标函数,$\nabla f(x), \nabla^2 f(x)$ 表示 d999c22eccdd6508971ea757447e2eae.png的梯度与海瑟矩阵。注意,当 58bb40cfb897db67398603405c88c46c.png 时,信赖域子问题就等同于求解牛顿方程。

这里,实现截断共轭梯度法 (Steihaug-Toint Conjugate gradient, ST-CG 方法)来求解上述信赖域子问题。

当约束不存在时(即 e7796687a84d23f61325b69c60b0db53.png),共轭梯度法通过求解一系列共轭方向可以快速求解对应的无约束二次优化问题。具体地,对于问题 6561df23ce992f76a37790e7e94a17b3.png,给定初始 38070ae58bfcf8706e9987a58fa4bd31.png, 9a1260ea0b529472b125c07230a59385.png, 08cb6abad7a2c2e4238fe2d8dd8f1a35.png,共轭梯度法的迭代格式为:

96f86e9720098a13eb3066226dc42dc0.png

当信赖域约束存在时,共轭梯度法得到的解不能保证落在可行域内。因此,截断共轭梯度法则在共轭梯度法增加两条额外的终止条件,用于处理负曲率 c7f466cf9a224f7131a52bb70b19d534.png 或超过信赖域半径 58e445499ef76dcb1f29e47e0c698edf.png 的情况。

目录

初始化和迭代准备

输入信息:迭代点 911bd343d886bc62486cbc3204fe0a9c.png,梯度 grad,海瑟矩阵 hess,信赖域半径 ed5fcb17ce25d73881f13bcac0829cac.png, 包含算法参数的结构体 opts 。 输出信息:信赖域子问题的解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值