基于MATLAB的无约束优化问题对称秩-1法与BFGS法之探讨
2015-12-05杨伍梅
杨伍梅,刘 权
(1.益阳职业技术学院, 湖南 益阳 413049; 2.湖南益阳电厂, 湖南 益阳 413000)
0 前言
随着计算机的广泛应用,在科学研究、经济管理和工程设计等许多领域中,常常会遇到怎样使成本最低、利润最大等最优化问题.在数学上往往将这类问题在合理假设下建立相应模型,将之转化为无约束优化问题:minf(x),x ∈Rn的求解.而拟牛顿法是目前求解无约束优化问题的最成熟,应用最广泛的方法之一,它具有收敛速度快与数值效果好等优点.最常见的拟牛顿法有Broyden 族秩1 校正(R1)法[1],对称秩1 法(SR1)[1],BFGS 法[2],DFP 法[3],PSB 法[4].本文就无约束优化问题采用对称秩1 法和BFGS 法进行探讨.
1 两种方法的比较
1.1 对称秩1 法

设目标函数f ∶Rn→R 连续可微,无约束优化问题的基本形式为[3]:对称秩1 法的主要思想是用一个秩 1 矩阵:去校正拟牛顿矩阵,使得所产生的矩阵:

满足拟牛顿方程Bk+1sk= yk.其中sk= xk+1-xk,yk= gk+1- gk.显然因为其修正矩阵的秩为1,所以矩阵Bk更新很简单;对所有的k,只要初始矩阵B0对称正定,必有Bk对称正定;且Bk≈2f(xk),因而可使算法产生的方向近似于牛顿方向,算法具有较快的收敛速度[3].
对称秩1 算法的一般计算步骤如下:
步1 给定点x0∈Rn,终止误差0 <ε<1,初始对称矩阵B0= I,令k ∶= 0.
步2 若‖gk‖ε,则算法终止,输出xk作为近似极小点.
步3 由方程Bkdk+ g(xk)= 0 计算搜索方向dk.
步4 用线性搜索技术求步长因子αk.
步5 令xk+1= xk+αkdk,由对称秩1 公式(2)确定Bk+1.
步6 令k ∶= k +1,转步2.
下面给出Armijor 线性搜索[3]下的对称秩1 算法的程序.
程序1 (对称秩1 算法程序)


1.2 BFGS 算法
BFGS 算法是拟Newton 算法中最有效的方法之一[6],它是由Broyden、Fletcher、Goldfarb 和Shanno 四人在1970年各自独立提出的.其思想、步……
