




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
是否否否否是是是否求反射点一次坏点xG代替最坏点xH结 束xR可行?xC可行?计算出去xH后的各顶点中心 ?(一) 源程序如下:/*输入值选择n=2,k=3,本程序可以处理n为2或3,k为3或4的情况*/#include #include #include #include #define E0 1e-5 /*复合形法收敛控制精度*/double *apply(int,int); /*申请矩阵空间*/double f(double *); /*目标函数*/double *g(double *); /*约束函数*/bool judge(double *); /*可行点的判断*/int main()int n,k;int i,j,k1;int l;double temporary;double restrain; /*收敛条件*/double reflect; /*反射系数*/srand(unsigned)time(NULL);printf(请输入目标函数的维数n:); /*输入已知数据*/scanf(%d,&n);printf(请输入复合形的顶点数k:);scanf(%d,&k);double *x=apply(k,n); /*存放复合形顶点*/double *y=(double *)calloc(k,sizeof(double); /*存放目标函数值*/double *p=(double *)calloc(3,sizeof(double); /*存放约束函数值*/double *a=(double *)calloc(n,sizeof(double); /*存放设计变量的下限*/double *b=(double *)calloc(n,sizeof(double); /*存放设计变量的上限*/double *x_c=(double *)calloc(n,sizeof(double); /*存放可行点中心*/double *x_r=(double *)calloc(n,sizeof(double); /*存放最坏点的反射点*/printf(本程序中的所有输入,两个数之间用空格隔开,然后按enter键时不要长时间的按,否则,可能会出错n); printf(请输入选定的第一个可行点x1(包含%d个数):,n);for(i=0;in;i+)scanf(%lf,*x+i);printf(请输入初选变量的下限a(包含%d个数):,n);for(i=0;in;i+)scanf(%lf,a+i);printf(请输入初选变量的上限b(包含%d个数):,n);for(i=0;in;i+)scanf(%lf,b+i);printf(输出输入结果为:nn=%d,k=%d,x1=(,n,k); /*输出已知数据*/for(i=0;in-1;i+)printf(%.5lf ,*(*x+i);printf(%.5lf)na=(,*(*x+n-1);for(i=0;in-1;i+)printf(%f ,*(a+i);printf(%.5lf),b=(,*(a+n-1);for(i=0;in-1;i+)printf(%f ,*(b+i);printf(%.5lf)n,*(b+n-1);L1:for(i=1;ik;i+) /*随机得到其余(k-1)个可行点*/for(j=0;jn;j+)*(*(x+i)+j)=*(a+j)+(double)(rand()%10000)/10000*(*(b+j)-*(a+j);l=1;for(i=1;ik;i+) /*找出可行点的个数l,并把可行点放在前l个位置上*/if(judge(*(x+i)for(j=1;jk;j+)if(!judge(*(x+j)for(k1=0;k1n;k1+)temporary=*(*(x+i)+k1);*(*(x+i)+k1)=*(*(x+j)+k1);*(*(x+j)+k1)=temporary;break;l+;for(i=0;il-1;i+) /*把前l个可行点按目标函数值从大到小排序*/for(j=i+1;jl;j+)if(f(*(x+i)f(*(x+j)for(k1=0;k1n;k1+)temporary=*(*(x+i)+k1);*(*(x+i)+k1)=*(*(x+j)+k1);*(*(x+j)+k1)=temporary;for(i=0;in;i+) /*求可行点中心*/*(x_c+i)=0;for(i=0;il;i+)for(j=0;jn;j+)*(x_c+j)+=*(*(x+i)+j);for(i=0;in;i+)*(x_c+i)/=l;if(!judge(x_c) /*判断可行点中心是否可行*/for(i=0;in;i+)*(a+i)=*(*(x+l-1)+i);*(b+i)=*(x_c+i);goto L1;elsefor(i=l;ik;i+) /*将不可行点可行化*/dofor(j=0;jn;j+)*(*(x+i)+j)=*(x_c+j)+0.5*(*(*(x+i)+j)-*(x_c+j);while(!judge(*(x+i);L2:for(i=0;ik-1;i+) /*将可行点按目标函数值从大到小排序*/for(j=i+1;jk;j+)if(f(*(x+i)f(*(x+j)for(k1=0;k1n;k1+)temporary=*(*(x+i)+k1);*(*(x+i)+k1)=*(*(x+j)+k1);*(*(x+j)+k1)=temporary;restrain=0; /*求收敛条件*/for(i=0;ik;i+)restrain+=(f(*(x+i)-f(*(x+k-1)*(f(*(x+i)-f(*(x+k-1);restrain=sqrt(1.0/(k-1)*restrain);if(restrainE0) /*判断收敛条件*/printf(n求得约束最优点为:( );for(i=0;in;i+)printf(%.5f ,*(*(x+k-1)+i);printf()n目标函数的最优解为:%.5fn,f(*(x+k-1);return 0;elseL3:for(i=0;in;i+) /*计算除去最坏点*x外的(k-1)个顶点的中心*/*(x_c+i)=0;for(i=1;ik;i+)for(j=0;jn;j+)*(x_c+j)+=*(*(x+i)+j);for(i=0;in;i+)*(x_c+i)/=k-1;reflect=1.3;L4:for(i=0;in;i+) /*求反射点*/*(x_r+i)=*(x_c+i)+reflect*(*(x_c+i)-*(*x+i);if(!judge(x_r)reflect*=0.5;goto L4;else if(f(x_r)f(*x)for(i=0;in;i+)*(*x+i)=*(x_r+i);goto L2;else if(reflect=1e-10)for(i=0;in;i+)*(*x+i)=*(*(x+1)+i);goto L3;elsereflect*=0.5;goto L4;double *apply(int row,int col) /*申请矩阵空间*/int i;double *x=(double*)calloc(row*col,sizeof(double);double *y=(double *)calloc(row,sizeof(double *);if(!x | !y)printf(内存分配失败!);exit(1);for(i=0;irow;i+)*(y+i)=x+i*col;return y;double f(double *x) /*目标函数*/return (*x-5)*(*x-5)+4*(*(x+1)-6)*(*(x+1)-6);double *g(double *x) /*约束函数*/double *p=(double *)calloc(3,sizeof(double);if(!p)printf(内存分配失败!);exit(1);*p=64-(*x)*(*x)-(*(x+1)*(*(x+1);*(p+1)=*(x+1)-*x-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 降碳建筑改造方案设计
- 学校法治讲座活动方案策划
- 单体项目建筑摄影方案设计
- 英国北海油田
- 退休教师座谈会校长致辞:情系校园忆往昔心牵桃李盼常聚
- 团结超市活动策划方案模板
- 美发搞活动策划方案
- 个人协议书范本
- 电竞产业全球市场规模及增长趋势
- 2025金属非金属矿山安全作业能力检测试卷附完整答案详解
- 高速公路改扩建桥梁拼宽施工技术及质量控制
- 双台110kV主变短路电流计算书
- DB1750-2019水电站(厂)防雷与接地性能测试技术规范
- 牛常见病防治课件
- 你不懂咖啡课件
- 危险物品储存安全隐患排查整治表
- 装饰工程保修单
- IInterlib区域图书馆集群管理系统-用户手册
- EnglishDrama英语戏剧写作及表演技巧课件
- DB11T 827-2019 废旧爆炸物品销毁处置安全管理规程
- GB∕T 1186-2016 压缩空气用织物增强橡胶软管 规范
评论
0/150
提交评论