参考资料
《精通MATLAB最优化计算(第二版)》
编程工具
Matlab 2019a
目录
石中居士:最优化计算与Matlab实现——目录zhuanlan.zhihu.com
信赖域法
信赖域法是一种比较复杂但是十分有效的优化算法,它通过在信赖域内求解一个二次规划来得到可行点。在每个可行点
处,在给定信赖域半径 下通过求解下面的子问题得到搜索方向: 在得到搜索方向后,再对信赖域半径进行修正。
用信赖域法求无约束多维极值问题
的算法步骤如下:
【1】给定可行点
,信赖域半径
,参数
及精度
,并令
;
【2】计算梯度
,其中
为函数
在点
处的梯度;若
,停止,极小点为
,否则转【3】;
【3】求解下面的子问题:
设最优解为
,令
【4】如果
,令
,否则
;
【5】按下式修改信赖域半径:
【6】置
,转【2】。
用信赖域法求函数
的极小值,取初始信赖域半径 ,初始点 ,初始参数 。 test.m
Trust_Region_Method.m
命令行窗口
输出的警告信息是代码中的函数quadprog的求解输出信息。可以看出信赖域法成功求得目标函数的极小值。对于一般的无约束优化问题,信赖域方法是一种比较有效的方法。而其中信赖域半径的选取对算法的好坏有着很大的影响。
目录
石中居士:最优化计算与Matlab实现——目录zhuanlan.zhihu.com