最优化方法 课程设计报告 运用DFP算法解决无约束最优化问题
无约束最优化问题

第五章 无约束最优化
Newton法: (续) 当▽2f(x(k)) 正定时,有极小点: x(k+1)=x(k)-[▽2f(x(k)) ]-1 ▽f(x(k)) ——Newton迭代公式 实用中常用 ▽2f(x(k)) S= -▽f(x(k)) 解得s(k) x(k+1)=x(k)+s(k)
x(1), ε >0, k=1 k=k+1
求β k d(k+1)= -▽ f(x(k+1))+β kd(k)
N
y
k=n?
x(1)=x(n+1) d(1)=-▽ f(x(1)),k=1
第五章 无约束最优化
5.4 共轭梯度法
三、算法特点: 1、全局收敛(下降算法);线性收敛; 2、每步迭代只需存储若干向量(适用于 大规模问题); 3、有二次终结性(对于正定二次函数, 至多n次迭代可达opt.) 注:对不同的β k公式,对于正定二次函 数是相等的,对非正定二次函数,有不 同的效果,经验上PRP效果较好。
第五章 无约束最优化
5.5 变尺度法 一、变尺度法的基本思路: (f)min f(x), f: R n→ R 1、基本思想: 用对称正定矩阵H(k)近似▽2f(x(k))的逆 , 而H(k)的产生从给定 H(1)开始逐步修整得到。 2、算法框图:
x(1),H(1)对称 ε>0, k=1
k=k+1 d(k)=-H(k) ▽ f(x(k)) 一维搜索得λk x(k+1)=x(k)+ λk d(k)
第五章 无约束最优化
5.3 Newton法及其修正 二、 Newton法的改进: (续)
(3)Goldstein-Price方法(G-P法): 取 d(k)= -[▽2f(x(k)) ]-1 ▽f(x(k)) , ▽2f(x(k)) 正定 - ▽f(x(k)) ,否则 用下列不精确一维搜索: 求λk,使其中δ ∈(0,1/2) 1° f(x(k)+λk d(k)) ≤ f(x(k))+ δ ▽f(x(k)) Td(k) λk 2° f(x(k)+λk d(k)) ≥f(x(k))+ (1-δ) ▽f(x(k)) Td(k) λk 特点:在一定条件下, G-P法全局收敛。 但当▽2f(x(k)) 非正定情况较多时,收敛速度降为
实验二 无约束最优化

实验二、 无约束最优化【实验目的】1.了解无约束最优化方法的一些基本概念。
2.熟悉掌握用相关的命令来求解无约束最优化问题。
【实验内容】把题目和相应的完整命令写在实验报告上。
1:无约束最优化问题实际上是什么问题?求这类问题的最优解的基本思路是什么?2:求()5x f x e x =-在区间[1,2]内的极小值点和极小值。
3:已知22212312123(,,)3sin f x x x x x x x x =+-。
(1) 求123(,,)f x x x 在点(1,1,0)-附近的极小值;(2) 求123(,,)f x x x 在点(1,1,0)-附近的极小值点和极小值,要求优化算法用高斯-牛顿法,搜索方向用拟牛顿法的DFP 公式。
【相关知识说明】无约束最优化是指在没有约束条件下,求多变量实值函数极值。
无约束最优化问题的数学表达式为12min (),(,,,)n n f x x x x x R =∈。
一般f 为非线性函数,x 是n 维实变量,实际上这是一个多元函数无条件极值问题。
由于求极大值问题,可以用添加负号的方式转化为求极小值问题,因此通常只讨论求极小值问题。
应该注意的是,极值问题的解,即极值点,都是局部最优解,全局最优解只能从局部最优解的比较中得到。
如何求解无约束最优化问题的最优解呢?一般是采用迭代法,即先选择一个初始点,再寻找该点处的下降方向(我们称为搜索方向),在该方向上求极小点,得到一个新的点,然后在新点处再寻找下降方向和在该方向上的求极小点,……,如此下去,最终得到最优解。
我们先来看求一元函数y=f(x)在[x1,x2]内的极小值的命令:说明:其中'fun'是函数f(x)的表达式,当然也可以是关于f(x)的函数M-文件名。
返回值x 是极小值点。
现在我们来回答问题1。
问题1:求()2sin x f x e x -=在区间[0,6]内的极小值点和极小值.命令如下f='2*exp(-x)*sin(x)';x=fminbnd(f,0,6) %极小值点fval=2*exp(-x)*sin(x) %对应x 的极小值大家得到的结果是什么呢?这些是一元函数求极值,那么怎么求多元函数的极值呢?可以用下面的最简形式的命令:如果还必须满足更苛刻的要求,可以用下面的命令说明:(1) 返回值中,x 是极小值点。
无约束优化算法

λ >0
Step4
x ( k +1) = x ( k ) + λk d k , k = k + 1, 令
转Step1 。
例 用最速下降法求问题min f (x)=2x12+x22 的最优解(取初始点(1,1))。 解 x(0)=(1,1), g0=(4,2), d0=(-4,-2); x(1)=(-1/9,4/9),g1=(-4/9,8/9),d1=(4/9,-8/9); x(2)=(2/27,2/27),g2=(8/27,4/27),d2=-g2; x(3)=(-2/243,8/243),g3=(-8/243,16/243);… 结论:由最速下降法产生的点列必收敛到 稳定点。 最速下降法开始下降还比较快,搜索方向 呈直角锯齿状,收敛速度较慢。
DFP算法 Step0 给定初始点x0,精度e>0,令H0=I, k=0,计 算梯度g0,若|| g0 ||<e,结束; Step1 令dk=-Hkgk, 沿方向dk作一维搜索,得 x(k+1)=x(k)+λkdk; Step2 计算梯度gk+1,若|| gk+1 ||<e,结束; ∆xk = x ( k +1) − x ( k ) , ∆g k = g k +1 − g k , 计算 Step3 令 T T ∆xk ∆xk H k ∆g k ∆g k H k 令k=k+1,转Step1. H k +1 = H k + T − , T
定理1. 设Hk为对称正定矩阵,且 g k ≠ 0 ,则由DFP公 式产生的矩阵Hk+1也是对称正定的。 定理2. 对正定二次函数,设H0对称正定,则用 DFP算法至多n步就可达到极小点,且Hn=A-1。 用归纳法证明如下结论(假定 g k ≠ 0 ) T g k d i = 0( 0 ≤ i < k ) 1. 2. H k Ad i = d i (0 ≤ i < k ) 3. d kT Ad i = 0(0 ≤ i < k )
无约束优化DEP方法的使用

无约束优化DFP方法的使用
专业班级:
学生姓名:
学号:
指导教师:
学院:
2012年11月
无约束优化
摘要:变量的尺度变换是放大或缩小各个坐标。通过尺度变换可以把函数的偏心程度降低到最低限度。尺寸变换的技巧能显著改进几乎所有极小化法的收敛性质,减少迭代次数。在变尺度法中,校正矩阵EK取不同的形式,就形成了不同的变尺度法。DFP算法的校正公式为 ,其计算步骤和变尺度法的一般步骤相同,只是具体计算校对矩阵时应按上式进行。
7)置 。转步骤(3)。
变尺度法的程序框图如下图所示。
4.8变尺度法的程序框图
4DFP算法
设校正矩阵的形式为
,(1)
其中 、 为待定参数, , 为待定向量。这种形式显然是对称的,于是再利用拟牛顿方程来确定 , , , 。把(1)代入拟牛顿方程有
。(2)
简单的做法是取
,
,(3)
就能使(2)式成立。注意到 和 为数,因此为使(3)成立的简单做法是取
xk1=xk+a0*dk;
ifnorm(xk1-xk)<j
break;
end
while(norm(xk1-xk)>=j)&&(k<2)
gk1=subs(g,[x1,x2],xk1);
yk=gk1-gk;
sk=xk1-xk;
hk1=h0+sk*sk'/(sk'*yk)-h0*yk*yk'*h0/(yk'*h0*yk);
, ,
, ,
因此DFP算法中的 公式为
。(4)
5DFP算法举例
本文采用哈尔滨工业大学孙靖民所主编的《机械优化设计》一书上所编的例题为例子进行MATLAB编程计算,得到了和书本上一致的结果。其题如下:
DFP算法+wolfe性非线性搜索解决无约束问题的matlab程序

alpha=min([2*alpha, (b+alpha)/2]);
continue;
end
break;
end
x=x0+alpha*dk;
sk=x-x0; yk=feval(gfun,x)-gk;
if(sk'*yk>0)
Hk=Hk-(Hk*yk*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);
批注本地保存成功开通会员云端永久保存去开通
function [x,val,k]=dfp(fun,gfun,x0)
%功能:用DFP算法求解无约束问题:min f(x)
%输入: x0是初始点,fun, gfun分别是目标函数及其梯度
%输出: x, val分别是近似最优点和最优值, k是迭代次数
maxk=1e5;
dk=-Hk*gk; %解方程组,计算搜索方向
while(1)
if(feval(fun,x0+alpha*dk)<=feval(fun,x0)+rho*alpha*gk'*dk)
b=alpha;
alpha=(alpha+a)/2;
continue;
end
if(feval(gfun,x0+alpha*dk)'*dk>=sigma*gk'*dk)
clear
x0=[0,0]';
[x,val,k]=dfp(Fra bibliotekfun','gfun',x0)
end
k=k+1; x0=x;
end
val=feval(fun,x0);
最优化方法:第三章无约束问题的最优化方法

f1 f 2 ,则新区间= [a, 2 ]
f1 f 2
[a1 , b]
a 1 , 1 2 , f1 f 2
,记N0=1;
4)检查区间是否缩短到足够小和函数值收敛到足够精度,
如果收敛条件满足,则取最后两试验点的平均值作为极小 点的数值近似解。如果条件不满足则转向步骤5)。
(3)产生新的探测点a3=a1+h,y3=f(a3); (4) 比较函数值 y2与y3: (a) 如y2>y3, 加大步长 h=2 h ,a1=a2, a2=a3,转(3) 继续探测。 (b)如y2<y3, 则初始区间得到: a=min[a1,a3], b=max[a3,a1],函数最小值所在的区间 为 [a , b] 。
解得: b
c
p 3 a b 3 c 3 f 3
2 2 2 2
2 3 f1 3 1 f 2 1 2 f 3 1 2 2 3 3 1
3 f1 3 1 f 2 1 2 f 3 1 2 2 3 3 1
确定的搜索区间必定
f (x) f (x)
α
是一个含有最优点α*的 单峰区间。
0Leabharlann α1α3α
0
α1
α3
α
2、确定初始单谷区间的进退法 基本思想: 对f(x)任选一个初始点a1及初始步长h, 通过比较这两点函数 值的大小,确定第三点位置,比较这三点的函数值大小,确定是 否为 “高—低—高” 形态。 步骤: (1)选定初始点a, 初始步长h=h0,计算 y1=f(a1),y2=f(a1+h)。 (2)比较y1和y2。 (a)如y1>y2, 向右前进;加大步长 h=2 h ,转(3)向前; (b)如y1<y2, 向左后退;h=- h0, 将a1与a2,y1与y2的 值互换。转(3)向后探测; (c)如y1=y2,极小点在a1和a1+h之间。
第三章 无约束最优化方法

§3.3.1 Newton法
设 xk 为 f ( x) 的极小点 x的一个近似,将 f ( x)在 xk 附近作 1 T T f ( x ) q ( x ) f g ( x x ) ( x x ) Gk ( x xk ) Taylor展开,有 k k k k k 2 其中 f k f ( xk ), gk g ( xk ),Gk G( xk ) ,若 Gk 正定,则 qk ( x) 有唯 一极小点,将它取为 x 的下一次近似 xk 1 。由一阶必要条 xk 1应满足 qk ( xk 1 ) =0,即 G( xk 1 xk ) gk 0 件知, 令 xk 1 xk pk (3.11),其中 pk 应满足 Gk pk gk (3.12), 方程组(3.12)称为Newton方程,从中解出 pk 并带入(3.11) 1 得 xk 1 xk Gk gk (3.13)
§3.2.1 最速下降法
由所给点列描绘在下图中,从图上可以看出,两 个相邻的搜索方向是正交的。
x2
o
p1
x2
x0
x1
p0
x1
§3.2.2 收敛性
最速下降法的优点是算法简单,每次迭代计算量小,占用内存量 小,即使从一个不好的初始点出发,往往也能收敛到局部极小点,但 他有一个严重缺点就是收敛速度慢。 沿负梯度方向函数值下降很快的说法,容易使人们产生一种错 觉,认为这一定是最理想的搜索方向,沿该方向搜索时收敛速度应该 很快,然而事实证明,梯度法的收敛速度并不快。特别是对于等值线 (面)具有狭长深谷形状的函数,收敛速度 更慢。其原因是由于每次迭代后下一次搜索 方向 pk 1 总是与前一次方向 pk 相互垂直, 如此继续下去就产生所谓的锯齿现象(如 右图所示)。即从直观上看,在远离极小点 的地方每次迭代可能使目标函数有较大的下 降,但是在接近极小点的地方,由于锯齿现 象,从而导致每次迭代进行距离缩短,因而 收敛速度不快。
实验报告

问题2运用两种不同的方法求解非线性最小二乘问题 42min ||()||x RF x ,其中问题分析和解决框架:上述问题属于无约束最优化问题,具体又为其中应用很广的一类问题,即非线性最小二乘问题,可看作无约束极小化的特殊情形。
我们既可以采用一般的无约束最优化问题的典型算法,如牛顿法,拟牛顿法,共轭梯度法求解,也可采用根据目标函数的特殊结构,对一般的无约束最优化问题进行改造得到的一些针对非线性最小二乘问题的特殊方法,如高斯-牛顿法,Levenberg-Marquardt 法,最小非线性二乘的拟牛顿法等。
本次试验我采用了一般无约束最优化问题的共轭梯度法,拟牛顿法(DFP )和针对非线性最小二乘的高斯牛顿法。
由于刚开始用的共轭梯度法和拟牛顿法(DFP ),没有采用解决非线性最小二乘的典型算法,觉得有些缺憾,故加上高斯-牛顿法,共采用三种方法,以求对具体算法有更进一步的认识。
由于要求的停机准则和求解一般无约束最优化问题的共轭梯度法,拟牛顿法(DFP )有些差异,我对停机准则作了些修改,采用规定的表达式来确定停机与否。
对一维搜索求步长,采用的进退法(确定搜索步长区间)和黄金分割法(0.618法)。
具体程序和运行结果:共轭梯度法:共轭梯度法(Conjugate Gradient method )是介于最速下降法与牛顿法之间的一种方法,是典型的共轭方向法,它的每一个搜索方向是互相共轭的,而这些搜索方向d 仅仅是负梯度方向与上一次迭代搜索方向的组合,因此,存储量少,计算方便。
它仅需利用一阶导数信息,克服了最速下降法收敛慢(“之”字形搜索)的缺点,又避免了牛顿法需要存储和计算Hesse 矩阵并求逆的缺点。
而且共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点。
程序:%% conjugate gradient methodclc;clear;format long;error=1e-5; %停机门限syms x1 x2 x3 x4 r;P=(x1+10*x2)^2+(sqrt(5)*(x3-x4))^2+((x2-2*x3)^2)^2+(sqrt(10)*(x1-x4)^2)^2;f = [ x1+10*x2; 5^(1/2)*(x3-x4); (x2-2*x3)^2; 10^(1/2)*(x1-x4)^2]; v=[x1 x2 x3 x4];x=[3;-1;0;1];j=jacobian(f,v); %求jacobian行列式g=jacobian(P,v); %求目标函数梯度向量g=g';J=subs(j,v,x); %初值带入表达式F=subs(f,v,x);G=subs(g,v,x);k=0;ticwhile (sum((J'*F).^2))^(1/2)>error %判断停机与否if k==0d=-G; %初始搜索方向为最速下降方向,即负梯度方向elsebeta=G_new'*G_new/(G_old'*G_old);d=-G_new+beta*d; %从x(k)出发搜索方向介于从x(k-1)出发搜索方向和点x(k)负梯度方向之间endy=subs(P,v,x+r*d);interval=jintuifa(y,r);step=gold(y,r,interval); %一维搜索确定步长G_old=subs(g,v,x); %前一点x(k-1)梯度x=x+step*d;G_new=subs(g,v,x); %新一点x(k)梯度J=subs(j,v,x); %新的迭代点数值带入表达式F=subs(f,v,x);k=k+1; %迭代次数加1end;tocdisp('Conjugate gradient method');kxsigma=(sum((J'*F).^2))^(1/2)F=(sum(F.^2))^(1/2) %显示迭代次数,变量取值,停机表达式值,目标函数值%%运行结果:由运行结果可知,对非线性最小二乘问题,共轭梯度法由于没有包含二阶导数信息,所需迭代次数多,收敛慢,这是一个主要缺点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北方民族大学课程设计报告系(部、中心)信息与计算科学学院专业信息与计算科学班级 09信计(3)班小组成员课程名称最优化方法设计题目名称运用DFP算法解决无约束最优化问题提交时间2012年6月26日成绩指导教师变尺度法是在牛顿法的基础上发展起来的,它和梯度法亦有密切关系.变尺度法避免了Newton法在每次迭代都要计算目标函数的Hesse矩阵和它的逆矩阵而导致随问题的维数增加计算量迅速增加.DFP算法是变尺度法中一个非常好的算法.DFP算法首先是1959年由Davidon提出的后经Fletcher和Powell改进,故名之为DFP算法,它也是求解无约束优化问题最有效的算法之一.DFP变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快.本文主要分析DFP算法原理及运用Matalb软件编程解决实际数学问题.最后运算结果符合计算精度且只用了一次迭代,由此可见收敛速度快.关键词:Newton法变尺度法Hesse矩阵Matlab软件一、课程设计目的 (1)二、课程设计要求 (1)三、课程设计原理 (1)(1)变尺度法基本原理 (1)(2)DFP算法 (3)四、实验内容 (4)五、数学建模及求解 (4)1.DFP算法迭代步骤 (4)2.DFP算法的流程图 (5)六、程序实现 (5)七、数值实验的结果与分析 (8)八、实验总结与体会 (9)1.DFP公式恒有确切解 (9)2.DFP算法的稳定性 (9)参考文献 (10)一、 课程设计目的:1、掌握无约束优化问题DFP 算法的数值求解思路;2、训练分析DFP 算法的运算存储量及收敛速度的能力,了解算法的优缺点;3、通过运用DFP 算法求解实际无约束优化问题的意义;4、熟悉应用Matlab 求解无约束最优化问题的编程方法.二、 课程设计要求熟悉了解DFP 算法原理及求解无约束优化问题的步骤,并运用Matlab 件 编程实现求解问题.三、 课程设计原理(1)变尺度法基本原理在Newton 法中,基本迭代公式k k k k P t X X +=+1,其中,1=k t ,)()]([12k k k X f X f P ∇∇-=-,于是有2,1,0,11=-=-+k g G X X k k k k ··· (1) 其中0X 是初始点,k g 和k G 分别是目标函数)(X f 在点k X 的梯度和Hesse 矩阵.为了消除这个迭代公式中的Hesse 逆矩阵1-k G ,可用某种近似矩阵)(k k X H H =来替换它,即构造一个矩阵序列}{k H 去逼近Hesse 逆矩阵序列}{1-k G 此时式(1)变为k k k k g H X X -=+1事实上,式中k k k g H P -=无非是确定了第k 次迭代的搜索方向,为了取得更大的灵活性,我们考虑更一般的的迭代公式k k k k k g H t X X -=+1 (2)其中步长因子k t 通过从k X 出发沿k k k g H P -=作直线搜索来确定.式(2)是代表很长的一类迭代公式.例如,当I H k ≡(单位矩阵)时,它变为最速下降法的迭代公式.为使k H 确实与1-k G 近似并且有容易计算的特点,必须对k H 附加某些条件:第一,为保证迭代公式具有下降性质,要求}{k H 中的每一个矩阵都是对称 正定的.理由是,为使搜索方向k k k g H P -=是下降方向,只要0<-=-k k T k k T k g H g P g成立即可,即0>k k Tk g H g成立.当k H 对称正定时,此公式必然成立,从而保证式(2)具有下降性质.第二,要求k H 之间的迭代具有简单形式.显然,k k k E H H +=+1 (3)是最简单的形式了.其中k E 称为校正矩阵,式(3)称为校正公式.第三,必须满足拟Newton 条件.即:)()(111k k k k k X X g g H -=-+++ (4)为了书写方便也记k k k g g y -=+1 k k k X X S -=+1于是拟Newton 条件可写为k k k S y H =+1 (5)有式(3)和(5)知,k E 必须满足k k k k S y E H =+)( 或y H S y E == (6)(2)DFP 算法DFP 校正是第一个拟牛顿校正是1959年由Davidon 提出的后经Fletcher 和Powell 改进故名之为DFP 算法它也是求解无约束优化问题最有效的算法之一. DFP 算法基本原理考虑如下形式的校正公式T k k k Tk k k k k V V U U H H βα++=+1 (7)其中k k V U ,是特定n 维向量,k k βα,是待定常数.这时,校正矩阵是T k k k Tk k k k V V U U E βα+=.现在来确定k E .根据拟Newton 条件,k E 必须满足(6),于是有k k k k T k k k Tk k k y H S y V V U U -=+)(βα或k k k k T k k k k T k k k y H S y V V y U U -=+βα.满足这个方程的待定向量k U 和k V 有无穷多种取法,下面是其中的一种:k k Tk k k S y U U =α,k k k T k k k y H y V V -=β注意到k Tk y U 和k T k y V 都是数量,不妨取k k S U =,k k k y H V =,同时定出k T k k y S 1=α,kk Tk k y H y 1-=β. 将这两式代回(5.32)得kk Tk kT k k k k T k T k k k k y H y H y y H y S S S H H -+=+1. (8) 这就是DFP 校正公式.四、 实验内容采用课本P102页例5.3和P107页例5.4进行数值计算;1,求22212125),(min x x x x f +=,取初始点T X ]2,2[0=. 2,求2221214),(min x x x x f +=,取初始点T X ]1,1[0=.五、 数学建模及求解1.DFP 算法迭代步骤在拟Newton 算法中,只要把第五步改为计算式(8)而其他不变,该算法就是DFP 算法了.但是由于计算中舍去误差的影响,特别是直线搜索不精确的影响,可能要破坏迭代矩阵k H 的正定性,从而导致算法失效.为保证k H 的正定性,采取以下重置措施:迭代1+n 次后,重置初始点和迭代矩阵,即I H X X n ==+010,以后重新迭代.已知目标函数)(X f 及其梯度)(X g ,问题的维数n ,终止限ε. (1) 选定初始点.计算)(00X f f =,)(00X g g =. (2) 置I H =0,00g P -=,0=k .(3) 作直线搜索),(1k k k P X ls X =+;计算)(11++=k k X f f ,)(11++=k k X g g . (4) 判别终止准则是否满足:若满足,则打印),(11++k k f X ,结束;否转(5). (5) 若n k =,则置10+=k X X ,10+=k f f ,10+=k g g ,转(2);否则转(6). (6) 计算k k k X X S -=+1, k k k g g y -=+1,kk Tk kTk k k k T k T k k k k y H y H y y H y S S S H H -+=+1, 111+++-=k k k g H P ,置1+=k k ,转(3).2.DFP算法的流程图六、程序实现七、 数值实验的结果与分析由上述运行结果可得出:第一题迭代一次就解得:]0664.0,2220.0[*0150.1---=e X 与精确解]0,0[=X 误差远小于610-=ε,符合要求.第二题同样迭代一次就解得:]0555.0,1110.0[*0150.1--=e X 与精确解]0,0[=X 误差远小于610-=ε,符合要求.且所计算的k H 矩阵和梯度与精确计算所得一样,这也表明DFP 算法的matalb 程序完全符合要求.八、 实验总结与体会DFP 变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快,这些良好的性能已作阐述。
.对于高维(维数大于50)问题被认为是无约束极值问题最好的优化方法之一。
下面对其效能特点再作一些补充说明.1.DFP 公式恒有确切解分析DFP 公式k k T k k T k k k k T k T k k k k y H y H y y H y S S S H H -+=+1为使变尺度矩阵k H 恒有确定的解,必须保证该式右端第二项和第三项的分母为异于零的数,南京大学编的《最优化方法》已证明了这两项的分母均为正数.2.DFP 算法的稳定性优化算法的稳定性是指每次迭代都能使目标函数值逐次下降。
在阐述构造变尺度矩阵k H 的基本要求中。
已经证明为保证拟牛顿方向目标函数值下降,k H 必须是对称正定矩阵。
南京大学编的《最优化方法》证明了对于f(X)的一切非极小点k X 处,只要矩阵k H 对称正定,则按DFP 公式产生的矩阵1+k H 亦为对称正定。
通常我们取初始变尺度矩阵0H 为对称正定的单位矩阵I ,因此随后构造的变尺度矩阵序列{k H (k=1,2, …)}必为对称正定矩阵序列,这就从理论上保证DFP法使目标函数值稳定地下降。
但实际上由于一维最优搜索不可能绝对准确,而且计算机也不可避免地有舍入误差,仍有可能使变尺度矩阵的正定性遭到破坏或导致奇异。
为提高实际计算的稳定性,除提高一维搜索的精度外,通常还将进行n 次(n为目标函数的维数)迭代作为一个循环,将变尺度矩阵重置为单位矩阵I,并以上一循环的终点作为起点继续进行循环迭代,这己反映在迭代过程和算法框图之中.参考文献:[1] 《优化设计方法[M]》邵陆寿北京:农业出版社,2007.[2] 《最优化方法》南京大学出版社[3] 《最优化方法及其应用》郭科陈聆魏友华高等教育出版社[4] 《MATLAB使用教程》张磊毕靖郭莲英人民邮电出版社。