- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
合肥工业大学
《机械优化设计》课程实践
研究报告
班 级:
学 号:
姓 名:
授课教师:
日 期:2016年月7日
目录
作业要求
TOC \o 1-5 \h \z 一、入二0.618的证明、一维搜索程序作业 3
1、 0.618法的基本思想 3
2、 关于0.618法中参数入二0.618的证明 4
3、 一维搜索程序作业 5
二 单位矩阵歸作业 8
HYPERLINK \l bookmark10 \o Current Document 三、 注释最佳再现给定运动规律连杆机构优化设计 10
HYPERLINK \l bookmark12 \o Current Document 问题模型子程序 10
HYPERLINK \l bookmark14 \o Current Document 四、 连杆机构问题+其他工程优化问题 12
1、 连杆机构问题 12
2、 其他工程问题: 15
五、 课程实践心得体会 18
作业要求
1、\ =0.618的证明、一维搜索程序作业; 2、单位矩阵程序作业;
3、 注释最佳再现给定运动规律连杆机构优化设计问题模型子程序;
4、 连杆机构问题+自行选择小型机械设计问题或其他工程优化问 题;
分析优化对象,根据设计问题的要求,选择设计变量,确立 约束条件,建立目标函数,建立优化设计的数学模型并编制 问题程序;
选择适当的优化方法,简述方法原理,进行优化计算;
进行结果分析,并加以说明。
5、 写出课程实践心得体会,附列程序文本。
A = 0.618的证明.一维搜索程序作业
1. 0.618法的基本思想
0.618法”,又称为黄金分割法,是常用的一种一维搜索试探方法,适用于 [⑦切区间上的任何单调函数求极小值问题o0.618法是建立在区间消去法原理基 础上的试探方法,即在搜索区间[⑦切内适当插入两点坷、勺,且a. /?,,如下图 所示。通过比较函数值/(q)与/(勺)的大小,应用函数的单调性,可得出以下两 种情况:
a)/(?)Ml)a ax b
a)
/(?)
Ml)
a ax b、 b
b)
若/(q)v/3),则取[G0]为缩短后的区间。
若/(?)/?),则取[坷上]为缩短后的区间。
然后在保留下来的区间上进行同样的处置,如此迭代下去,使搜索区间无限 缩小,从而得到极小点的数值近似解。
2.关于0.618法中参m = 0.618的证明
0. 618法要求插入点?,a2的位置相对于区间[a.b]两端点具有对称性,即
6^1 — b — A(b — ci)= Q + Q(b-G)
假设匕创=[0川,根据以上公式,得出分割后的区间如下图所示:
进行再次分割时,0. 618法要求在保留下来的区间内再插入一点,所形成的区间 新三段与原来区间的三段具有相同的比例分布。
假设保留下来的区间为[⑦冬],区间长度为2。为了保持相同的比例分布,
根据以上公式计算,新插入点冬应在A(l-A)位置上,$在原区间的1-2位置相 当于在保留区间的才位置。所谓0. 618法,就是使整段长与较长段的长度比值
等于较长段与较短段长度的比值,即:
1 _ A
A 1 - A
通过计算解得2 = 0.618。
若保留下来的区间为[$,甸,根据插入点的对称性,也能推得同样的2值。
3. —维搜索程序作业
0. 618法的搜索过程如下:
1) 给出初始搜索区间及收敛精度,将入代入0. 618o
2) 按坐标点计算公式计算?和笑,并计算其对应的函数值。
3) 根据区间消去法原理缩短搜索区间。
4) 检查区间是否缩短到足够小和函数值是否收敛到足够近,如果条件不满 足,则返回第二步。
5) 如果条件满足,取最后两实验点的平均值作为极小点的数值近似解。
程序框图如下:
a?—a+久(Aa) 儿
a?—a+久(Aa) 儿-/(Q2)
勺一如 y2-\
Q\^b-A(b-a) 1T(华 l)
根据以上思路,下面借助C++,运用0.618法求解正弦函数的极小值。初始区间
为[Qr2rc_
程序代码如下:
// 0. 618. cpp :定义控制台应用程序的入口点。
#include stdafx.h
#i ncIudei ostream
#includeiomanip
#incIude cmath
#define PI 3.1415926
us i ng namespace std;
f I oat ma i n ()
float a 二 0,b 二 2*PI, t; //t 为计算精度
float a1, a2, y1, y2, A, min; //A为极小点,min为所对应的极小值 float r=0. 618;
int p二0; //p为迭代次数
cout?请输入计算精度,如0. 1:;
c i nt;
a1=b~r*
文档评论(0)