1 / 14
文档名称:

无约束优化.docx

格式:docx   大小:138KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

无约束优化.docx

上传人:guoxiachuanyue013 2022/11/24 文件大小:138 KB

下载得到文件列表

无约束优化.docx

文档介绍

文档介绍:该【无约束优化 】是由【guoxiachuanyue013】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【无约束优化 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。实验10无约束优化
实验目的
,对不同算法进行初步分析、比较。
(包括非线性最小二乘拟合)。
实验内容
第2题:取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、步长搜索、数值梯度与分析梯度等)的结果进行分析、比较。
minz二
4)
(x—a)t(x—a)+c
111
(x—a)t(x—a)+c
222,
其中(c,c)二(,)a二(4,4)ta二(,)t
其中12,1,2。
★问题分析:首先用数学方法计算出真实值,
x二(x「x2)',将(4,4)t,a2二(,)t代入,化z的表达式为:
11
z———
(x—4)2+(x—4)2+c(x—)2+(x—)2+c
可见分母的值越小,z越小。当xl,。
为获得直观认识,我们再画出该函数的三维图形和等高线图。


[x1,x2]=meshgrid(::,::);
c1=;c2=;
y=T./((x1-4).'2+(x2-4).'2+c1)T./((x1-).'2+(x2-).'2+c2);
mesh(x1,x2,y);pause;%画三维网格图
contour0x1,x2,y,2O)%画等高线图(20条)




4


可以看出,z存在两个最小值。
对z求导:
2(x-4)2(x-)
1+1[(X—4)2+(x—4)2+c]2[(x—)2+(x—)2+c]2
121121
2(x—4)2(x—)
2_|_2
[(x—4)2+(x—4)2+c]2
121
★★Matlab程序设计及结果:下面用不同的算法进行计算:
+
[(x—)2+(x—)2+c]2121
2+(X(2)-4)."2+cl)—l./z((x(l)—)."2+(x(2)—)."2+c2);

最优值
迭代次数
+000
-+000
54
'彳19875e+000
-+000
84
)+000
-+000
111
+000
-+000
57
+000
-+000
84
用数傑计算函
%comparingdifferentalgorithms:withoutusinggradientvector
得到=0结果为:.73;
搜索方向shor七。步长搜索最优
x0=[—,2];
BFGS
B■匹Sasel:遐f|「、hyb>B卩詁-0----十000fopt^optimil合合'LargeScale®'off90^aXFunE^ls最速下下降exi混合u二、三次插1值(@晶29060op+0010c2【
+000
'--—case2:df亓探ybTtd2,3poly——---'000
最fSp下=SptimsetC'ToiFUn&’le-g,'TolX'/lQ-^'PargeScaie^7'off'5^'HessU^a^^'+O9fp,,叫axFunEvals',1000);用分析方法法计算U函数I的梯度c(***@fun2,x0,fopt,c1,c2)
:
'case3:steep,hybrid2,3poly
fopt=optimset('TolFun',1e-8,'TolX',1e-8,'LargeScale','off','HessUpdate','steepdesc','MaxFunEvals',][x3,v3,exit3,out3]=fminunc(***@fun2,x0,fopt,c1,c2)
pause
'case4:bfgs,3rdpoly
comparingdifferentalgorithms:usinggradientvectorformatshortex0=[-,2];c1=;c2=;
'case1:bfgs,hybrid2,3poly
fopt=optimset('LargeScale','off',function[f,g]=grad(x,c1,c2)
[x1,v1,exit],oyt1」=iminunc(***@gra'
'MaxFunEvals',1000,'GradObj','on');
_,,,“一.”d,x0,fopt,c1,c2)““
f=-1./((x(1)-4)."2+(x(2)-4).x2+c1)T./((x(1)-)."2+(x(2)-)."2+c2);%computethefunctionvaluepauseifnargout>1%
case2:dip,hybrid2,3poly
fopt=optimset('LargeScale','off','HessUpdate','dfp','MaxFunEvals',1000,'GradObj'g(I)=2.*(x(1)-4)./(((x⑴—4).'2+(x(2)—4).'2+c1,2)+2.*(x(1)—)./(((x(1)—).‘[x2,v2,exit2,out2」=Iminunc(***@grad,x0,Iopt,c1,c2)computethegradientevaluatedatxpause,g(2)=2.*(x(2)—4)./(((x(1)—4)j2+(x(2)-4).'2+c1).'2)+2.*(x(2)—)./(((x(1)—)
case3:steep,hybrid2,3poly
end
fopt=optimset('LargeScale','off','HessUpdate','steepdesc','MaxFunEvals',1000,'Gr
[x3,v3,exit3,out3」=fminunc(***@grad,x0,fopt,c1,c2)
c
Zi
o
+(x(2)-).'2+c2)
.'2+(x(2)—).'2+
adO
pause
'case4:bfgs,3rdpoly
'G
pol
fopt=optimset('LargeScale','off','LineSearchType','cubicpoly','MaxFunEvals',1000,[x4,v4,exit4,out4]=fminunc(***@grad,x0,fopt,c1,c2)
pause
'case5:dfp,3rdpoly
fopt=optimset('LargeScale','off','HessUpdate','dfp','LineSearchType','cubicpoly','MaxFunEvals',1000,'GradObj','on');
[x5,v5,exit5,out5]=fminunc(***@grad,x0,fopt,c1,c2)
pause
'case6:steep,3rdpoly
fopt=optimset('LargeScale','off','HessUpdate','steepdesc','LineSearchType','cubic'MaxFunEvals',1000,'GradObj','on');
[x6,v6,exit6,out6]=fminunc(***@grad,x0,fopt,c1,c2)
pause
'++++resultsofsolutions++++++'
solutions=[x1;x2;x3;x4;x5;x6」'funvalues=[v1,v2,v3,v4,v5,v6」
ou
iterations=[,,,,
得到结果为:
搜索方向
步长搜索
最优解
最优值
迭代次数
BFGS
混合二、三次插值
+000
+000
-+000
9
DFP
混合二、三次插值
+000
+000
-+000
9
最速下降
混合二、三次插值
+000
+000
-+000
12
BFGS
三次插值
+000
+000
-+000
9
DFP
三次插值
+000
+000
-+000
9
最速下降
三次插值
+000
+000
-+000
12
改变x0的值,比如(3,3)分别运行以上两程序,
采用数值梯度算法,得到结果:
搜索方向
步长搜索
最优解
最优值
迭代次数
BFGS
混合二、三次插值
++000
-+000
27
DFP
混合二、三次插值
++000
-+000
27
最速下降
混合二、三次插值
++000
-+000
69
BFGS
三次插值
++000
-+000
30
DFP
三次插值
++000
-+000
27
最速下降
三次插值
++000
-+000
69
采用分析梯
目度算法,得到结果:
步长搜索
最优值
迭代
搜索万向
最优解
次数
BFGS
混合二、三次插值
+000
+000
-+000
9
DFP
混合二、三次插值
+000
+000
-+000
9
最速下降
混合二、三次插值
+000
+000
-+000
12
BFGS
三次插值
+000
+000
-+000
9
DFP
三次插值
+000
+000
-+000
9
最速下降
三次插值
+000
+000
-+000
12
★★结果分析:从上面表格中的数据可以得知对于函数
11
z=——
(X1—4)2+(X2—4)2+C1()2+(X2—)2+C2的求解无论用数值法还
是分析法,无论用什么搜索方向,什么步长搜索都可以得到最优解和最优值。但是从上面数据明显可以看出用分析法求解的迭代次数要小于数值法的迭代次数。对于函数Z最速下降法的迭代次数最多,这是因为最速下降法使用负梯度作为搜索方向,只利用到一阶导数项,收敛阶数只为1,因此尽管开始时收敛较快,但是接近最优解时,收敛就变慢了。而BFGS和DFP算法均利用到了二阶导数项,收敛阶数较高,因此收敛速率较快。
第5题:某分子由25个原子组成,并且已经通过实验测量得到了其中某些原子队之间的距离(假设在平面结构上讨论),。请你确定每个原子的位置关系。

原子对
距离
原子对
距离
原子对
距离
原子对
距离
(4,1)

(5,4)

(18,8)

(15,13)

(12,1)

(12,4)

(13,9)

(19,13)

(13,1)

(24,4)

(15,9)

(15,14)

(17,1)

(8,6)

(22,9)

(16,14)

(21,1)

(13,6)

(11,10)

(20,16)

(5,2)

(19,6)

(13,10)

(23,16)


(16,2)
(17,2)


(25,6)
(8,7)


()
()


()
()

(25,2)

(14,7)

(22,10)

(20,19)

(5,3)

(16,7)

(18,11)

(23,19)

(20,3)

(20,7)

(25,11)

(24,19)

()
()


()
()


()
()


()
()


★★问题分析及模型假设:

v据题意,不妨设第i点坐标为(Xi,yi),其中第一个点坐标为(Xi,yi)二(°,0),问题为求Z[(x-x)2+(y-y)2-d2]
ijij
7问题v化为无约束优化:
minv[(x-x)2+(y
ij
2
ij达到最小值的解
i,j
x
2
y2
x
3
y3
x
24
y24
-y)2-d2]2
jij,其中
x
25
y25J

★★Matlab程序设计及结果:使用优化工具箱中的sqnonlin函数程序如下:
functionf=distance(x,d);
y(l)=(x(2*3T))'2+(x(2*3))'2-d(l)'2;
y(2)=(x(2*llT))'2+(x(2*ll))'2-d(2)'2;y(3)=(x(2*12T))'2+(x(2*12))'2-d(3)'2;y(4)=(x(2*16T))'2+(x(2*16))'2-d(4)'2;y(5)=(x(2*20T))'2+(x(2*20))'2-d(5)'2;
y(6)=(x(2*5-3)-x(2*2-3))'2+(x(2*5-2)-x(2*2-2))'2-d(6)'2;y(7)=(x(2*16-3)-x(2*2-3))'2+(x(2*16-2)-x(2*2-2))'2-d(7)'2;y(8)=(x(2*17-3)-x(2*2-3))'2+(x(2*17-2)-x(2*2-2))'2-d(8)'2;y(9)=(x(2*25-3)-x(2*2-3))'2+(x(2*25-2)-x(2*2-2))'2-d(9)'2;y(10)=(x(2*5-3)-x(2*3-3))'2+(x(2*5-2)-x(2*3-2))'2-d(10)'2;y(ll)=(x(2*20-3)-x(2*3-3))'2+(x(2*20-2)-x(2*3-2))'2-d(ll)'2;y(12)=(x(2*21-3)-x(2*3-3))'2+(x(2*21-2)-x(2*3-2))'2-d(12)'2;y(13)=(x(2*24-3)-x(2*3-3))'2+(x(2*24-2)-x(2*3-2))'2-d(13)'2;y(14)=(x(2*5-3)-x(2*4-3))'2+(x(2*5-2)-x(2*4-2))'2-d(14)'2;y(15)=(x(2*12-3)-x(2*4-3))'2+(x(2*12-2)-x(2*4-2))'2-d(15)'2;y(16)=(x(2*24-3)-x(2*4-3))'2+(x(2*24-2)-x(2*4-2))'2-d(16)'2;y(17)=(x(2*8-3)-x(2*6-3))'2+(x(2*8-2)-x(2*6-2))'2-d(17)'2;y(18)=(x(2*13-3)-x(2*6-3))'2+(x(2*13-2)-x(2*6-2))'2-d(18)'2;y(19)=(x(2*19-3)-x(2*6-3))'2+(x(2*19-2)-x(2*6-2))'2-d(19)'2;y(20)=(x(2*25-3)-x(2*6-3))'2+(x(2*25-2)-x(2*6-2))'2-d(20)'2;y(21)=(x(2*8-3)-x(2*7-3))'2+(x(2*8-2)-x(2*7-2))'2-d(21)'2;y(22)=(x(2*14-3)-x(2*7-3))'2+(x(2*14-2)-x(2*7-2))'2-d(22)'2;y(23)=(x(2*16-3)-x(2*7-3))'2+(x(2*16-2)-x(2*7-2))'2-d(23)'2;y(24)=(x(2*20-3)-x(2*7-3))'2+(x(2*20-2)-x(2*7-2))'2-d(24)'2;y(25)=(x(2*21-3)-x(2*7-3))'2+(x(2*21-2)-x(2*7-2))'2-d(25)'2;y(26)=(x(2*14-3)-x(2*8-3))'2+(x(2*14-2)-x(2*8-2))'2-d(26)'2;y(27)=(x(2*18-3)-x(2*8-3))'2+(x(2*18-2)-x(2*8-2))'2-d(27)'2;

★★Matlab程序设计及结果:使用优化工具箱中的sqnonlin函数程序如下:
functionf=distance(x,d);
y(l)=(x(2*3T))'2+(x(2*3))'2-d(l)'2;
y(2)=(x(2*llT))'2+(x(2*ll))'2-d(2)'2;y(3)=(x(2*12T))'2+(x(2*12))'2-d(3)'2;y(4)=(x(2*16T))'2+(x(2*16))'2-d(4)'2;y(5)=(x(2*20T))'2+(x(2*20))'2-d(5)'2;
y(6)=(x(2*5-3)-x(2*2-3))'2+(x(2*5-2)-x(2*2-2))'2-d(6)'2;y(7)=(x(2*16-3)-x(2*2-3))'2+(x(2*16-2)-x(2*2-2))'2-d(7)'2;y(8)=(x(2*17-3)-x(2*2-3))'2+(x(2*17-2)-x(2*2-2))'2-d(8)'2;y(9)=(x(2*25-3)-x(2*2-3))'2+(x(2*25-2)-x(2*2-2))'2-d(9)'2;y(10)=(x(2*5-3)-x(2*3-3))'2+(x(2*5-2)-x(2*3-2))'2-d(10)'2;y(ll)=(x(2*20-3)-x(2*3-3))'2+(x(2*20-2)-x(2*3-2))'2-d(ll)'2;y(12)=(x(2*21-3)-x(2*3-3))'2+(x(2*21-2)-x(2*3-2))'2-d(12)'2;y(13)=(x(2*24-3)-x(2*3-3))'2+(x(2*24-2)-x(2*3-2))'2-d(13)'2;y(14)=(x(2*5-3)-x(2*4-3))'2+(x(2*5-2)-x(2*4-2))'2-d(14)'2;y(15)=(x(2*12-3)-x(2*4-3))'2+(x(2*12-2)-x(2*4-2))'2-d(15)'2;y(16)=(x(2*24-3)-x(2*4-3))'2+(x(2*24-2)-x(2*4-2))'2-d(16)'2;y(17)=(x(2*8-3)-x(2*6-3))'2+(x(2*8-2)-x(2*6-2))'2-d(17)'2;y(18)=(x(2*13-3)-x(2*6-3))'2+(x(2*13-2)-x(2*6-2))'2-d(18)'2;y(19)=(x(2*19-3)-x(2*6-3))'2+(x(2*19-2)-x(2*6-2))'2-d(19)'2;y(20)=(x(2*25-3)-x(2*6-3))'2+(x(2*25-2)-x(2*6-2))'2-d(20)'2;y(21)=(x(2*8-3)-x(2*7-3))'2+(x(2*8-2)-x(2*7-2))'2-d(21)'2;y(22)=(x(2*14-3)-x(2*7-3))'2+(x(2*14-2)-x(2*7-2))'2-d(22)'2;y(23)=(x(2*16-3)-x(2*7-3))'2+(x(2*16-2)-x(2*7-2))'2-d(23)'2;y(24)=(x(2*20-3)-x(2*7-3))'2+(x(2*20-2)-x(2*7-2))'2-d(24)'2;y(25)=(x(2*21-3)-x(2*7-3))'2+(x(2*21-2)-x(2*7-2))'2-d(25)'2;y(26)=(x(2*14-3)-x(2*8-3))'2+(x(2*14-2)-x(2*8-2))'2-d(26)'2;y(27)=(x(2*18-3)-x(2*8-3))'2+(x(2*18-2)-x(2*8-2))'2-d(27)'2;