全球旧事资料 分类
作业二用DFP算法求解mi
fxx122x222x1x24x1,取x011T,
H0


10
10。
一、求解:
gx2x12x242x14x2Tg042Tp0H0g042T
(1)求迭代点x1
令0
fx0
p0402
20
3,得0的极小值点0

14

所以得:x1x00p0205Tg112T
s0x1x0105Ty0g1g034T
于是,由DFP修正公式有H1
H0
H0y0y0TH0y0TH0y0

s0s0Ty0Ts0

1100
8348
3481
下一个搜索方向为
p1

H1g1

15
86T
(2)求迭代点x2
令1
fx1
p1

825
4
55,得1的极小值点1

45
于是得:x2x11p142Tg200T,所以:xx242Tf8,

Hesse

G
x

G


22
极小点。
24
T

为正定阵,
f
x
为严格凸函数,所以
x
为整体
二、DFP算法迭代步骤如下:
(1)给定初始点x0,初始矩阵H0(通常取单位阵),计算g0,令k0,给定控制误差。
(2)令pkHkgk。
(3)由精确一维搜索确定步长k

f
xk
k
pk


mi
0
f
xk
pk

(4)令xk1xkkpk。
(5)若gk,则xxk1停;
否则令skxk1xk,ykgk1gk。
(6)由DFP修正公式得Hk1。令kk1,转步骤(2)
f三、DFP算法matlab程序实现fu
ctio
best_xbest_fxcou
tDFPx0esssymsx1x2tfx1x12x2x22x1x24x1fxdifffx1求表达式f对x1的一阶求导fydifffx2求表达式f对x2的一阶求导fifxfy构造函数f的梯度函数初始点的梯度和函数值g0subsfix1x2x0f0subsfx1x2x0H0eye2输出x0f0g0x0f0g0xkx0fkf0gkg0HkH0k1while
ormgkess迭代终止条件gkessdisp
disp第
um2strk次寻优确定搜索方向
pkHkgk由步长找到下一点xk1xkxktpkf_tsubsfx1x2xk构造一元搜索的一元函数φt由一维搜索找到最优步长df_tdifff_tttksolvedf_tiftk0
tkdoubletkelse
breake
d计算下一点的函数值和梯度xksubsxkttkfksubsfx1x2xkgk0gkgksubsfix1x2xkDPF校正公式,找到修正矩阵ykgkgk0sktkpk
fHkHkHkykykHkykHkykskskyksk修正公式kk1e
ddisp结果如下:best_xxk最优点best_fxfk最优值cou
tk1
四、程序执行结果在命令窗口输入以下命令:x011
ess1e6best_xbest_fxcou
tDFPx0ess程序运行结果:x0
11f0
3g0
42
第1次寻优xk
2000005000fk
55000gk
12Hk
08400038000380004100
第2次寻优xk
42fk
8gk
00Hk
10000050000500005000
f结果如下:
best_x42
best_fx8
cou
t2
r
好听全球资料 返回顶部