[机械优化设计坐标轮换发c语言.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[机械优化设计坐标轮换发c语言

#include stdio.h #include math.h #define m 10 /*数组长度m = 维数n */ float f(float x[]); void mjtf(int n,float x0[],float h,float s[],float a[],float b[]); void mhjfgf(int n,float a[],float b[],float flag,float x[]); void zblhf(int n,float x0[],float h,float flag1,float flag2,float a[],float b[],floatx[]); /*目标函数(n维)*/ /*入口参数: x :n维数组,自变量 */ /*返回值 :函数值 */ float f(float x[]) { float result; result=60-10*(x[0])-4*(x[1])+(x[0]*x[0])+(x[1]*x[1])-(x[0]*x[1]); return result; } /*多维进退法子程序*/ /*入口参数: n :优化模型维数 x0 :n维数组,初始点坐标 h :初始搜索步长 s :n维数组,搜索方向 */ /*出口参数: a :n维数组,搜索区间下限 b :n维数组,搜索区间上限*/ void mjtf(int n,float x0[],float h,float s[],float a[],float b[]) { int i; float x1[m],x2[m],x3[m],f1,f2,f3; for(i=0;in;i++) /*计算初始两试点*/ { x1[i]=x0[i]; x2[i]=x0[i]+h*s[i]; } f1=f(x1); f2=f(x2); if(f2=f1) /*判断搜索方向*/ { /*搜索方向为反向,转身*/ h=(-1)*h; for(i=0;in;i++) x3[i]=x1[i]; f3=f1; for(i=0;in;i++) x1[i]=x2[i]; f1=f2; for(i=0;in;i++) x2[i]=x3[i]; f2=f3; } /*搜索方向为正向*/ for(i=0;in;i++) /*计算第三试点*/ x3[i]=x2[i]+h*s[i]; f3=f(x3); while(f3f2) /*判断是否未完成搜索*/ { /*未完成,继续搜索*/ h=2*h; for(i=0;in;i++) x1[i]=x2[i]; f1=f2; for(i=0;in;i++) x2[i]=x3[i]; f2=f3; for(i=0;in;i++) x3[i]=x2[i]+h*s[i]; f3=f(x3); } /*已完成*/ for(i=0;in;i++) /*输出初始搜索区间*/ { if(h0) //if(x1[i]x3[i]) { a[i]=x1[i]; b[i]=x3[i]; } else { a[i]=x3[i]; b[i]=x1[i]; } } } /*多维黄金分割法子程序*/ void mhjfgf(int n,float a[],float b[],float flag,float x[]) { int i; float x1[m],x2[m],f1,f2,sum; for(i=0;in;i++) /*计算初始两试点*/ x1[i]=b[i]-(float)0.618*(b[i]-a[i]); f1=f(x1); for(i=0;in;i++) x2[i]=a[i]+(float)0.618*(b[i]-a[i]); f2=f(x2); do { if(f1=f2) /*判断消去区间*/ { /*消去右*/ for(i=0;in;i++) b[i]=x2[i]; for(i=0;in;i++) x2[i]=x1[i]; f2=f1; for(i=0;in;i++) x1[i]=b[i]-(float)0.618*(b[i]-a[i]); f1=f(x1); } else { /*消去左*/ for(i=0;in;i++) a[i]=x1[i]; for(i=0;in;i++) x1[i]=x2[i]; f1=f2; for(i=0;in;i++) x2[i]=a[i]+(float)0.618*(b[i]-a[i]); f2=f(x2); } sum=0; for(i=

文档评论(0)

huhongjun + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档