本仓库是对无约束优化算法的介绍和Matlab代码复现。
步0 选取初始点
步1 计算梯度
步2 取方向为负梯度方向
步3 由线搜索技术(我选择的算法是Armijo算法)确定步长因子
步4 令
步0 给定误差阈值
步1 计算当前点的梯度
步2 计算当前点的海森矩阵
步3 寻找满足Armijo条件的步长。定义
步4更新下一个点为
步0 给定参数
步1 计算
步2 计算海森矩阵
得解
步3 令
令
步4 令
步0 给定误差阈值
步1 若
步2 计算搜索方向
其中当
步3 利用精确线搜索方法确定搜索步长
步4 令
步5 令
步0 给定
步1 若不等式
成立, 置
步2 令
用信赖域方法求解无约束优化问题
设
其中
再定义它们的比值为
一般地, 我们有
信赖域方法的一般框架如下:
步0 选取初始参数
步1 计算
步2 求解子问题
步3 按
步4 校正信赖域半径.
步5 若
对于子问题的求解我使用了光滑牛顿法,算法步骤如下:
步0 选取
步1 如果
步2 求解下列方程组得解
步3 设
令
步4 令