机械优化设计的matlab程序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
黄金分割法 % 黄金分割法 f=inline(x^2-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 f1=f2 % 舍弃右区间 b=x2;x2=x1;f2=f1; x1=b-0.618*(b-a);f1=f(x1); else % 舍弃左区间 a=x1;x1=x2;f1=f2; x2=a+0.618*(b-a);f2=f(x2); end x=0.5*(b+a); fprintf(1, 迭代区间-左端 a = % 3.4f fprintf(1, 试点1坐标值 x1 = % 3.4f \n,x1) fprintf(1, 函数值 f1 = % 3.4f \n,f(x1)) fprintf(1, 迭代区间-右端 b = % 3.4f \n,b) fprintf(1, 试点2坐标值 x2 = % 3.4f \n,x2) fprintf(1, 函数值 f2 = % 3.4f \n,f(x2)) fprintf(1, 区间中点 x = % 3.4f \n,x) disp end fprintf(1, 区间中点函数值 fx = % 3.4f \n,f(x)) 鲍威尔法 % 鲍威尔法-计算第2环起始点和搜索方向 syms x1 x2 f=60-10*x1-4*x2+x1^2+x2^2-x1*x2; disp 目标函数: pretty(f); % 第1环沿e2方向搜索 x01=0;x02=0;X0=[x01 x02]; % 第1环初始点 x1=5.0000;x2=0;X=[x1 x2]; % 第1环沿e2方向初始点 fy1=60-10*x1-4*x2+x1^2+x2^2-x1*x2; % 第1环e2方向初始点函数值 e1=[1,0];e2=[0,1]; % 坐标轴单位方向 s1=e2(1);s2=e2(2);S=[s1 s2]; m=0;[xy1,xy2,fyx]=powell(m,x1,x2,X,s1,s2,S); % 计算影射点及其函数值 xs1=2*xy1-x01;xs2=2*xy2-x02;Xs=[xs1 xs2]; fxs=60-10*xs1-4*xs2+xs1^2+xs2^2-xs1*xs2; fx0=60-10*x01-4*x02+x01^2+x02^2-x01*x02; % 第1环初始点函数值 disp 第1环影射点坐标 disp (Xs) % 判断第1环搜索函数值下降最大方向 df01=fx0-fy1; % 第1环沿e1方向初始点函数值-第1环沿e1方向终点函数值 df02=fy1-fyx; % 第1环沿e2方向起始点函数值-第1环沿e2方向始点函数值 if df01df02 dfm=df01;m=1; else dfm=df02;m=2; end % 计算POWELL判别式 f1=fx0;f2=fyx;f3=fxs;f123=[f1 f2 f 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];

您可能关注的文档

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档