最优化-刘志斌-课后习题3-5参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题三
1、用0.618法求解问题
12)(min 30
+-=≥t t t t ϕ
的近似最优解,已知)(t ϕ的单谷区间为]3,0[,要求最后区间精度0.5ε=。 答:t=0.8115;最小值-0.0886.(调用golds.m 函数)(见例题讲解5) 2、求无约束非线性规划问题
min ),,(321x x x f =12
322
2124x x x x -++ 的最优解
解一:由极值存在的必要条件求出稳定点:
1122f x x ∂=-∂,228f x x ∂=∂,33
2f
x x ∂=∂,则由()0f x ∇=得11x =,20x =,30x = 再用充分条件进行检验:
22
12f x ∂=∂,2228f x ∂=∂,2232f x ∂=∂,2120f
x x ∂=∂∂,2130f x x ∂=∂∂,223
0f x x ∂=∂∂ 即2200080002f ⎛⎫
⎪
∇= ⎪ ⎪⎝⎭
为正定矩阵得极小点为T *(1,0,0)x =,最优值为-1。
解二:目标函数改写成
min ),,(321x x x f =222
12
3(1)41x x x -++- 易知最优解为(1,0,0),最优值为-1。
3、用最速下降法求解无约束非线性规划问题。
2
221212122)(m in x x x x x x X f +++-=
其中T x x X ),(21=,给定初始点T X )0,0(0=。
解一:目标函数()f x 的梯度112
122()()142()122()()f x x x x f x x x f x x ∂⎡⎤
⎢⎥∂++⎡⎤
⎢⎥∇==⎢⎥-++∂⎢⎥⎣⎦⎢⎥∂⎣⎦
(0)1()1f X ⎡⎤∇=⎢⎥-⎣⎦令搜索方向(1)(0)1()1d f X -⎡⎤
=-∇=⎢⎥⎣⎦再从(0)X 出发,沿(1)d 方向作一维寻
优,令步长变量为λ,最优步长为1λ,则有(0)(1)
0101X d λλλλ--⎡⎤⎡⎤⎡⎤+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
故(0)(1)2221()()()2()2()2()f x f X d λλλλλλλλλϕλ=+=--+-+-+=-=
令'1()220ϕλλ=-=可得11λ= (1)(0)(1)1011011X X d λ--⎡⎤⎡⎤⎡⎤
=+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 求出(1)X 点之后,
与上类似地,进行第二次迭代:(1)1()1f X -⎡⎤∇=⎢⎥-⎣⎦ 令(2)(1)1()1d f X ⎡⎤
=-∇=⎢⎥⎣⎦
令步长变量为λ,最优步长为2λ,则有
(1)
(2)
111111X d
λλλλ--⎡⎤⎡⎤⎡⎤
+=+=⎢⎥⎢⎥⎢⎥+⎣⎦⎣⎦⎣⎦
故
(1)(2)2222()()(1)(1)2(1)2(1)(1)(1)521()
f x f X d λλλλλλλλλϕλ=+=--++-+-+++=--=令'
2
()1020ϕλλ=-=可得 215λ= (2)(1)(2)
2110.8111 1.25X X d λ--⎡⎤⎡⎤⎡⎤=+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
(2)0.2()0.2f X ⎡⎤∇=⎢⎥-⎣⎦ 此时所达到的精度(2)
()0.2828f X ∇≈ 本题最优解11.5X *
-⎡⎤
=⎢⎥⎣⎦
,()1,25f X *=-
解二:利用matlab 程序求解
首先建立目标函数及其梯度函数的M 文件 function f=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2); function g=gfun(x)
g=[1+4*x(1)+2*x(2),-1+2*x(1) +2* x(2) ]; 调用grad.m 文件 x0=[0,0];
[x,val,k]=grad('fun','gfun',x0)
结果
x=[ -1.0000 ,1.5000] val= -1.2500 k=33
即迭代33次的到最优解x=[ -1.0000 ,1.5000];最优值val= -1.2500。
4、试用Newton 法求解第3题。 解一:计算目标函数的梯度和Hesse 阵
目标函数()f x 的梯度112
122()()142()122()()f x x x x f x x x f x x ∂⎡⎤
⎢⎥∂++⎡⎤
⎢⎥∇==⎢⎥-++∂⎢⎥⎣⎦⎢⎥∂⎣⎦
2
42()22f X G ⎡⎤∇==⎢⎥⎣⎦,其逆矩阵为1
0.50.50.5
1G --⎡⎤=⎢⎥-⎣⎦ [][][](1)(0)1(0)0.50.5()0,01,11,1.50.51T T T
X X G f X --⎡⎤=-∇=--=-⎢⎥-⎣⎦ 计算(1)()0f X ∇=。
本题最优解11.5X *-⎡⎤
=⎢⎥⎣⎦
,()1,25f X *=-
解二:除了第3题建立两个M 文件外,还需建立Hesse 矩阵的M 文件 利用matlab 程序求解
首先建立目标函数及其梯度函数的M 文件 function f=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2); function g=gfun(x)
g=[1+4*x(1)+2*x(2),-1+2*x(1) +2* x(2) ]; function h=hess(x) g=[4 2;2 2 ]; 调用newton.m 文件