复合形法作业

上传人:m**** 文档编号:457746975 上传时间:2023-05-12 格式:DOCX 页数:13 大小:416.19KB
返回 下载 相关 举报
复合形法作业_第1页
第1页 / 共13页
复合形法作业_第2页
第2页 / 共13页
复合形法作业_第3页
第3页 / 共13页
复合形法作业_第4页
第4页 / 共13页
复合形法作业_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《复合形法作业》由会员分享,可在线阅读,更多相关《复合形法作业(13页珍藏版)》请在金锄头文库上搜索。

1、优化理论与最优控制作业复合形法小组成员于童 1122227010杜娟 1122227005健华 1122227150王楠 1122227034海珍 1122227039复合形法流程图一复合形法的根本原理复合形法的根本思路是在n维空间的可行域中选取K个设计点通常取n+1k2n作为初始复合形多面体的顶点。然后比拟复合形各顶点目标函数的大小,其中目标函数值最大的点作为坏点,以坏点之外其余各点的中心为映射中心,寻找坏点的映射点,一般说来此映射点的目标函数值总是小于坏点的,也就是说映射点优于坏点。这时,以映射点替换坏点与原复合形除坏点之外其余各点构成K个顶点的新的复合形。如此反复迭代计算,在可行域中不断

2、以目标函数值低的新点代替目标函数值最大的坏点从而构成新复合形,使复合形不断向最优点移动和收缩,直至收缩到复合形的各顶点与其形心非常接近、满足迭代精度要求时为止。最后输出复合形各顶点中的目标函数值最小的顶点作为近似最优点。补充:关于复合形法定点数目的选取数目多少的选取,要视具体情况而定,一般说来,为了防止迭代过程中产生降维,顶点数目取多一些较好。因为只要在k个顶点中有n+1个顶点所构成的n个矢量线性无关,搜索就不会在降维的空间里进展。所以k值大些,降维的可能性就小些。但是从另一方面看,顶点数目多,显然会降低计算速度。为此,对于优化问题维数n5的优化问题,一般应适当减少顶点数目,而取k=1.251

3、.5n取整。当然,顶点的最少数目不得低于n+1.二复合形法的优缺点复合形法不需要计算目标函数的导数,也不进展一维搜索,因此对目标函数和约束函数都没有特殊的要求,适用围较广。复合形法的收敛速度较慢,特别当目标函数的维数较高和约束条件的数目增多时,这一缺点尤为突出。另外,复合形法不能用于求解具有等式约束的优化问题。三问题求解下面分别用复合形法和matlab工具箱分别进展求解并比拟计算结果问题一:1-1函数的三维立体图1-2.复合形法求解寻优趋势图1-3.求解结果对照表方法复合形法Matlab工具箱x11.00041x21.00021f1.8048e-070问题二:2-1函数的三维立体图2-2.复合

4、形法求解寻优趋势图2-3.求解结果对照表方法复合形法Matlab工具箱x10.9950-0.1431* e-05x20-0.1431* e-05f0.99508.1197e-10问题三:2-1函数的三维立体图3-2.复合形法求解寻优趋势图3-3.求解结果对照表方法复合形法Matlab工具箱x1-2.95611.5345x21.05581.5345f0.99031.9860四结果分析对于求解此类问题,做出目标函数的大致图形当然只限于三维以有利于我们判断函数的极值点位置以及估计函数值,同时也可以用来检验计算结果的正确性。对于问题一,两种求解方法的计算结果根本一样,但对于问题二和问题三的求解结果为何

5、不同,我们猜测应该是matlab工具箱的求解方法对求解函数有着特殊的要求所导致的,例如,要求函数可导或者连续等。附录:程序只给出问题三的求解程序,其他问题的求解类似一复合形法求解程序如下:syms s tf=-(sin(sqrt(s2+t2)2-0.5)/(1+0.001*(s2+t2)2+0.5;g=s+4 4-s t+4 4-t;r=rand(1,6);m=-4+(4-(-4)*r;X=reshape(m,2,3)x,maxf,trace_value,trace_meanvalue=Fuhexing(f,g,X,1.3,0.7,1,0.7,s t);xmaxftvx,tvy=size(tr

6、ace_value);fxx=1:tvy-1;fyy=ones(1,tvy-1);fyy=maxf*fyy;plot(fxx,trace_value(1,2:tvy),green,fxx,trace_meanvalue(1,2:tvy),blue,fxx,fyy,red)legend(最大值,平均值,终值)gridfunction x,maxf,trace_value,trace_meanvalue=Fuhexing(f,g,X,alpha,sita,gama,beta,var,eps) %f 目标函数%g 约束函数 %X 初始复合形 %alpha 反射系数 %sita 压缩系数 %gama

7、扩展系数 %beta 收缩系数 %var 自变量向量 %eps 精度 %x 目标函数取最小值时的自变量 %minf 目标函数的最小值 trace_value=0; %用于记录最大值的轨迹 trace_meanvalue=0; %用于记录平均值的轨迹 N=size(X); n=N(2); %n 为复合形的顶点个数 FX=zeros(1,n); %用于存放复合形的函数值 if nargin=8 eps=1.0e-6; end N=size(X); n=N(2); Fx=zeros(1,n);while 1 %一直执行,知道找到满足收敛条件后用 break 跳出循环 for i=1:n FX(i)=

8、subs(f,var,X(:,i); %求出复合形的函数值 end XS,IX=sort(FX); %对 FX 从大到小排序 Xsorted=X(:,IX); %Xsorted 为排好序的 X px=(sum(Xsorted,2)-Xsorted(:,1)/(n-1); %求的除最小值以为的平均值 trace_meanvalue=trace_meanvalue,sum(FX)/n; Fpx=subs(f,var,px); %求的平均值的函数值 aaa=subs(f,var,Xsorted(:,n); trace_value=trace_value,aaa; SumF=sqrt(sum(FX-F

9、px).2)/(n-1); %计算收敛值 if SumF=0 %在约束条件 bcon_1=0; else cof_alpha=0.5*cof_alpha; %如不在约束条件,那么循环,直到到达约束条件 end end fx2=subs(f,var,x2); %反射点函数值 反射局部完毕if fx2XS(n) %如果反射局部优于最优值 那么进展扩操作 cof_gama=gama; x3=x2+cof_gama*(x2-px); %扩 gx3=subs(g,var,x3); fx3=subs(f,var,x3); if min(gx3)=0 %如果符合边界, if fx3XS(n) count=1; %优于最优值 else count=2; %比最优值差 end else count=3; %不符合边界 end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号