当前位置:文档之家› 最优化DFP算法报告

最优化DFP算法报告

最优化DFP算法 姓名:施 政 学号:1010010125 班级:1 班 专业:通信与信息系统 目 录 1 算法流程图..............................................................................................................1 1.1 DFP算法的流程图.......................................................................................1 1.2 黄金分割法流程图.......................................................................................1 1.3 回退法计算初始区间的算法.......................................................................2 2 测试函数..................................................................................................................3 2.1 二维、二次函数...........................................................................................3 2.2 二维、高次函数...........................................................................................3 2.3 高维、二次函数...........................................................................................4 2.4 高维、高次函数...........................................................................................4 3 运行结果及分析......................................................................................................5 4 Matlab源程序........................................................................................................6 4.1 主函数...........................................................................................................6 4.2 DFP算法函数................................................................................................8 4.3 黄金分割法函数...........................................................................................9 4.4 回退法求解初始区间.................................................................................10 4.5 计算测试函数的值.....................................................................................11 4.6 计算测试函数的梯度.................................................................................12 5 参考文献................................................................................................................12 南京邮电大学2010级通信与信息系统专业 2010-11-8

11 算法流程图 对于DFP算法主要涉及到3个主要的算法,分别是:利用回退法计算初始区间、利用黄金分割法进行一维搜索、然后利用DFP算法计算最小点对应的自变量的值。 下面分别画出了这三个算法流程图。

1.1 DFP算法的流程图

设定控制误差为ε;输入的初始点坐标是0x;0E是与0x同维的单位阵。

图 1 1.2 黄金分割法流程图 给定精确度ε>0;当区间长度小于等于ε时,即停止运行,同时取x=(a+b)/2作为最小点坐标。 在给定初始区间[a,b]内,求最小点时对应的α值,要保证α是大于等于零的,否则函

数值就不是朝下降方向递降的了。在本算法中保证初始区间的端点是大于等于零的,就可以满足这一条件了。 算法如下图所示:

N Y Start DFP_algorithm x1=x0; H1=H0=E0;计算 x0对应的梯度g1=g0

g1的范数大于

ε

Optimal_x=x0

END function

p0=-H0* g0;把x0和 g0;作

为参数传给黄金分割法的函数;求出最优的α;

求出100*xapα=+;求出g1;利用DFP修正公

式更新H1;

k=k+1 南京邮电大学2010级通信与信息系统专业 2010-11-8

2 图 2 1.3 回退法计算初始区间的算法 针对这个算法,参考文献[1]上面利用的回退法不能保证a,b两个端点的值大于零,因为利用黄金分割法求α时,α肯定是大于等于零的,所以可以对书上的算法适当的改进。初

始的点是0x;步长是xΔ;算法如下:

图 3 注意:上面的算法是针对一维的情况,所以在计算0x;1x;2x时,应该注意使

Y N N Y

Start initial_interval x0,f(x0) x1= x0+Δx;f(x1)

f(x0)<= f(x1) Δx=2 Δx; x2= x1+Δx; f(x2) a= x0; b= x1 End function f(x0)<= f(x2)

a= x0; b= x2

x0=x1;x1=x2;f(X0)=f(X1);f(X0)= f(X1)

Y N N Y N Y x1=a+0.382*(b-a);f(x1) x2=a+0.618*(b-a); f(x2)

|b-a|<=ε α=(a+b)/2

End function

Start golden_section_method f(x1)< f(x2) f(x1)> f(x2) b= x2; x2 = x1; f(x2)=f(x1) x1=a+0.382*(b-a);f(x1) a= x1; x1 = x2; f(x1)= f(x2) x2=a+0.618*(b-a); f(x2)

a = x1 ; b = x2 南京邮电大学2010级通信与信息系统专业 2010-11-8

3用0000*xatp=+;0a代表的是对应DFP算法上次迭代的自变量的坐标值,0p代表的是0

a

点的梯度,0t开始的值是0;同样有1010*xatp=+;2020*xatp=+;10ttt=+Δ;21ttt=+Δ。注意tΔ的变化,算法中已显示其变化规律。

2 测试函数 2.1 二维、二次函数 对于二维、二次的测试函数,算法中应用的是First De Jong function(sphere) [3]。

221212(,)fxxxx=+

…………………………………………..(式2.1)

下面就是函数对应的3维图形,从图4可以看出其最小点,在(x1,x2)=(0,0),该点对应的

函数值是0。也是该函数全局极小点。

-1-0.500.51-1-0.500.5100.511.52

图 4 2.2 二维、高次函数 对于二维、高次的测试函数,算法中应用的是Goldstein-Price's function[3]。 2222121211212(,)(1(1))(191431463))Goldfxxxxxxxxxx=+++•−+−++•

2212112122(30(23)2)(1832483627))xxxxxxxx+−•−++−+

………..(式2.2)

其中,22,1,2ixi−≤≤= 下面就是该函数对应的三维图形,该函数的全局极小点是(x1,x2)=(0,-1),f(x1,x2)=3。

相关主题