欢迎来到天天文库
浏览记录
ID:56523356
大小:1.50 MB
页数:26页
时间:2020-06-27
《《机械优化设计》大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高等流体力学班级:机设15学硕班学号:2015200813姓名:湘楠授课老师:毕新胜日期:2016年7月1日一、研究报告容:1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。4、写出课程实践心得体会,附列程序文本。5、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,
2、特探索性设立一开放式考核项目,占总成绩的5%。试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。(考评将重点关注您的独创性、简洁性与可验证性)。二、研究报告要求1、报告命名规则:学号--《机械优化设计》课程实践报告.doc2、报告提交邮址:weirongwhfut.edu.(收到回复,可视为提交成功)。追求:问题的工程性,格式的完美性,报告的完整性。不追求:问题的复杂性,方法的惟一性。评判准则:独一是好,先交为好;切勿拷贝。目录:λ=0.618的证明、一维搜索程序作业①关于的证明……………………………………………………4②一维搜索的作业采用m
3、atlab进行编程……………………………………………5采用C语言进行编程………………………………………………7单位矩阵程序作业①采用matlab的编程…………………………………………………9②采用c语言进行编程…………………………………………………9机械优化工程实例①连杆机构…………………………………………………………………11②自选机构…………………………………………………………………16课程实践心得……………………………………………………………………20附列程序文本……………………………………………………………………21进步,努力,建议……………………………………
4、…………………………25一、λ=0.618的证明、一维搜索程序作业①关于的证明黄金分割法要求插入点,的位置相对于区间两端具有对称性,即其中为待定常数。此外,黄金分割法还要求在保留下来的区间再插入一点所形成的区间新三段,与原来的区间三段具有相同的比例分布。黄金分割法还要求在保留下来的区间再插一点所形成的区间新三段,与原来的区间三段有相同的比例分布。bα1α211-λλ图一设原区间的长度为1,如图一所示,保留下来的区间长度为,区间缩短率为。为了保持相同的分别比例。插入新点应在位置上,在原区间的1位置应相当于在保留区间的位置。故有:aα22α3α1λλ(1-λ)λ2图二解得
5、编写0.618的程序,并计算下列问题程序框图(1)采用MATLAB进行编程%%%fun.m:黄金分割法求极值点%输入数据%a–搜索区间下限%b–搜索区间上限%e–精度%输出数据:%x–极小值点%其他常量:%c1,c2,c3–区间%r–黄金分割比例0.618%%%定义函数functionx=fun(a,b,e)r=0.618;c1=b-r*(b-a);c2=a+r*(b-a);y1=f(c1);y2=f(c2);while(abs((b-a)/b)>e)&&(abs((y2-y1)/y2)>e)ify1>=y2a=c1;c1=c2;y1=y2;c2=a+r*(b-a);
6、y2=f(c2);elseb=c2;c2=c1;y2=y1;c1=b-r*(b-a);y1=f(c1);endendx=0.5*(a+b);end对f函数的确立10functiony=f(x)y=(x-2)^2+3;end11functiony=f(x)y=cosxend如果要计算y=(x-2)^2+3;的黄金分割法,则需要将图所示的f脚本中的函数写成如①所示如果要计算y=cosx;黄金分割法,则需要将图所示的f脚本中的函数写成如②所示fun函数表示对matlab的主程序语言。函数NO.2运算结果:函数NO.1运算结果:(2)采用C语言进行编程#include7、io.h>#defineK0.618doublef(double);/*****函数值计算函数声明*****/voidmain(void){doublea,b,size;doublea1,a2;intI;printf(“请输入区间两端点(端点值应大于0):”);scanf(“%lf,%lf”,&a,&b);/*****输入端点值*****/printf(“请输入精度:”);scanf(“%lf”,&size);/*****输入精度*****/printf(“区间为(%lf,%lf),精度为%lf”,a,b,size);printf(“序号ta1
7、io.h>#defineK0.618doublef(double);/*****函数值计算函数声明*****/voidmain(void){doublea,b,size;doublea1,a2;intI;printf(“请输入区间两端点(端点值应大于0):”);scanf(“%lf,%lf”,&a,&b);/*****输入端点值*****/printf(“请输入精度:”);scanf(“%lf”,&size);/*****输入精度*****/printf(“区间为(%lf,%lf),精度为%lf”,a,b,size);printf(“序号ta1
此文档下载收益归作者所有