参考资料
《精通MATLAB最优化计算(第二版)》
数值实现
Matlab 2019a
目录
石中居士:最优化计算与Matlab实现——目录zhuanlan.zhihu.com可接受搜索法
可接受搜索法是求一维函数在区间
上的近似极小值,而这个近似精度由一个可接受参数来度量,用可接受搜索法能求得极值的条件是函数在零点处的导数小于0,即
。主要有两种可接受搜索法:Armijo-Goldstein法和Wolfe-Powell法。
Armijo-Goldstein法
- 原理:从原点出发进行探测,探测点能够接受的上限值为
,如果探测点处的函数值小于此值,则减小探测步长;探测点能够接受的下限值为,如果探测点处的函数值大于此值(且小于上限值),则停止迭代输出结果,否则增大迭代步长。
- 算法步骤:用Armijo-Goldstein法求无约束问题
的算法步骤如下
【1】在搜索区间
或
上取定初始探测点,计算
,给出可接受系数
和
,增大探索点系数
,令
或
;
【2】计算
,若
,则转【3】,否则令
,转【4】;
【3】若
,停止迭代输出
;否则令
,若
转【4】,否则令
转【2】;
【4】令
,置
转【2】
一般取
。
- Matlab代码与试算(稍作改动)
test.m
% 基于Matlab2019a
Armijo_Goldstein_Method.m
% Armijo-Goldstein法
命令行窗口
x_optimization
目标函数在
上存在极小值,因此用Armijo-Goldstein法可求得。