《机械优化设计》实验指导书

上传人:鲁** 文档编号:472362755 上传时间:2022-08-14 格式:DOC 页数:14 大小:193.51KB
返回 下载 相关 举报
《机械优化设计》实验指导书_第1页
第1页 / 共14页
《机械优化设计》实验指导书_第2页
第2页 / 共14页
《机械优化设计》实验指导书_第3页
第3页 / 共14页
《机械优化设计》实验指导书_第4页
第4页 / 共14页
《机械优化设计》实验指导书_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《机械优化设计》实验指导书》由会员分享,可在线阅读,更多相关《《机械优化设计》实验指导书(14页珍藏版)》请在金锄头文库上搜索。

1、机械优化设计实验指导书王彩红 编写院部:机电工程学院专业:机械设计专业华北科技学院二0一二年十二月上机实验说明【实验环境】操作系统: Microsoft Windows XP应用软件:Visual C+或TC。【实验要求】1、每次实验前,熟悉实验目的、实验内容及相关的基本理论知识。2、无特殊要求,原则上实验为1人1组,必须独立完成。3、实验所用机器最好固定,以便更好地实现实验之间的延续性和相关性,并便于检查。4、按要求认真做好实验过程及结果记录。【实验项目及学时分配】实验共计4学时,实验项目及学时分配如下:序号实验项目实验类型学时实 验 要 求1一维搜索方法验证21、明确进退法、黄金分割法的基

2、本原理及程序框图2、编制进退法、黄金分割法程序3、用考核题对所编程序进行考核2无约束优化方法验证21、明确鲍威尔法基本原理及程序框图2、编制鲍威尔法程序3、用考核题对所编程序进行考核【实验报告和考核】1、实验报告必需采用统一的实验报告纸,撰写符合一定的规范,详见实验报告撰写格式及规范。(一)预习准备部分1. 预习每次所做的实验。2. 按照程序框图试写出汇编程序。(二)实验过程部分1. 写出经过上机调试后正确的程序,并说明程序的功能、结构。2. 记录执行程序后的数据结果。3. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分

3、析。(三)实验报告内容每次上机实验结束后,学生要作一份完整的实验报告,实验报告内容应包括:1、优化方法的基本原理简述及程序框图绘制。2、编制优化方法程序。3、用考核题对所编程序进行考核。 ( 四)实验考核办法 本课程实验成绩依据以下几个方面进行考核 1、实验报告 2、考核所编制的程序 3、实验纪律、出勤等实验(一)【实验题目】一维搜索方法【实验目的】1熟悉一维搜索的方法黄金分割法,掌握其基本原理和迭代过程;2利用计算语言(C语言)编制优化迭代程序,并用给定实例进行迭代验证。【实验内容】1、搜索区间的确定与区间消去法(进退法)原理(1) 方法概要 有了目标函数,确定了搜索方向,假设函数f(a)具

4、有单谷性,确定极小点 a* 所在的区间a b: 在搜索方向上,选定初始点 a1,初始点步长 h0=0.01(经验,可调整),前进一步得a2点。 求出a1、a2对应的函数值y1、y2,比较对应点函数值,确定前进或后退。 (2)程序框图:2、一维搜索黄金分割法(0.618法)(1)基本思想前提:已通过进退法确定了符合函数值高低高规律的搜索区间a,b即,函数的极小点必在a,b内。所以要调用搜索区间的进退法(2)程序框图初始区间a,b,由进退法确定。 收敛精度(=10-4 10-5), 缩短率=0.618 计算a1 、 a2, f (a1)、 f (a2),根据区间消去法原理缩短区间,进行区间名称的代

5、换,并保留区间中计算的一个新试验点及函数值。检查区间是否短到足够小和函数值收敛到足够近。若条件不满足,则返回到。 若条件满足,则取最后两个试验点的平均值作为极小点数值的近似解。3、应用黄金分割算法, 计算:(a00,h0=0.1, e=0.001)(1) (2) (3) (4) (5) 求函数自点出发,沿方向的最优步长因子a 和在d方向的极小点X*和极小值f(X*)。(6)函数F(x)=x2+2x,在搜索区间-3x5时,求解其极小点X*。【思考题】说明两种常用的一维搜索方法,并简要说明其算法的基本思想。【实验报告要求】1预习准备部分:给出实验目的、实验内容,并绘制程序框图;2实验过程部分:编写

6、上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。3实验总结部分:对本次实验进行归纳总结,给出求解结果。要求给出6重迭代中a、x1、x2、b、y1和y2的值,并将结果与手工计算结果进行比较。4.回答思考题。实验(二)【实验题目】无约束优化方法【实验目的】1加深对所学多维无约束优化方法基本原理的理解,增强编制和调试程序的能力,懂得如何在多维无约束优化方法中调用一维搜索方法程序。2以鲍威尔法为例,利用计算语言(C/C+语言)编制优化迭代程序,并用给定实例进行迭代验证。【实验内容】1 掌握鲍威尔法的基本原

7、理和迭代步骤;2对于函数,应用鲍威尔法,求解极小值、极小值点及迭代次数。 计算: (1) 初始点:或(2) 初始点:(3) 初始点:(4) 初始点:(5) 初始点:【思考题】说明三种常用的无约束优化方法,并简要说明其算法的基本思想及各自的优缺点。【实验报告要求】1预习准备部分:给出实验目的、实验内容,并绘制程序框图;2实验过程部分:编写上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。3实验总结部分:对本次实验进行归纳总结,给出求解结果,并将结果与手工计算结果进行比较。4.回答思考题。参考程序:实验

8、一一维搜索方法本实验求函数 f(x)=(x-3)2 的搜索区间a,b。并用黄金分割法和插值法分别求最优解#include #include /* 函数 f(x)=(x-3)2 */double f(double x) return (x-3)*(x-3);/* 求搜索区间a,b的函数, x0-初始点; h0-初始步长 */void find_ab(double x0,double h0,double *a,double *b)double h,x1,y1,x2,y2,x3,y3;h=h0;x1=x0; y1=f(x1);x2=x1+h; y2=f(x2);if (y2=y1) h=-h0; x

9、3=x1; y3=y1; x1=x2; y1=y2; x2=x3; y2=y3;for (;) h*=2.0; x3=x2+h; y3=f(x3); if (y20) *a=x1; *b=x3;else *a=x3; *b=x1;/* 黄金分割法 a,b-搜索区间a,b; e-精度 x,y-最优解X*,F*/void search_gold(double a,double b,double e, double *x,double *y)double x1,x2,y1,y2;x1=a+0.382*(b-a); y1=f(x1);x2=a+0.618*(b-a); y2=f(x2);do if (

10、y1e);*x=0.5*(a+b); *y=f(*x);/*实验二无约束优化方法-鲍威尔方法 本实验用鲍威尔方法求函数 f(x)=(x1-5)2+(x2-6)2 的最优解#include #include #include const MAXN = 10;double xkkMAXN,xkMAXN,skMAXN;int N;double F(double *x) return 4*pow(x0-5,2.0)+pow(x1-6,2.0);double f(double x)for (int i=0; iN; i+) xkki=xki+x*ski;return F(xkk);/*无约束坐标轮换法x

11、0-初始点e1-一维搜索精度e2-求解精度*/double nc_trans(double *x0,double e1,double e2)int i,j,k=1;double a,b,ax,ay,d;for (;) for (j=0; jN; j+) xkj=x0j; for (i=0; iN; i+) for (j=0; jN; j+) if (j=i) skj=1; else skj=0; find_ab(0,1,&a,&b); search_gold(a,b,e2,&ax,&ay); for (j=0; jN; j+) xkj=xkkj; d=0; for (j=0; jN; j+)

12、d+=(x0j-xkkj)*(x0j-xkkj); d=sqrt(d); printf(k=%d;,k); for (j=0; jN; j+) printf(,x%d=%lf;,j+1,xkkj); printf(d=%lfn,d); if (d=e1) break; for (j=0; jN; j+) x0j=xkkj; k+;for (j=0; jN; j+) x0j=xkkj;return F(xkk);/*鲍威尔法x0-初始点e1-一维搜索精度e2-求解精度*/double nc_powell(double *x0,double e1,double e2)int i,j,k=1,m;double a,b,ax,ay,d;double ssMAXNMAXN,s1MAXN, ffMAXN,xMAXN,xnMAXN, xn1MAXN,f0,f1,f2,f3;for (i=0; iN; i+) for (j=0; jN; j+) if (j=i) ssij=1; else ssij=0;for (;) for (j=0; jN; j+) xkj=x0j; for (i=0; i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 人力资源管理师

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号