欢迎来到天天文库
浏览记录
ID:58574891
大小:14.50 KB
页数:3页
时间:2020-10-19
《机械优化设计随机法程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"stdio.h"#include"stdlib.h"#include"math.h"doubleobjf(doublex[]){doubleff;ff=pow((x[0]-4),2)+pow((x[1]-5),2);return(ff);}/*约束条件子程序*/doublestrain(doublex[]){inti;doubleg[3];g[0]=x[0]-1;g[1]=x[1]-1;g[2]=8-x[0]-x[1];for(i=0;i<3;i++){if(g<0)return(0);}return(1);}doublern(doub
2、le*r){intm;doubles,u,v,p;s=65536.0;u=2053.0;v=13849.0;*r=u*(*r)+v;m=(int)(*r/s);*r=*r-m*s;p=*r/s;return(p);}doublerandopti(doublex[],doublexl[],doublexh[],doublea0,doubleeps,intn,intnmax){inti,iw,k,jj=0;double*x0,*s,a,f0,f,rr=0,ss;x0=(double*)malloc(n*sizeof(double));s=(double*)m
3、alloc(n*sizeof(double));do{for(i=0;i2000){printf("找不到初始可行点!");return(-1);}}while(iw!=1);a=a0;f0=objf(x0);for(;;){k=1;jj=0;L1:ss=0;for(i=0;i4、i++){*(s+i)=*(s+i)/sqrt(ss);*(x+i)=*(x0+i)+a*(*(s+i));}do{iw=strain(x);if(iw==1){f=objf(x);if(fnmax){if(a>eps)a=a*0.5;else{free(x0);free(s);return(objf(x));}}el5、segotoL1;}}}voidmain(){doublea[]={0,0};doubleb[]={8,9};doublec,x[2];c=randopti(x,a,b,1,0.00001,2,50);printf("输出最优点及其目标函数值:");printf("x[0]=%f,x[1]=%f,ff=%f",x[0],x[1],c);getchar();}
4、i++){*(s+i)=*(s+i)/sqrt(ss);*(x+i)=*(x0+i)+a*(*(s+i));}do{iw=strain(x);if(iw==1){f=objf(x);if(fnmax){if(a>eps)a=a*0.5;else{free(x0);free(s);return(objf(x));}}el
5、segotoL1;}}}voidmain(){doublea[]={0,0};doubleb[]={8,9};doublec,x[2];c=randopti(x,a,b,1,0.00001,2,50);printf("输出最优点及其目标函数值:");printf("x[0]=%f,x[1]=%f,ff=%f",x[0],x[1],c);getchar();}
此文档下载收益归作者所有