版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、太原理工大学机械学院机测系课程上机实验报告课 程 名 称: 机械优化设计 班级机测2班日 期成绩评定姓名陈明鑫实验室机械馆机房老师签名实验名称利用外点罚函数法求解相关函数的极小值点所用软件实验目的及内容实验目的:1.掌握并能够建立最优化基本类型问题的数学模型。2.掌握最优化方法的基本概念、基本理论和基本方法,奠定最优化的理论基础。3.能够熟练编制和调试最优化方法的程序,奠定解决实际中的优化问题的基础实验内容:理解外点罚函数法并编写相关程序求其极小值点。实验原理步骤、实验结果及分析 外点罚函数法计算结果*外点惩罚函数法计算结果*无约束优化方法:鲍威尔法*+一维搜索方法:黄金分割法+*初始惩罚因子
2、:r0= 1.00* 递增系数:c0=10.00*初始坐标: x( 0)= 0., 0., f( 0)= 1.迭代轮数 k= 1 x( 1)= 0., 0., f( 1)= 0. 迭代精度: 0.迭代轮数 k= 2 x( 2)= 0., -0., f( 2)= 0. 迭代精度: 0.迭代轮数 k= 3 x( 3)= 0., 0., f( 3)= 0. 迭代精度: 0.迭代轮数 k= 4 x( 4)= 0., -0., f( 4)= 0. 迭代精度: 0.迭代轮数 k= 5 x( 5)= 0., 0., f( 5)= 0. 迭代精度: 0.迭代轮数 k= 6 x( 6)= 1., -0., f(
3、 6)= 1. 迭代精度: 0.迭代轮数 k= 7 x( 7)= 1., 0., f( 7)= 1. 迭代精度: 0.迭代轮数 k= 8 x( 8)= 1., -0., f( 8)= 1. 迭代精度: 0.迭代轮数 k= 9 x( 9)= 1., -0., f( 9)= 1. 迭代精度: 0.*外点惩罚函数法优化最优点及目标函数值为: x( *)= 1., -0., f( *)= 1. 迭代精度: 0.罚函数法考核题 外点 :,其初始迭代点为,中止误差 内点 :,其初始迭代点为,中止误差 *外点惩罚函数法计算结果*无约束优化方法:鲍威尔法*+一维搜索方法:黄金分割法+*初始惩罚因子:r0= 1
4、.00* 递增系数:c0=10.00*初始坐标: x( 0)= 2., 2., f( 0)= 18.迭代轮数 k= 1 x( 1)= 1., 0., f( 1)= 0. 迭代精度: 1.迭代轮数 k= 2 x( 2)= 0., 0., f( 2)= 1. 迭代精度: 0.迭代轮数 k= 3 x( 3)= 0., 0., f( 3)= 1. 迭代精度: 0.迭代轮数 k= 4 x( 4)= 0., 0., f( 4)= 1. 迭代精度: 0.迭代轮数 k= 5 x( 5)= 0., 0., f( 5)= 1. 迭代精度: 0.迭代轮数 k= 6 x( 6)= 0., 0., f( 6)= 1.
5、迭代精度: 0.迭代轮数 k= 7 x( 7)= 0., 0., f( 7)= 1. 迭代精度: 0.迭代轮数 k= 8 x( 8)= 0., 0., f( 8)= 1. 迭代精度: 0.迭代轮数 k= 9 x( 9)= 0., 0., f( 9)= 1. 迭代精度: 0.迭代轮数 k= 10 x( 10)= 0., 0., f( 10)= 1. 迭代精度: 0.*外点惩罚函数法优化最优点及目标函数值为: x( *)= 0., 0., f( *)= 1. 迭代精度: 0.算法程序实现/*鲍威尔法*/ #include #include #include #include #include #d
6、efine N 2 /*优化设计维数*/#define EPSIN 0. /*迭代精度*/#define H_QJ 1.0 /*初始区间搜索步长*/#define Y_F 1 /*一维搜索方法选择:1黄金分割法*/ /* 2二次插值法*/ #define MC 10.0 /*惩罚因子递增系数*/#define NG 1 /*不等式约束个数*/#define NH 1 /*等式约束个数*/FILE *fp;double mr=1.0; /*外点惩罚因子*/char outname50=外点惩罚函数法计算结果.txt; /*计算结果输出文件*/*给出初始点坐标*/void csd_x(double
7、 x0)int i;for(i=0;iN;i+) /*初始点为坐标原点的情况*/x0i=0.0;return;/*目标函数*/double hanshu1(double x)double f;f=x0*x0+x1*x1; return f;/*不等式约束方程*/void strain(double x,double g,double h)double eb;eb=EPSIN;g0=x0-1.0-eb*10.0;/g1=1.0-(x0+x1)-eb*10.0;h0=0.0; /*至少有一个为0的等式约束*/return;/*以上为修改部分*/*惩罚函数*/double hanshu(double
8、 x)int i;double f,f1,gNG,hNH;f=hanshu1(x);strain(x,g,h);f1=0.0;for(i=0;iNG;i+)if(gi0.0)f1+=gi*gi;for(i=0;iNH;i+)f1+=hi*hi;f+=mr*f1; return f;/*计算f(xk+as)*/double xkadd(double x,double d,double a)int i;double x1N;for(i=0;iN;i+)x1i=xi+a*di;return hanshu(x1);/*输出选定的一维迭代方法*/void ywddf(int yw)switch(yw)c
9、ase 1:fprintf(fp,+一维搜索方法:黄金分割法+nn);break;case 2:fprintf(fp,+一维搜索方法:二次插值法+nn);break;return;/*输出当前迭代点坐标及目标函数值*/double xfout(double x,int m)int j;double f;f=hanshu(x);fprintf(fp, x(%3d)=,m);for(j=0;jf2)a2=a3;a3=0.0;f1=f2;f2=f3;f3=f1;h=-h;doa1=a2;a2=a3;f1=f2;f2=f3;a3=a2+h;f3=xkadd(x,d,a3);h=2*h;while(f3
10、0.0)ab0=a1;ab1=a3;elseab0=a3;ab1=a1;return;/*黄金分割法*/void goldcut(double x,double d,double h,double ebsin)double a1,a2,f1,f2,a,b,ab2;int i;csssqj(x,d,h,ab);a=ab0;b=ab1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);a2=a+0.618*(b-a);f2=xkadd(x,d,a2);doif(f1f2)a=a1;a1=a2;f1=f2;a2=a+0.618*(b-a);f2=xkadd(x,d,a2);else
11、b=a2;a2=a1;f2=f1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);while(b-aebsin);for(i=0;iN;i+)xi+=(b+a)*di/2;return;/*二次插值法*/int rccz(double x,double d,double h,double ebsin)double a1,a2,a3,a4,f1,f2,f3,f4,c1,c2,ab2;int i,p=0,k=0;csssqj(x,d,h,ab);a1=ab0;a3=ab1;a2=(a1+a3)/2;f1=xkadd(x,d,a1);f2=xkadd(x,d,a2);f3=xka
12、dd(x,d,a3);while(1)c1=(f3-f1)/(a3-a1);c2=(f2-f1)/(a2-a1)-c1)/(a2-a3);if(0=c2)p=1;break;a4=0.5*(a1+a3-c1/c2);if(a4-a1)*(a3-a4)=0.0)p=2;break;f4=xkadd(x,d,a4);if(1=k&fabs(a4-a2)=ebsin)break;if(a4f4)f1=f2;a1=a2;k=1;a2=a4;f2=f4;elsea3=a4;f3=f4;elseif(f2f4)f3=f2;a3=a2;k=1;a2=a4;f2=f4;elsea1=a4;f1=f4;if(0
13、=p)f1=f4-f2?a4:a2;elsef1=a2;for(i=0;iN;i+)xi+=f1*di;return p;/*鲍威尔*/void baowr(double x,double h,double ebsin,int yw)double dNN,x0N,x1N,fN+2,df,df1;int i,j,k=1,m;fN=hanshu(x);for(i=0;iN;i+)for(j=0;jN;j+)dij=0.0;for(i=0;iN;i+)dii=1.0;dofor(i=0;iN;i+)x0i=xi;f0=fN;switch(yw)case 1:for(i=0;iN;i+)goldcut
14、(x,di,h,ebsin);fi+1=hanshu(x);break;case 2:for(i=0;iN;i+)j=rccz(x,di,h,ebsin);fi+1=hanshu(x);break;for(i=0;iN;i+)x1i=2*xi-x0i;fN+1=hanshu(x1);df=0.0;m=0;for(i=0;idf)df=df1;m=i;df1=(f0-2*fN+fN+1)*(f0-fN-df)*(f0-fN-df);df1-=0.5*df*(f0-fN+1)*(f0-fN+1);if(fN+1=f0|df1=0.0)if(fNfN+1)for(i=0;iN;i+)xi=x1i;e
15、lsefor(i=m;iN-1;i+)for(j=0;jN;j+)dij=di+1j;for(i=0;iN;i+)dN-1i=xi-x0i;switch(yw)case 1:goldcut(x,dN-1,h,ebsin);break;case 2:j=rccz(x,dN-1,h,ebsin);break;fN=hanshu(x);df=0.0;for(i=0;iebsin);return;/*外点惩罚函数法*/void sumt(double x,double h,double ebsin,int yw)int i,k;double x0N,fact,f,mc;mc=MC;fprintf(fp
16、,*外点惩罚函数法计算结果*nn);fprintf(fp,*无约束优化方法:鲍威尔法*n);ywddf(yw); /*输出一维迭代方法*/fprintf(fp,*初始惩罚因子:r0=%5.2lf*n,mr);fprintf(fp,* 递增系数:c0=%5.2lf*nn,mc);fprintf(fp,初始坐标:n);f=xfout(x,0);fprintf(fp,n);k=1;dofprintf(fp,迭代轮数 k=%3d n,k);for(i=0;iN;i+)x0i=xi;baowr(x,h,ebsin,yw);f=xfout(x,k);fact=0.0;for(i=0;iebsin);fprintf(fp,*n);fprintf(fp,外点惩罚函数法优化最优点及目标函数值为:n);fprintf(fp, x( *)=);for(i=0;iN-1;i+)fprintf(fp,%15.7lf,xi);fprintf(fp,%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年中考内蒙古自治区语文初三查缺补漏专练(含答案)
- 圆梦中考 2027年海南省历史九年级人教版模拟演练卷(含答案)
- 2027年中考福建省道德与法治九年级人教版考前回归卷(含答案)
- 2027年四川省历史九年级湘教版考前回归卷(含答案)
- 备战期中 2026-2027学年第一学期初一语文部编版第一阶段阶段检测卷(含答案)
- 2027年四川省道德与法治九年级湘教版综合测试卷(含答案)
- 2027年四川省语文九年级人教版查漏补缺卷(含答案)
- 江苏事业编水利岗 2026 易错题试卷 含答案
- 2026水利岗面试易错题 含答案
- 2026 计算机岗面试真题集 含答案
- 初中物理八年级下册《摩擦力》教学设计
- 空调水管道试压冲洗专项方案
- (2026年版)中国有肾脏意义的单克隆免疫球蛋白血症诊治专家共识课件
- 家用电器产品检测合同协议
- SYT 6649-2025《油气管道管体缺陷修复技术规范》
- 2025年吉林省地理生物会考真题试卷+解析及答案
- 2026年辽宁省铁岭市西丰县第二中学中考二模数学试题(含答案)
- 2026年九省联考化学答案及试卷
- 2026全国高考体育单招考试语文试题试题(含答案)
- 2026年大学生人文知识竞赛题库及答案
- 2025年管理岗面试试题及答案
评论
0/150
提交评论