BFGS 算法

BFGS算法是一种拟牛顿法,主要用于求解优化问题。它关注下降方向和搜索步长,采用满足Wolf条件的线搜索。该算法是秩为2的,并且其正确性基于特定的定理证明。文中分享了作者对BFGS算法的理解,包括一段代码的解析,并将其与DFP最优解进行了对比。同时提到了可以用Wolf线搜索替代进退算法或黄金分割算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BFGS 算法是拟牛顿算法的一种。我们知道不管是梯度下降、共轭梯度、还是牛顿法,我们都要解决两个问题,一个是下降方向,一个是搜索步长。搜索步长我们一般采取的方法是用满足wolf 条件的线搜索。

本节我们主要介绍BFGS 算法。对于这个算法。我们首先需要知道的是它是一个秩为2的算法。以及它为什么可以用来计算的原因。


重点在于定理证明的后面。


我在网上找到一段代码,但是没有看懂标红线的部分。我自己改了一个版本。得到的结果与作者发布的DFP 的最优解是一致的。所以我默认为它是对的。如果大家发现什么问题,请反馈给我。

%拟牛顿法中BFGS算法求解f = x1*x1+2*x2*x2-2*x1*x2-4*x1的最小值,起始点为x0=[1 1]  H0为二阶单位阵
%算法根据最优化方法(天津大学出版社)122页编写
%v1.0 author: liuxi BIT

%format long
syms  x1 x2 alpha;
f = x1*x1+2*x2*x2-2*x1*x2-4*x1;%要最小化的函数
df=jacobian(f,[x1 x2]);%函数f的偏导
epsilon=1e-6;%0.000001
k=1;
x0=[1 1];%起始点
x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值