机械优化设计 MATLAB软件.docVIP

  • 33
  • 0
  • 约5.22千字
  • 约 6页
  • 2017-11-26 发布于江西
  • 举报
机械优化设计 MATLAB软件

《机械优化设计基础》实验上机报告(四) 课 程: 机械优化设计基础 上机内容: 复合形法算法的验证 学 期: 2010~2011学年第二学期 指导教师: 时 间: 2011年6月16日 地 点: 报告人: 学 号: 年级、专业: 西南交通大学峨眉校区机械工程系 一、使用的工具:Matlab。 二、上机要求:1、遵守上机纪律,爱护机房设备; 2、完成每次上机的练习,然后统一上交,并保证掌握相关知识; 3、注意经常对自己的操作进行存档;遇到问题必须弄清楚,不懂应该举手示意。 三、上机目的:1、熟悉MATLAB软件环境,掌握程序编辑器的使用。 2、熟悉复合形法的算法原理。目标函数和约束函数如下: 初始复合形的三个顶点为:,,。 要求计算两个新复合形。 四、实验结果(程序代码及运行结果): 复合形法函数为:minconSimpSearch 调用格式:[x,minf]=minconSimpSearch(f,g,X,alpha,sita,gama,beta,var,eps) 复合形法的MATLAB程序代码如下: function [x,minf]=minconSimpSearch(f,g,X,alpha,sita,gama,beta,var,eps) % f:目标函数 % g:约束函数 % X:初始复合形 % alpha:反射系数 % sita:紧缩系数 % gama:扩展系数 % beta:收缩系数 % var:自变量向量 % eps:精度 % x:目标函数取最小值时的自变量 % minf:目标函数的最小值 if nargin==8 %函数参量个数 eps=1.0e-6; end N=size(X); n=N(2); FX=zeros(1,n); while 1 for i=1:n FX(i)=Funval(f,var,X(:,i)); end [XS,IX]=sort(FX); Xsorted=X(:,IX); %按照IX的顺序重新排列X px=sum(Xsorted(:,1:(n-1)),2)/(n-1); %sum(a,2),a矩阵行相加 Xsorted(:,1:2)保留Xsort的1,2列。中心点坐标。 Fpx=Funval(f,var,px); %中心点函数值 SumF=0; for i=1:n SumF=SumF+(FX(IX(i))-Fpx)^2; %判断收敛 end SumF=sqrt(SumF/(n-1)); if SumF=eps x=Xsorted(:,1); break; else bcon_1=1; cof_alpha=alpha; while bcon_1 x2=px+cof_alpha*(px-Xsorted(:,n)); %算反射点的坐标 gx2=Funval(g,var,x2); %看有没有出界 if min(gx2)=0 bcon_1=0; else cof_alpha=0.7*(cof_alpha); end end fx2=Funval(f,var,x2); %反射点函数值 if fx2XS(1) cof_gama=gama; bcon_2=1; while bcon_2 x3=x2+cof_gama*(x2-px); %扩张步骤,感觉应该用x2代贴第一部分px gx3=Funval(g,var,x3); fx3=Funval(f,var,x3); if min(gx3)=0

文档评论(0)

1亿VIP精品文档

相关文档