




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 现代设计理论与方法实验报告 、实验目的 机械优化设计是一门实践性较强的课程,学生通过实际上机计算可以达到以 下目的: 1 加深对机械优化设计方法的基本理论和算法步骤的理解; 2 培养学生独立编制或调试计算机程序的能力; 3 掌握常用优化方法程序的使用方法; 4 培养学生灵活运用优化设计方法解决工程实际问题的能力 、实验项目、学时分配及对每个实验项目的要求 实验项目 学时 实验要求 1 明确黄金分割法基本原理、计算步骤及程序框图; 1 黄金分割法 2编制或调试黄金分割法应用程序; 3 用测试题对所编程序进行测试; 4撰写实验报告 1 明确复合形法基本原理、计算步骤及程序框图 等; 2 复合形法
2、 42.编制或调试复合形法应用程序; 3 用测试题对所编程序进行测试; 4.撰写实验报告。 三、测试题 1.黄金分割法程序测试题 1) nil =-10 x4-36 取岭三。爲三=10 程序如下: #in clude #in clude #in clude #defi ne e 0.00001 #define tt 0.01 float function(float x) float y=pow(x,2)-10*x+36;/求解的一维函数 return(y); void finding(float a3,float f3) float t=tt,a1,f1,ia; int i; a0=0;/
3、初始区间的下界值 f0=function(a0); for(i=0;i+) a1=a0+t;f1=function(a1); if(f1=e) t=-t;a0=a1;f0=f1; else if(ia=1) return; t=t/2;ia=1; for(i=0;i+) a2=a1+t;f2=function(a2); if(f2f1) break; t=2*t; a0=a1;f0=f1; a1=a2;f1=f2; if(a0a2) a1=a0;f1=f0; a0=a2;f0=f2; a2=a1;f2=f1; return; float gold(float *ff) float a13,f1
4、3,a4,f4; float aa; int i; finding(a1,f1); a0=a10;f0=f10; a3=a12;f3=f12; a1=a0+0.382*(a3-a0); a2=a0+0.618*(a3-a0); f1=function(a1); f2=function(a2); for(i=0;i+) if(f1=f2) a0=a1;f0=f1; a1=a2;f1=f2; a2=a0+0.618*(a3-a0); f2=function(a2); else a3=a2;f3=f2; a2=a1;f2=f1; a1=a0+0.382*(a3-a0); f1=function(a1
5、); if(a3-a0)e) aa=(a1+a2)/2;*ff=function(aa); break; return(aa); void main() float xx, ff; xx=gold( printf(n The Optimal Design Result Is:n); printf(ntx*=%fntf*=%f, xx, ff); getch(); 运行结果: 回 rtr 2)fu -FW =r+ -5r +-6x + ti0 取耳 Y 為*12 程序如下: #in clude #in clude #in clude #defi ne e 0.00001 #defi ne tt
6、0.01 float fun cti on( float x) 求解的一维函数 float y=pow(x,4)-5*pow(x,3)+4*pow(x,2)-6*x+60; return(y); void fin di ng(float a3,float f3) float t=tt,a1,f1,ia; int i; a0=0;初始区间的下界值 f0=fu nctio n(a0); for(i=0;i+) a1=a0+t;f1=fu nctio n(a1); if(f1=e) t=-t;a0=a1;f0=f1; else if(ia=1) return; t=t/2;ia=1; for(i=0
7、;i+) a2=a1+t;f2=function(a2); if(f2f1) break; t=2*t; a0=a1;f0=f1; a1=a2;f1=f2; if(a0a2) a1=a0;f1=f0; a0=a2;f0=f2; a2=a1;f2=f1; return; float gold(float *ff) float a13,f13,a4,f4; float aa; int i; finding(a1,f1); a0=a10;f0=f10; a3=a12;f3=f12; a1=a0+0.382*(a3-a0); a2=a0+0.618*(a3-a0); f1=function(a1);
8、f2=function(a2); for(i=0;i+) if(f1=f2) a0=a1;f0=f1; a1=a2;f1=f2; a2=a0+0.618*(a3-a0); f2=function(a2); else a3=a2;f3=f2; a2=a1;f2=f1; a1=a0+0.382*(a3-a0); f1=function(a1); if(a3-a0)o,取仪,耐MOI , d尸 程序如下: #in clude #in clude #in clude #define e 0.00001 #defi ne tt 0.01 float fun cti on( float x) 求解的一维函
9、数 float y=(x+1)*pow(x-2),2); return(y); void fin di ng(float a3,float f3) float t=tt,a1,f1,ia; int i; a0=0;/ 初始区间的下界值 f0=function(a0); for(i=0;i+) a1=a0+t;f1=function(a1); if(f1=e) t=-t;a0=a1;f0=f1; else if(ia=1) return; t=t/2;ia=1; for(i=0;i+) a2=a1+t;f2=function(a2); if(f2f1) break; t=2*t; a0=a1;f
10、0=f1; a1=a2;f1=f2; if(a0a2) a1=a0;f1=f0; a0=a2;f0=f2; a2=a1;f2=f1; return; float gold(float *ff) float a13,f13,a4,f4; float aa; int i; finding(a1,f1); a0=a10;f0=f10; a3=a12;f3=f12; a1=a0+0.382*(a3-a0); a2=a0+0.618*(a3-a0); f1=function(a1); f2=function(a2); for(i=0;i+) if(f1=f2) a0=a1;f0=f1; a1=a2;f1
11、=f2; a2=a0+0.618*(a3-a0); f2=function(a2); else a3=a2;f3=f2; a2=a1;f2=f1; a1=a0+0.382*(a3-a0); f1=function(a1); if(a3-a0)=0) else return 0; void bou() a0=-5,b0=6; a1=-5,b1=8; double r() double r1,r2,r3,rr; r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm; if(rm=r3)rm=rm-r3; if(rm=r2)rm=rm-r2; if(rm=r1
12、)rm=rm-r1; rr=rm/r1; return rr; void produce(double An,double Bn) int jj;double S; s1: for(i=0;in;i+) S=r(); XXi=Ai+S*(Bi-Ai); if(cons(XX)=0) goto s1; for(i=0;in;i+) X0i=XXi; for(j=1;jk;j+) for(i=0;in;i+) S=r(); Xji=Ai+S*(Bi-Ai); for(j=1;jk;j+) for(i=0;in;i+) X0i=0; for(jj=1;jjj+1;jj+) X0i+=Xjji; X0
13、i=(1/j)*(X0i); if(cons(X0)=0) goto s1; for(i=0;in;i+) XXi=Xji; while(cons(XX)=0) for(i=0;in;i+) Xji=X0i+0.5*(Xji-X0i); XXi=Xji; main() double EE,Xcn,Xhn,Xgn,Xln,Xrn,Xsn,w; int l,lp,lp1; bou(); s111:produce(a,b); s222:for(j=0;jk;j+) for(i=0;in;i+) XXi=Xji; FFj=F(XX); for(l=0;lk-1;l+) for(lp=0;lpk-1;l
14、p+) lp1=lp+1; if(FFlpFFlp1) w=FFlp;FFlp=FFlp1;FFlp1=w; for(i=0;in;i+) XXi=Xlpi;Xlpi=Xlp1i;Xlp1i=XXi; for(i=0;in;i+) Xhi=X0i;Xgi=Xli;Xli=Xk-1i; for(i=0;in;i+) Xsi=0; for(j=0;jk;j+) Xsi+=Xji; Xsi=1/(k+0.0)*Xsi; EE=0; for(j=0;jk;j+) EE+=pow(FFj-F(Xs),2); EE=pow(1/(k+0.0)*EE),0.5); if(EE=E1) goto s333;
15、for(i=0;in;i+) Xci=0; for(j=1;jk;j+) Xci+=Xji; Xci=1/(k-1.0)*Xci; if(cons(Xc)=1) af=1.3; ss:for(i=0;i=F(Xh) if(af=ep) for(i=0;in;i+) Xhi=Xgi; af=1.3;goto ss; else af=1/2.0*af;goto ss; else for(i=0;in;i+) X0i=Xri; goto s222; else af=1/2.0*af;goto ss; else for(i=0;i n ;i+) if(XIiXci) ai=XIi;bi=Xci; el
16、se ai=Xci;bi=XIi; goto s111; s333:pri ntf(F(Xmi n)=%fn,F(XI); for(i=0;i n;i+) prin tf(n The X%d is %f.,i,XIi); 运行结果如下: E * C:Ud mi m str-a t)orDeskt o20100621 if(rm=r2)rm=rm-r2; if(rm=r1)rm=rm-r1; rr=rm/r1; return rr; void produce(double An,double Bn) int jj;double S; s1: for(i=0;in;i+) S=r(); XXi=A
17、i+S*(Bi-Ai); if(cons(XX)=0) goto s1; for(i=0;in;i+) X0i=XXi; for(j=1;jk;j+) for(i=0;in;i+) S=r(); Xji=Ai+S*(Bi-Ai); for(j=1;jk;j+) for(i=0;in;i+) X0i=0; for(jj=1;jjj+1;jj+) X0i+=Xjji; X0i=(1/j)*(X0i); if(cons(X0)=0) goto s1; for(i=0;in;i+) XXi=Xji; while(cons(XX)=0) for(i=0;in;i+) Xji=X0i+0.5*(Xji-X
18、0i); XXi=Xji; main() double EE,Xcn,Xhn,Xgn,Xln,Xrn,Xsn,w; int l,lp,lp1; bou(); s111:produce(a,b); s222:for(j=0;jk;j+) for(i=0;in;i+) XXi=Xji; FFj=F(XX); for(l=0;lk-1;l+) for(lp=0;lpk-1;lp+) lp1=lp+1; if(FFlpFFlp1) w=FFlp;FFlp=FFlp1;FFlp1=w; for(i=0;in;i+) XXi=Xlpi;Xlpi=Xlp1i;Xlp1i=XXi; for(i=0;in;i+
19、) Xhi=X0i;Xgi=Xli;Xli=Xk-1i; for(i=0;in;i+) Xsi=0; for(j=0;jk;j+) Xsi+=Xji; Xsi=1/(k+0.0)*Xsi; EE=0; for(j=0;jk;j+) EE+=pow(FFj-F(Xs),2); EE=pow(1/(k+0.0)*EE),0.5); if(EE=E1) goto s333; for(i=0;in;i+) Xci=0; for(j=1;jk;j+) Xci+=Xji; Xci=1/(k-1.0)*Xci; if(cons(Xc)=1) af=1.3; ss:for(i=0;i=F(Xh) if(af=
20、ep) for(i=0;in;i+) Xhi=Xgi; af=1.3;goto ss; else af=1/2.0*af;goto ss; else for(i=0;in;i+) X0i=Xri; goto s222; else af=1/2.0*af;goto ss; else for(i=0;in;i+) if(XliXci) ai=Xli;bi=Xci; else ai=Xci;bi=Xli; goto s111; s333:printf(F(Xmin)=%fn,F(Xl); for(i=0;iebugCpp6.exe | u | 回 S3 |F=0.000?5? ini F(JT)二
21、X +x2 斗 W -1。片41 +60 M gl(J3=jq0 筋03=耳mo 殆岔=五-耳工0 取:厂厂丁 丁】: 程序如下: #in elude math.h #i nclude stdio.h #in elude stdlib.h #define E1 0.001 #defi ne ep 0.00001 #defi ne n 2 #defi ne k 4 double af; int i,j; double X0n ,XX n ,Xk n,FFk; double an,bn; double rm=2657863.0; double F(double Cn) double F; F=po
22、w(C0,2)+pow(C1,2)-C0*C1-10*C0-4*C1+60; return F; int cons(double Dn) if(D0=0) else return 0; void bou() a0=0,b0=6; a1=0,b1=8; double r() double r1,r2,r3,rr; r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm; if(rm=r3)rm=rm-r3; if(rm=r2)rm=rm-r2; if(rm=r1)rm=rm-r1; rr=rm/r1; return rr; void produce(doub
23、le An,double Bn) int jj;double S; s1: for(i=0;in;i+) S=r(); XXi=Ai+S*(Bi-Ai); if(cons(XX)=0) goto s1; for(i=0;in;i+) X0i=XXi; for(j=1;jk;j+) for(i=0;in;i+) S=r(); Xji=Ai+S*(Bi-Ai); for(j=1;jk;j+) for(i=0;in;i+) X0i=0; for(jj=1;jjj+1;jj+) X0i+=Xjji; X0i=(1/j)*(X0i); if(cons(X0)=0) goto s1; for(i=0;in
24、;i+) XXi=Xji; while(cons(XX)=0) for(i=0;in;i+) Xji=X0i+0.5*(Xji-X0i); XXi=Xji; main() double EE,Xcn,Xhn,Xgn,Xln,Xrn,Xsn,w; int l,lp,lp1; bou(); s111:produce(a,b); s222:for(j=0;jk;j+) for(i=0;in;i+) XXi=Xji; FFj=F(XX); for(l=0;lk-1;l+) for(lp=0;lpk-1;lp+) lp1=lp+1; if(FFlpFFlp1) w=FFlp;FFlp=FFlp1;FFlp1=w; for(i=0;in;i+) XXi=Xlpi;Xlpi=Xlp1i;Xlp1i=XXi; for(i=0;in;i+) Xhi=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《小学教师招聘》练习题包学生专用附答案详解
- 教师招聘之《小学教师招聘》综合提升试卷带答案详解(巩固)
- 教师招聘之《幼儿教师招聘》强化训练模考卷及答案详解(夺冠系列)
- 数据分析基础操作及报告撰写工具
- 2025年教师招聘之《幼儿教师招聘》能力检测试卷含答案详解【轻巧夺冠】
- 教师招聘之《幼儿教师招聘》考试模拟试卷(含答案详解)
- 文艺部部长工作总结
- 新质生产力的关键生产要素解析
- 2025内蒙古呼伦贝尔农垦集团有限公司社会招聘笔试模拟及答案详解1套
- 青少年探秘新质生产力
- 2023北京市高级中等学校招生考试英语答题卡A4版word版可以编辑
- 《草帽是父亲的徽饰》阅读练习
- 输变电工程钢管杆吊装组立工程施工方案和措施方案
- 工贸企业主要负责人和安全管理人员安全培训演示文稿
- 狮子王中英文台词对照(超全的完整版)(英语口语练习必备)
- HP碗式中速磨煤机检修教程
- 办公室一族常见病预防
- 精神科诊疗常规及技术操作规范-
- 人教版小学六年级上册语文单元测试卷全册
- DB37T 3842-2019 铁矿绿色矿山建设规范
- 《农业园区规划与管理》课件第一部分 03
评论
0/150
提交评论