资源描述:
《2011-陈飞-《机械优化设计》课程实践报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化11-5班学号:20110538姓名:陈飞授课老师:王卫荣日期:2014年4月18日研究报告目录机械优化设计研究报告概述………………………………………………31、λ=0.618的证明、一维搜索程序……………………………………31.1证明0.618法………………………………………………………………31.2用0.618法求函数最小值………………………………………………41.2.1求f(x)=cosx最小值………………………………
2、………………41.2.2求f(x)=(x-2)2+3最小值…………………………………………62、单位矩阵程序………………………………………………………………83、连杆机构问题………………………………………………………………93.1问题描述………………………………………………………………………93.2编写程序………………………………………………………………………103.3利用Fortran编译器生成可执行程序………………………………113.4输出结果及分析………………………………………………………
3、……134、工程问题实例………………………………………………………………164.1工程问题描述…………………………………………………………………164.2数学模型的建立……………………………………………………………164.3程序编制………………………………………………………………………184.4优化结果和最终设计参数………………………………………………195、课程实践心得体会…………………………………………………………21机械优化设计研究报告概述优化设计是20世纪60年代初发展起来的一门新学科,
4、它是将最优化原理和计算技术应用与设计领域,为工程设计提供一种重要的科学设计方法。利用这种新的设计方法,人们就可以从众多的设计方案中找出最佳设计方案,从而大大提高设计质量和效率。因此优化设计是现代设计理论和方法的一个重要领域,它已广泛应用于各个工业部门。优化方法的应用领域很多,发展也很迅速。近几年来发展起来的计算机辅助设计(CAD),在引入优化设计方法后,使得在设计过程中既能够不断选择设计参数并评选出最优设计方案,又可以加快设计速度,缩短设计周期。在科学技术发展要求机械产品更新周期日益缩短的今天,
5、把优化设计方法与计算机辅助设计结合起来,使设计过程完全自动化,已成为设计方法的一个重要发展趋势。通过本学期的课程学习,我们已经掌握了一些常用的优化方法的原理和计算过程的理论知识。本次实践是巩固学到的理论知识的绝佳方法,通过实践,学生可以将理论知识运用到具体问题当中,培养分析问题和解决问题的能力。1、λ=0.618的证明、一维搜索程序1.1、证明0.618法黄金分割法要求插入点,的位置相对于区间两端具有对称性,即其中,为待定常数。除对称要求外,黄金分割法还要求在保留下来的区间内再插入一点所形成的区
6、间新三段,与原来的区间三段具有相同的比例分布。bα1α211-λλ图一设原区间的长度为1,如图一所示,保留下来的区间长度为,区间缩短率为。为了保持相同的分别比例。插入新点应在位置上,在原区间的位置应相当于在保留区间的位置。故有:取方程正数解,得aα22α3α1λλ(1-λ)λ2图二若保留下来的区间为根据插入点的对称性,也能推得同样的值。所谓“黄金分割法”是指将一线段分成两段的方法,使整段长与较长段的长度比值等于较长段与较短段长度的比值,即同样算的=0.618。可见黄金分割法能使相邻两次搜索区间都
7、具有相同的缩短率0.618,所以黄金分割法又被称作0.618法。1.2、用0.618法求函数最小值1.2.1、求f(x)=cosx最小值根据求解思想,利用C语言编制0.618法程序如下:#include#includedoubleh(doublex){doublez;z=cos(x);returnz;}voidmain(void){doublea,b,c,k=0.618,e1,e2,e3,y1,y2,y3;printf("a,b,c的值");scanf("%
8、lf,%lf,%lf",&a,&b,&c);e1=b-(k*(b-a));e2=a+(k*(b-a));y1=h(e1);y2=h(e2);loop:if(y1>=y2){a=e1;e1=e2;y1=y2;e2=a+(k*(b-a));y2=h(e2);}else{b=e2;e2=e1;y2=y1;e1=b-(k*(b-a));y1=h(e1);}if((fabs((b-a)/b)>=c)&&(fabs((y2-y1)/y1)>=c))gotoloop;elsee3=0.5*(a+b);y3=h