《优化设计》实验指导书-C语言v40

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机械优化设计实验指导书优化设计教研组编2016年3月18日目录一、实验目的------------------------------------------------------------------1二、实验内容及进度安排---------------------------------------------1三、实验设备----------------------------------------------------------------1四、实验要求-----------------------------------------------------------------1五、实验注意事项----------------------------------------------------------1六、实验操作步骤及方法---------------------------------------------1七.编程指导------------------------------------------------------------------21.进退法---------------------------------------------------------------------------22.黄金分割法--------------------------------------------------------------------43.坐标轮换法--------------------------------------------------------------------64.鲍威尔法-----------------------------------------------------------------------7八.实验报告------------------------------------------------------------------81.实验报告1----------------------------------------------------------------92.实验报告2----------------------------------------------------------------103.实验报告3----------------------------------------------------------------114.实验报告4----------------------------------------------------------------121一、实验目的通过实验教学加深学生对优化设计方法的理解,培养学生程序调试和出错处理的能力,提高学生应用优化设计方法和程序设计的能力。本实验课程的基本要求:1)熟悉VisualC++、MATLAB的使用,掌握设计程序和调试程序的基本方法。2)掌握一些重要优化算法,并具有较强的编程能力和解决实际优化问题的能力。3)具有设计简单综合应用型程序的能力。二、实验内容及进度安排1、进退法2学时2、黄金分割法3学时3、坐标轮换法2学时4、鲍威尔法3学时三、实验设备微型计算机60台以上,并已安装VisualC++,MATLAB。四、实验要求1.设计程序总体编程结构,根据程序N-S图,设计编写出程序;2.完成程序调试,并进行实验结果分析;3.完成实验报告。五、实验注意事项1.树立严肃认真、一丝不苟的工作精神,养成实验时的正确方法和良好习惯,维护国家财产不受损失;2.严格遵守实验室的规章制度,注意保持实验室内整洁;3.上机过程中注意保存程序,以免数据丢失,结束后应存储到个人移动设备并关闭计算机;4.认真做好上机前的准备工作,实验后认真完成实验报告。六、实验操作步骤及方法(一).上机前的准备工作包括以下几个方面1.复习和掌握与本次实验有关的教学内容。2.根据实验的内容,对问题进行认真的分析,搞清楚要解决的问题是什么?给定的条件是什么?要求的结果是什么?需要使用什么类型的数据(如整型、实型、双精度型、字符型等)?制定好程序总体编程结构。23.根据程序N-S图,设计、编写出程序,在纸上编写好相关功能的事件代码。(二).上机实验的过程1.启动VisualC++。2.根据程序功能和事先的准备,在窗体设计器窗口中,设计用户界面,编写事件过程,在调试运行之前,首先应将工程保存,以防调试过程出现死机,因而需从头开始。3.调试程序,如果出现编译错误,根据程序提示,分析错误原因进行修改。如果无语法错误,使用多组数据进行测试,分析其输出结果是否与预期的结果相符,如果不符,应检查程序有无写错,算法是否合理,将发现的错误并逐个修正,并作记录。4.在程序调试和测试完毕后,再次保存程序。5.按照实验步骤中的要求,对程序作必要的改动,或者增加一些功能等。例如改变目标函数,然后观察运行结果,从而进一步理解所应用的优化算法。七.编程指导1.进退法本次上机要求:完成进退法程序的编写,以教材P42:例3-1进行调试,调试成功后利用该程序完成习题3-1的区间计算。1)调试目标函数及初始条件(1)调试目标函数教材P42:例3-1二维目标函数f(X)=x12+x22+8x1-12x2+52(2)初始条件初始点:X(0)=[2,2]T迭代搜索方向:S(0)=[0.707,0.707]T初始步长:T0=1(3)习题3-12)程序模块组成(1)目标函数函数(2)进退法函数(3)主函数3)进退法N-S流程图解读3(1)程序结构由N-S流程图可看出,程序主结构为一选择结构,两选择分支均内嵌一个直到型条件循环:if(F2F1)do{…}while(F2F1);else{…}while(F1F2);(2)数组的定义与运算#defineN2/*N为维数*/doubleX[N];/*数组的定义*/doubleX0[N];/*数组的定义*/X0[N]={2,2};/*数组的初值*/for(i=0;iN;i++)X[i]=X0[i]+a*S[i];/*数组运算*/42.黄金分割法1)调试目标函数及初始条件(1)调试目标函数教材P46:例3-1二维目标函数f(X)=x12+x22+8x1-12x2+52(2)初始条件初始点:X(0)=[2,2]T迭代搜索方向:S(0)=[0.707,0.707]T初始步长:T0=1迭代计算精度:epslf=0.001,epslx=0.0012)程序组成(1)目标函数函数(2)进退法函数(3)黄金分割法函数(4)主函数3)黄金分割法N-S流程图解读由N-S流程图可看出,循环体内依次为顺序结构、“直到型”条件循环体、选择结构。其中条件循环体是黄金分割法的核心部分,其功用就是判定与保留两5个三点区间“A-A1-A2”和“A1-A2–B”中,具有“高—低—高”区间特征的区间。当“F1F2”时,说明“A-A1-A2”区间为“高—较高—低”型,而“A1-A2-B”为“高—低—高”。所以,应舍去[A,A1]区间,并将A1作为新区间的左端点A,A2则作为新区间的插入点A1,同时相应的将F1置换成F2,再计算另一个新的插入点A2及F2。当F1F2时,则保留“A-A1-A2”区间,新区间的右端点移至A2,A1作为新区间的插入点A2。该循环体的终止准则为|(F2-F1)/F1|εf。选择结构的两个走向为:如果|(A2-A1)/A1|εx,说明两插入点已非常接近,计算可终止;否则说明虽然在两插入点上的函数值已很接近,但两插入点之间还有一定的距离。根据单峰区间的特点,单峰区间可收缩为[A1,A2],所以应置A=A1,B=A2。4)部分程序段/*插入点的计算*/if(F1F2){A=A1;A1=A2;F1=F2;A2=A+Q*(B-A);zuobiao(X0,X2,S,A2);/*插入点的坐标计算*/F2=function(X2);/*插入点函数值的计算*/}else{B=A2;A2=A1;F2=F1;A1=B-Q*(B-A);zuobiao(X0,X1,S,A1);F1=function(X1);}63.坐标轮换法1)调试目标函数及初始条件(1)调试目标函数二维目标函数:f(X)=10(x1-x2-5)2+(x1-x2)2(2)初始条件初始点:X(0)=[0,0]T初始步长:T0=0.01迭代计算精度:epslf=0.0001,epslx=0.00012)程序组成(1)目标函数函数(2)进退法函数(3)黄金分割法函数(4)坐标轮换法函数(4)主函数3)基于最优步长法的坐标轮换法的N-S传入X(0),ε,ni=1tonS=0,si=1一维优化:minf(X(0)+αS)得α*,X*,f(X*)X(0)=X*直到|α*|≤ε输出α*,X*,f(X*)基于最优步长法的坐标轮换法的N-S图主结构是一个直到型循环,以步长足够小作为终止准则。循环体内嵌了一个计数循环。计数循环体完成坐标轮换法的核心任务——取坐标轴方向作为搜索方向,调用一维优化方法(进退法、黄金分割法),实现一维优化搜索,每循环做n次一维优化搜索。74.鲍威尔法1)调试目标函数及初始条件(1)调试目标函数二维目标函数:f(X)=10(x1-x2-5)2+(x1-x2)2(2)初始条件初始点:X(0)=[0,0]T初始步长:T0=0.01迭代计算精度:epslf=0.0001,epslx=0.00012)程序组成(1)目标函数函数(2)进退法函数(3)黄金分割法函数(4)鲍威尔函数(4)主函数3)鲍威尔N-S图解读8流程图中的主要代号的意义如下:X0()——原始初始点;X00()—每一轮开始时的初始点;X000()—每一次一维优化时的初始点;X()——一维优化的最优点,结束时为多维优化的最优点;S()——每次一维优化的搜索方向,并临时存放新构造的搜索方向;SS()——二维数组(n×n),每行存放1个搜索方向,初始为n阶单位阵;Fxi()——一维数组Fxi中的第i个元素,存放本轮的第i次一维优化的最优值;k——搜索轮次的累计;kS——替换方向的次数累计;Dm——△m;鲍威尔法算法的N-S图主结构是一个直到型循环,其判断条件就是鲍威尔法的终止准则。循环体内嵌了一个计数循环和选择结构。计数循环体所完成的任务,是从方向组SS中顺序取出行元素作为搜索方向,调用一维优化方法,实现一维优化搜索。选择结构体以鲍威尔法的替换方向准则为判断条件并作相应处理。4)部分程序段/*产生SS[N][N]单位矩阵*/for(i=0;iN;i++)for(j=0;jN;j++)if(i==j)SS[i][j]=1;/*方向向量组SS[N][N]的更换*/for(i=m-1;m-1=i&&i=N-1;i++)for(j=0;jN;j++)SS[i][j]=SS[i+1][j];for(j=0;jN;j++)SS[N-1][j]=S[j];八.实验报告(请把实验报告单裁剪下来或复印一份,并填写完整上交)9实验报告课程名称:班级:实验日期:姓名:学号:指导教师:实验名称:进退法实验序号:1实验成绩:(1)实验目的:略(2)实验内容:1.调试用例题题目及正确结果:(1)调试题目为教材P53习题3.1X0=0时:A=0.3B=1.5X0=1.8时:A=-1.5B=-0.3(2)调试题目为教材P42例3.1A=1B=72.调试过程:(详细记录程序在调试过程中出现的问题及解决方法)。3.调试结果:10实验报告课程名称:班级:实验日期:姓名:学号:指导教师:实验名称:黄金分割法实验序号:2实验成绩:(1)实验目的:略(2)实验内容:1.调试用例题题目及正确结果:(1)调试题目为教材P46例3.2最优步长295.41A(0)1[5.036565.03656]TXXSX00267.2)()()(111XXfFFf2.调试

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功