上机作业

  • 格式:docx
  • 大小:22.09 KB
  • 文档页数:3

运筹学上机作业二
1100015886 李丹§1. 数值结果
调用Matlab优化工具箱fminunc进行方法选择,通过控制options中的参数LargeScale控制中型优化算法,再通过参数HessUpdate控制:BFGS、DFP和最速下降方法(SD),所以以下对这三种方法进行比较。

使用三个检验函数Watson(n=9)、Extend Rosenbrock(n=20)和Extended Powell Singular(n=20)来检验无约束最优化方法。

检验程序分别为watsoncheck.m、ExtendedRosenbrock.m、extendpowellsingular.m。

实验结果:
Exitflag:
1 Magnitude of gradient small enough
0 Too many function evaluations or iterations.
Successful case x*:
§2. 结果分析
根据上述数值结果可以发现:
1.最速下降方法(SD)在三个函数下都已经达到函数评价或迭代的最大次数。

(Fminunc设定对watson函数options.MaxFunEvals=900,对Extended Rosenbrock、Extended Powell Singular的options.MaxFunEvals=2000)。

原因是steepdesc方法在最初迭代时下降速度很快但接近极小点后,收敛速度变慢。

所以即使达到函数设定的最大迭代次数也没能达到收敛终止条件。

所以改进办法可以只在最初几次迭代时使用最速下降方法。

2.拟牛顿方法中DFP对于三个函数也都达到了函数评价或迭代的最大次数。


于ExtendRosenbrock和Extended Powell Singular检验函数,DFP方法的hessen 矩阵不正定,无法保证迭代下降方向。

所以会无法在迭代最大次数限制中达到最优。

3.拟牛顿方法中的BFGS在三种检验函数中都是正定的,保证迭代的持续性。


明尽管BFGS和DFP方法是一致的,但BFGS矫正公式的自我矫正特性比较好,相对于其他两个方法而言更接近最优。

但是会出现局部最优解的情况。

4.因为不太会编程序,所以在本实验中并未对阻尼Newton、修正Newton法和
拟牛顿法中的SR1方法进行比较,以下对这几种方法进行理论分析。

a)因为基本牛顿方法是以指向近似二次函数极小点的方向为搜索方向,选
取步长为1。

对于初始点离最优解不远的条件下,是二次收敛的,但当
初始点离最优解太远时,牛顿法并不一定是收敛的方法。

阻尼Newton
方法是在基本牛顿方法的基础上,用一维线搜索确定步长,具有全局收
敛性,当迭代点接近于最优解时,具有收敛速度快的优点,可以考虑将
阻尼牛顿法和最速下降法结合使用。

但是如果目标函数的Hesse矩阵出
现奇异,迭代就无法进行了。

b)修正牛顿方法是对对阻尼牛顿法中可能出现的Hessian矩阵非正定情况
的改善,如果在迭代过程中遇到了非正定无法迭代的情况,应该考虑使
用修正牛顿方法。

c)拟牛顿方法中的SR1结构比较简单,对于正定二次凸函数,收敛性质较
好,但是不能保证H的正定性,比较适用于信赖域算法。

综上,这几种方法中,以拟牛顿方法的BFGS最为有效,这也可以解释在fminunc中默认算法是BFGS。