机械优化设计的matlab程序.doc_第1页
机械优化设计的matlab程序.doc_第2页
机械优化设计的matlab程序.doc_第3页
机械优化设计的matlab程序.doc_第4页
机械优化设计的matlab程序.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黄金分割法% 黄金分割法f=inline(x2-7*x+10,x); % 目标函数% 搜索区间和收敛精度a=2;b=8;epsilon=0.35;x1=b-0.618*(b-a);f1=f(x1); % 计算左试点x2=a+0.618*(b-a);f2=f(x2); % 计算右试点for k=1:7 fprintf(1, 迭代次数 k = % 3.0f n,k) if f1df02 dfm=df01;m=1;else dfm=df02;m=2;end% 计算POWELL判别式f1=fx0;f2=fyx;f3=fxs;f123=f1 f2 f3;disp 第1环初始点、终点、影射点函数值disp (f123)fP1=(f1-2*f2+f3)*(f1-f2-dfm)2;fP2=0.5*dfm*(f1-f3)2;fP=fP1 fP2;disp 两个POWELL判别式的值fprintf(1, POWELL判别式1的值 fP1= %10.4f n,fP1)fprintf(1, POWELL判别式1的值 fP2= %10.4f n,fP2)fprintf(1, 函数值下降最大方向 m= %2.0f n,m)if f1f3 & fP2fP1 sx1=xy1-X0(1); % 同时不满足两个判别式时,产生新方向 sx2=xy2-X0(2);sx=sx1 sx2; if m=1 S=e2,sx; % 新方向取代上环搜索中函数值下降最大方向m=1 else S=e1,sx; % 新方向取代上环搜索中函数值下降最大方向m=2 endelse S=e1,e2; % 满足某个判别式时,保留上环搜索方向enddisp 第2环搜索方向 disp (S)% 第1环沿新方向搜索x1=xy1;x2=xy2;X=x1 x2;s1=xy1-x01;s2=xy2-x02; S=s1 s2;xy1,xy2,fyx=powell(m,x1,x2,X,s1,s2,S);disp 第2环搜索起始点 if fyxfxs x20=xy1 xy2;disp (第1环极小点)else x20=xs1 xs2;disp (第1环影射点)enddisp (x20)% 鲍威尔法-第1环计算function xy1,xy2,fyx=powell(m,x1,x2,X,s1,s2,S)% 目标函数中常数项、步长的一次项和二次项系数fxs0=60-10*x1-4*x2+x12+x22-x1*x2;fxs1=-10*s1-4*s2+2*x1*s1+2*x2*s2-x1*s2-x2*s1;fxs2=s12+s22-s1*s2;fxs210=fxs2 fxs1 fxs0;% 计算最优步长af=-fxs1/(2*fxs2);% 计算终点函数值(关于最优步长)fya=fxs0+fxs1*af+fxs2*af2;% 计算终点坐标值和函数值(关于终点)xy1=x1+s1*af;xy2=x2+s2*af;Xopt=xy1 xy2;fyx=60-10*xy1-4*xy2+xy12+xy22-xy1*xy2;if m=0 disp * 计算第1环沿e2方向搜索 *else disp * 计算第1环沿新方向搜索 *enddisp 初始点disp (X)disp 搜索方向disp (S)disp 步长二次项 一次项系数 常数项disp (fxs210)disp 最优步长disp (af)if m=0 disp 终点坐标 disp (Xopt)else disp 极小点坐标 disp (Xopt) disp 极小点函数值(关于最优步长) disp (fya) disp 极小点函数值(关于极小点) disp (fyx)end惩罚函数-外点法% 惩罚函数-外点法% 数学模型syms xf=x;g=x-1;% 惩罚因子初值、递增系数、迭代次数r0 = 0.25;c = 2; km = 7;k = 1:km; % 迭代计数r=r0*c.(k-1); % 惩罚因子递增数列x=1-1./(2.*r); % 点列x*(k)g=x-1; % 约束函数gf=x; % 目标函数fp=x+r.*g.2; % 惩罚函数pdisp * 计算结果 *disp 迭代次数 kkdisp 惩罚因子 rrdisp 极小点列 x*xdisp 目标函数 f*fdisp 惩罚函数 p*p惩罚函数-内点法% 惩罚函数-内点法% 数学模型syms xf=x;g=x-1;% 惩罚因子初值、递减系数、迭代次数r0 = 1;c = 0.1; km = 7;k = 1:km; % 迭代计数r=r0*c.(k-1); % 惩罚因子递减数列x=1+sqrt(r); % 点列x*(k)g=x-1; % 约束函数gf=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论