合肥工业大学《机械优化设计》课程实践报告
2011-陈飞-《机械优化设计》课程实践报告
![2011-陈飞-《机械优化设计》课程实践报告](https://img.taocdn.com/s3/m/4d01c1de76a20029bd642d89.png)
合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化11-5班学号: 20110538 姓名:陈飞授课老师:王卫荣日期: 2014年 4月18日研究报告目录机械优化设计研究报告概述 (3)1、λ=0.618的证明、一维搜索程序 (3)1.1 证明0.618法 (3)1.2 用0.618法求函数最小值 (4)1.2.1 求f(x)=cosx最小值 (4)1.2.2 求f(x)=(x-2)2+3最小值 (6)2、单位矩阵程序 (8)3、连杆机构问题 (9)3.1 问题描述 (9)3.2 编写程序 (10)3.3利用Fortran编译器生成可执行程序 (11)3.4 输出结果及分析 (13)4、工程问题实例 (16)4.1工程问题描述 (16)4.2 数学模型的建立 (16)4.3 程序编制 (18)4.4 优化结果和最终设计参数 (19)5、课程实践心得体会 (21)机械优化设计研究报告概述优化设计是20世纪60年代初发展起来的一门新学科,它是将最优化原理和计算技术应用与设计领域,为工程设计提供一种重要的科学设计方法。
利用这种新的设计方法,人们就可以从众多的设计方案中找出最佳设计方案,从而大大提高设计质量和效率。
因此优化设计是现代设计理论和方法的一个重要领域,它已广泛应用于各个工业部门。
优化方法的应用领域很多,发展也很迅速。
近几年来发展起来的计算机辅助设计(CAD),在引入优化设计方法后,使得在设计过程中既能够不断选择设计参数并评选出最优设计方案,又可以加快设计速度,缩短设计周期。
在科学技术发展要求机械产品更新周期日益缩短的今天,把优化设计方法与计算机辅助设计结合起来,使设计过程完全自动化,已成为设计方法的一个重要发展趋势。
通过本学期的课程学习,我们已经掌握了一些常用的优化方法的原理和计算过程的理论知识。
本次实践是巩固学到的理论知识的绝佳方法,通过实践,学生可以将理论知识运用到具体问题当中,培养分析问题和解决问题的能力。
合工大机械实习报告
![合工大机械实习报告](https://img.taocdn.com/s3/m/b2579524a36925c52cc58bd63186bceb18e8ed13.png)
为了更好地将理论知识与实践相结合,提高自身的动手能力和综合素质,我在2023年的暑假期间参加了合肥工业大学组织的机械实习。
本次实习为期一个月,主要在一家知名机械制造企业进行,通过实际操作和现场学习,我对机械制造工艺、机械设计原理、生产管理等方面有了更深入的了解。
二、实习单位简介实习单位位于我国东部沿海地区,是一家集科研、生产、销售为一体的大型机械制造企业。
公司主要生产各类机械设备、零部件及自动化生产线,产品广泛应用于国内外市场。
实习期间,我主要在公司的机械加工车间、装配车间和研发部门进行学习和实践。
三、实习内容1. 机械加工工艺学习在机械加工车间,我学习了各种机械加工工艺,如车削、铣削、刨削、磨削等。
通过实际操作,我掌握了机床的操作方法、刀具的选择和使用、加工参数的调整等技能。
同时,我还了解了各种加工设备的性能、特点和应用范围。
2. 机械设计原理学习在研发部门,我学习了机械设计原理,包括机械运动学、动力学、材料力学、机械强度学等。
通过参与项目设计,我了解了机械设计的基本流程、设计方法及设计规范。
3. 生产管理学习在装配车间,我学习了生产管理的相关知识,如生产计划、物料管理、质量管理、安全管理等。
通过参与生产调度和现场管理,我了解了企业生产管理的实际运作。
4. 现场实习在实习期间,我还参与了以下现场实习:(1)参观生产线:了解了公司主要产品的生产流程、工艺路线及设备布局。
(2)参与产品组装:学习了各种零部件的组装方法、装配工艺及装配质量控制。
(3)参与设备维护:了解了设备的日常维护、保养及故障排除方法。
1. 技能提升通过本次实习,我的动手能力得到了显著提升。
我学会了机床操作、刀具选择、加工参数调整等技能,为今后的工作打下了坚实的基础。
2. 知识拓展在实习过程中,我不仅巩固了所学理论知识,还学习了新的知识和技能。
我对机械制造工艺、机械设计原理、生产管理等方面有了更深入的了解。
3. 综合素质提高实习期间,我学会了与他人沟通、协作,提高了自己的组织协调能力。
机械优化设计实验报告
![机械优化设计实验报告](https://img.taocdn.com/s3/m/437d409903d276a20029bd64783e0912a2167c37.png)
《机械优化设计》课程实验报告M a t l a b优化工具箱一、实验目的和要求熟悉Matlab7.0软件的界面和基本功能,了解Matlab优化工具箱的常用算法;使用Matlab优化工具箱的f m i n u n c/f m i n s e a r c h函数求解多变量非线性无约束优化问题;使用Matlab优化工具箱的f m i n c o n函数求解多变量非线性约束优化问题。
二、实验设备和软件台式计算机,Matlab7.0软件。
三、实验内容求解下列优化问题的最优解。
要求:(1)编写求解优化问题的M文件,(2)在命令窗口输入求解优化问题的命令,并得出计算结果。
1、标量优化问题1) f=x2-10x+362) f=x4-5x3+4x2-6x+603) f=(x+1)(x-2)22、多变量非线性无约束优化问题1) f=4(x1-5) 2+( x2-6) 2初始点:x0=[8,9]T;2) f=(x12+x2-11)2+( x1+ x22-7)2初始点:x0=[1,1]T;3) f=[1.5- x1(1- x2)]2+[2.25- x1(1- x22)]2+[2.625- x1(1- x23)]2初始点:x0=[2,0.2]T;4) f=( x12+12 x2-1)2+(49 x1+49 x2+84 x1+2324 x2-681)2初始点:x0=[1,1]T;5) f=( x1+10 x2)2+5(x3- x4)2+( x2-2 x3)4+10(x1- x4)4初始点:x0=[3,-1,0,1]T;3、多变量非线性约束优化问题1) f=( x1-2)2+( x2-1)2g1= x12-x2≤0g2= x1+x2-2≤0初始点:x0=[3,3]T;2) f= x23[( x1-3)2-9]/273≤0g1=x2-x1/3≤0g2=-x1+x2/3≤0g3=x1+x2/3-6≤0g4=-x1≤0g5=-x2≤0初始点:x0=[1,5]T;3) f=1000- x12-2x2 2-x32-x1x2-x1x3g1=-x1≤0g2=-x2≤0g3=-x3≤0g4=x12+x22+x3 2-25=0g5=8x1+14x2+7x3-56=0初始点:x0=[2,2,2]T4)f=100(x2-x12)2+(1-x1)2+90(x4-x32)2+(1-x3)2+10[(x2-1)2+(x4-1)2]+19.8(x2-1)(x4-1)-10≤x1≤10-10≤x2≤10-10≤x3≤10-10≤0x4≤10初始点:x0=[-3,-1,-3,-1]T;四、M文件、在命令窗口输入的求解命令清单及计算结果记录>>1、(1)目标函数的M文件function f=fun1(x)f=x^2-10*x+36调用求解命令x0=0;options=optimset('LargeScale','off');lb=-10;ub=10;[x,fval]=fminbnd(@fun1,lb,ub,options)或{ x0=0; [x,fval]=fminbnd(@fun1,-10,10)} x =5.0000fval =11.00002、(2)目标函数的M文件function f=fun2(x)f=x^4-5*x^3+4*x^2-6*x+60调用求解命令x0=0;options=optimset('LargeScale','off');lb=0;ub=10;[x,fval]=fminbnd(@fun2,lb,ub,options)x =3.2796fval =22.65902、(3)目标函数的M文件function f=fun3(x)f=(x+1)*(x-2)^2调用求解命令> x0=0;options=optimset('LargeScale','off');lb=0;ub=10;[x,fval]=fminbnd(@fun3,lb,ub,options)x =2.0000fval =1.9953e-0113(1)目标函数的M文件function f=fun4(x)f=4*(x(1)-5)^2+(x(2)-6)^2调用求解命令x0=[8,9];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun4,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =5.00006.0000fval =1.7876e-0123(2)目标函数的M文件function f=fun5(x)f=(x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2调用求解命令>> x0=[1,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun5,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =3.0000 2.0000fval =5.2125e-0123(3)目标函数的M文件function f=fun6(x)f=[1.5-x(1)*(1-x(2))]^2+[2.25-x(1)*(1-x(2)^2)]^2+[2.625-x(1)*(1-x(2)^3)]^2调用求解命令x0=[2,0.2];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun6,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =3.0000 0.5000fval =3.9195e-0143(4)目标函数的M文件function f=fun7(x)f=(x(1)^2+12*x(2)-1)^2+(49*x(1)+49*x(2)+84*x(1)+2324*x(2)-681)^2调用求解命令x0=[1,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun7,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =0.9570 0.2333fval =7.37643(5)目标函数的M文件function f=fun8(x)f=(x(1)+10*x(2))^2+5*(x(3)-x(4))^2+(x(2)-2*x(3))^4+10*(x(1)-x(4))^4调用求解命令>> x0=[3,-1,0,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun8,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun.x =0.0015 -0.0002 -0.0031 -0.0031fval =6.3890e-009三、3、(1)目标函数的M文件function f=fun9(x)f=(x(1)-2)^2+(x(2)-1)^2约束函数的M文件function [c,cep]=con1(x)c=[x(1)^2-x(2);x(1)+x(2)-2];cep=[]当前窗口条用求解命令x0=[3,3];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun9,x0,[],[],[],[],[],[],@con1,options)Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon.Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin12x =1.0000 1.0000fval =1.00003、(2)目标函数的M文件function f=fun10(x)f=x(2)^3*[(x(1)-3)^2-9]/27*3^(1/2)约束函数的M文件function [c,cep]=con2(x)c=[x(2)-x(1)/3^(1/2);-x(1)+x(2)/3^(1/2);x(1)+x(2)/3^(1/2)-6];cep=[]当前窗口条用求解命令x0=[1,5];lb=[0,0];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun10,x0,[],[],[],[],lb,ub,@con2,options)Optimization terminated: first-order optimality measure lessthan options.TolFun and maximum constraint violation is lessthan options.TolCon.Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin13x =4.5000 2.5981fval =-7.59383、(3)目标函数的M文件function f=fun11(x)f=1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3)约束函数的M文件function [c,cep]=con3(x)c=[];cep=[x(1)^2+x(2)^2+x(3)^2-25;8*x(1)+14*x(2)+7*x(3)-56];当前窗口条用求解命令x0=[2,2,2];lb=[0,0,0];ub=[];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun11,x0,[],[],[],[],lb,ub,@con3,options)Optimization terminated: first-order optimality measure lessthan options.TolFun and maximum constraint violation is lessthan options.TolCon.No active inequalitiesx =3.5121 0.2170 3.5522fval =961.71523、(4)目标函数的M文件function f=fun12(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2+90*(x(4)-x(3)^2)^2+(1-x(3))^2+10*[(x(2)-1) ^2+(x(4)-1)^2]+19.8*(x(2)-1)*(x(4)-1)约束函数的M文件function [c,cep]=con4(x)cep=[];当前窗口条用求解命令x0=[-3,-1,-3,-1,];lb=[-10,-10,-10,-10];ub=[10,10,10,10];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun12,x0,[],[],[],[],lb,ub,@con4,options)Optimization terminated: Magnitude of directional derivative in searchdirection less than 2*options.TolFun and maximum constraint violationis less than options.TolCon.No active inequalitiesx =1.0001 1.0002 0.9999 0.9997fval =2.3989e-007五、质疑和建议对于一维标量优化问题搜索,在当前窗口中调用求解命令时,[x,fval]=fminbnd(@fun1,lb,ub,options)可以改成[x,fval]=fminbnd(@fun1,-10,10)如下:function f=fun1(x)f=x^2-10*x+36调用求解命令x0=0;options=optimset('LargeScale','off');lb=-10;ub=10;[x,fval]=fminbnd(@fun1,lb,ub,options)或{ x0=0; [x,fval]=fminbnd(@fun1,-10,10)}x =5.0000fval =11.0000。
机械优化设计上机实践报告【精编版】
![机械优化设计上机实践报告【精编版】](https://img.taocdn.com/s3/m/a6eaea99e87101f69f319548.png)
机械优化设计上机实践报告【精编版】机械优化设计上机实践报告班级:机械(茅以升)101姓名:学号: 1004010510成绩:指导教师: 张迎辉日期: 2013.11.201 《一维搜索方法》上机实践报告1、写出所选择的一维搜索算法的基本过程、原理(可附流程图说明)。
(一)进退法1. 算法原理进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:()f x 为单谷函数(只有一个极值点),且[,]a b 为其极小值点的一个搜索区间,对于任意12,[,]x x a b ∈,如果()()12f x f x <,则2[,]a x 为极小值的搜索区间,如果()()12f x f x >,则1[,]x b 为极小值的搜索区间。
因此,在给定初始点0x ,及初始搜索步长h 的情况下,首先以初始步长向前搜索一步,计算()0f x h +。
(1) 如果()()00f x f x h <+则可知搜索区间为0[,]xx h +%,其中x %待求,为确定x %,后退一步计算0()f x h λ-,λ为缩小系数,且01λ<<,直接找到合适的*λ,使得()*00()f x h f x λ->,从而确定搜索区间*00[,]x h x h λ-+。
(2) 如果()()00f x f x h >+则可知搜索区间为0[,]x x %,其中x %待求,为确定x %,前进一步计算0()f x h λ+,λ为放大系数,且1λ>,知道找到合适的*λ,使得()*00()f x h f x h λ+<+,从而确定搜索区间*00[,]x x h λ+。
2. 算法步骤用进退法求一维无约束问题min (),f x x R ∈的搜索区间(包含极小值点的区间)的基本算法步骤如下:(1) 给定初始点(0)x ,初始步长0h ,令0h h =,(1)(0)x x =,0k =;(2) 令(4)(1)x x h =+,置1k k =+;(3) 若()()(4)(1)f x f x <,则转步骤(4),否则转步骤(5);(4) 令(2)(1)(1)(4),x x x x ==,()()(2)(1)f x f x =,()()(1)(4)f x f x =,令2h h =,转步骤(2);(5) 若1k =,则转步骤(6)否则转步骤(7);(6) 令h h =-,(2)(4)x x =,()()(2)(4)f x f x =,转步骤(2);(7) 令(3)(2)(2)(1)(1)(4),,x x x x x x ===,停止计算,极小值点包含于区间(1)(3)(3)(1)[,][,]x x x x 或(二)黄金分割法1、黄金分割法基本思路:黄金分割法适用于[a ,b]区间上的任何单股函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。
机械优化设计上机实践报告
![机械优化设计上机实践报告](https://img.taocdn.com/s3/m/a367b00c86c24028915f804d2b160b4e777f8148.png)
机械优化设计上机实践报告本次机械优化设计上机实践报告是由学生在机械专业课程的学习中所完成的一项任务,旨在通过实践操作提高学生的机械设计和优化能力。
本次实践任务分为两个部分,第一部分是机械零件的设计,第二部分是该零件的优化设计。
一、机械零件设计在机械零件设计的部分,我们需要使用软件来实现。
首先,我们需要通过建立一个零部件的三维模型,然后通过在模型上进行绘制,来完成机械零件的设计。
在实践过程中,我们学习了许多机械零件设计的基本操作。
比如,怎样用不同的工具来创建不同的几何形状的零件。
同时我们还学习了常用的切削工具和块状建模工具。
这些工具让我们能够在短时间内完成复杂的机械零件的建模操作。
我们也学会了如何使用装配工具,通过将不同的零部件组合成装配体,从而使业主更直观地看到最终的产品形态。
二、机械优化设计经过机械零件设计的部分后,我们就开始了机械零件的优化设计。
因为在设计过程中,我们不仅需要考虑性能问题,还要考虑到材料成本和制造工艺等实际因素。
机械优化设计就是在保证零部件符合需要的功能的前提下,通过对材料和几何形状的优化,提高了零部件的机械性能和制造效率。
在实践过程中,我们首先需要了解机械零件的功能和作用,然后参考相关的设计标准和规范,确定重点优化对象。
我们还需要收集和分析机械零件在使用中的各种受力情况,然后确定机械零件的性能参数和指标,然后对机械零件的机械性能和材料利用率进行计算和分析。
经过机械优化设计的部分后,我们已经对完成的机械零件进行了大量的优化操作。
我们优化了零部件的材料选取、几何形状、工艺流程等方面,使机械零件的机械性能得到进一步提升,同时也降低了制造成本,实现了性价比的优化。
总结通过本次机械优化设计研讨实践,我们更好地理解和掌握了机械零件的设计和优化方法。
我们学会了如何使用专业设计软件,更好地了解了机械零件的实际构造和特性。
我们也学会了机械优化设计的思维方式,明确了优化设计需要考虑的各方面因素,能够更好地满足机械零件使用的实际要求。
《优化设计报告》
![《优化设计报告》](https://img.taocdn.com/s3/m/05248fe2b8f67c1cfad6b8df.png)
(课程实践报告封面模版)合肥工业大学《机械优化设计》课程实践研究报告班级:机设六班学号: 20100581姓名:李继鑫授课老师:王卫荣日期: 2013年 5 月 7 日(一)一维搜索min f(x)=]10,0[]2,0[]32)2[(*cos *π⎩⎨⎧+-x d x c注:其中c 、d 为待定系数,用于确定选择的函数是哪一个。
C 语言程序段如下: #include <stdio.h> #include<math.h> #define p 3.14float fun(float x,float c,float d); void main(void) {float a0,a1,a2,r,a,b;float y1=0.0000,y2=0.0000,u; float c,d; u=0.618;printf("input[a,b]and r:a= b= r= "); scanf("%f%f%f",&a,&b,&r);printf("choose only ONE function number c=1 0 or d=0 1\n"); scanf("%f%f",&c,&d); if(c==1) d=0; else c=0,d=1;a1=b-u*(b-a),y1=fun(a1,c,d);a2=a+u*(b-a),y2=fun(a2,c,d);do{if(y1>=y2){a=a1;a1=a2,y1=y2;a2=a+u*(b-a),y2=fun(a2,c,d);}else{b=a2;a2=a1,y2=y1;a1=b-u*(b-a),y1=fun(a1,c,d);}}while(fabs((b-a)/b)>r && fabs((y2-y1)/y2)>r); a0=0.5*(a+b);printf("The best result a0=%f\n",a0);}/******function editting********/float fun(float x,float c,float d){float Y;Y=c*cos(x)+d*((x-2)*(x-2)+3);return(Y);}●选择第二的函数(0,1)极小值a0=2.000970,理论值为2,正确。
(完整word版)机械优化设计实验报告(word文档良心出品)
![(完整word版)机械优化设计实验报告(word文档良心出品)](https://img.taocdn.com/s3/m/c8c3004d01f69e3142329404.png)
《机械优化设计》实验报告目录1.进退法确定初始区间 (3)1.1 进退法基本思路 (3)1.2 进退法程序框图 (3)1.3 题目 (3)1.4 源程序代码及运行结果 (3)2.黄金分割法 (4)2.2黄金分割法流程图 (4)2.3 题目 (5)2.4 源程序代码及结果 (5)3.牛顿型法 (5)3.1牛顿型法基本思路 (6)3.2 阻尼牛顿法的流程图 (6)3.3 题目 (6)3.4 源程序代码及结果 (6)4.鲍威尔法 (7)4.1 鲍威尔法基本思路 (7)4.2 鲍威尔法流程图 (7)4.3 题目 (8)4.4 源程序代码及结果 (8)5. 复合形法 (15)5.1 复合行法基本思想 (15)5.3 源程序代码及结果 (15)6. 外点惩罚函数法 (23)6.1解题思路: (23)6.2 流程框图 (23)6.3 题目 (23)6.4 源程序代码及结果 (23)7.机械设计实际问题分析 (29)7.2计算过程如下 (29)7.3 源程序编写 (30)8.报告总结 (32)1.进退法确定初始区间1.1 进退法基本思路:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。
1.2 进退法程序框图1.3 题目:用进退法求解函数()2710=-+的搜索区间f x x x1.4 源程序代码及运行结果#include <stdio.h>#include <math.h>main(){float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;scanf("h0=%f,y1=%f",&h0,&y1);h=h0;a2=h;y2=a2*a2-7*a2+10;if (y2>y1){h=-h;a3=a1;y3=y1;loop:a1=a2;y1=y2;a2=a3;y2=y3;}a3=a2+2*h;y3=a3*a3-7*a3+10;if (y3<y2){goto loop;}elseprintf("a1=%f,a2=%f,a3=%f,y1=%f,y2=%f,y3=%f\n",a1,a2,a3,y1,y2,y3);} 搜索区间为0 62.黄金分割法2.1黄金分割法基本思路:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。
《机械优化设计》课程实践报告
![《机械优化设计》课程实践报告](https://img.taocdn.com/s3/m/bb150ddc2dc58bd63186bceb19e8b8f67c1cefc4.png)
《机械优化设计》课程实践报告(课程实践报告封⾯模版)合肥⼯业⼤学《机械优化设计》课程实践研究报告班级:机设10 -04学号: 20100495姓名:李健授课⽼师:王卫荣⽇期: 2012年⽉⽇⽬录⼀主要内容1、⼀维搜索程序作业A.λ = 0.618的证明 (1)B.编写⽤0.618法求函数极⼩值的程序 (2)2、单位矩阵程序作业 (4)3、其他⼯程优化问题 (9)4连杆机构问题 (12)⼆实践⼼得体会 (15)⼀: 主要内容1. ⼀维搜索程序作业:A.λ = 0.618的证明 (y2 > y1)证明:0.618法要求插⼊点α1、α 2 的位置相对于区间 [a,b] 两端点具有对称性,即已知a1=a2 , 要求α11=α22由于α1=b-λ(b-a)α2=a+λ(b-a)若使α11=α22则有:b1-λ(b1-a1)=a2+λ(b2-a2)= a1+λ2(b1-a1)因此: b1- a1=(λ2+λ)( b1- a1)( b1- a1)(λ2+λ-1)=0因为: b1= a1所以: λ2+λ-1=0则有: 取⽅程正数解得若保留下来的区间为 [α1,b] ,根据插⼊点的对称性,也能推得同样的λ的值。
其0.618法的程序框图如下:B.编写⽤0.618法求函数极⼩值的程序例:(1)a=0 ,b=2π,f(x)=cox(x)(2)a=0 ,b=10, f(x)=(x-2)2+3(1)#include#includevoid main(void){int i;float a1,a2,aa,y1,y2,ymin,e;float a=0,b=2*3.14159,n=0.618;a1=b-n*(b-a);a2=a+n*(b-a);print(“输⼊精度:”);scanf(“%f”,&e);for(i=0;i=10000;i=i++){y1=cos(a1);y2=cos(a2);if(y1{a=a1;a1=a2;a2=a+n*(b-a);}If(y1b=a2;a2=a1;a1=b-n*(b-a);}if(fabs(b-a)/b{aa=(a+b)/2;ymin=cos(aa);printf(“x=%7.4f\tf(x)=%7.4f\n”),aa,ymin); break;}}}运⾏结果:(2)#include#includevoid main(void){int i;float a1,a2,aa,y1,y2,ymin,e; float a=0,b=10,n=0.618;a1=b-n*(b-a);a2=a+n*(b-a);print(“输⼊精度:”);scanf(“%f”,&e);for(i=0;i=10000;i=i++){y1=(a1-2)*(a1-2)+3; y2=(a2-2)*(a2-2)+3; if(y1>=y2){a=a1;a1=a2;a2=a+n*(b-a);}If(y1b=a2;a2=a1;a1=b-n*(b-a);}if(fabs(b-a)/b{aa=(a+b)/2;ymin=(aa-2)*(aa-2)+3;printf(“x=%6.3f\tf(x)=%6.3f\n”),aa,ymin); break;}}}运⾏结果:2.单位矩阵程序作业编写⽣成单位矩阵的程序程序⽂本#includevoid main(void){int a[100][100];int N,i,j;printf("请输⼊所要输出矩阵的阶数(最多100阶):"); scanf("%d",&N);printf("输出的矩阵阶数为%d\n",N);printf(" N "); /*****制作表头*****/ for(i=0;iprintf("%3d",i+1);printf("\n");for(i=0;iprintf("---"); /*****分割线*****/ printf("\n");for(i=0;i<100;i++) /*****数组赋值*****/ for(j=0;j<100;j++) {if(i==j)a[i][j]=1;elsea[i][j]=0;}for(i=0;iprintf("%2d:",i+1); /*****纵列序号*****/for(j=0;j{printf("%3d",a[i][j]);}printf("\n");}}结果显⽰从键盘输⼊9,显⽰9阶单位矩阵,结果如下3. 其他⼯程优化问题有⼀箱形盖板,已知长度L=600mm ,宽度b=60mm ,厚度t s =0.5mm 承受最⼤单位载荷q=60N/cm ,设箱形盖板的材料为铝合⾦,其弹性模量MPa E 4107?=,泊松⽐3.0=µ,许⽤弯曲应⼒[]MPa 70=σ,许⽤剪应⼒[]MPa 45=τ,要求在满⾜强度、刚度和稳定性条件下,设计重量最轻的结构⽅案。
《优化设计报告》.
![《优化设计报告》.](https://img.taocdn.com/s3/m/92632dd16bec0975f465e263.png)
(课程实践报告封面模版)合肥工业大学《机械优化设计》课程实践研究报告班级:机设六班学号: 20100581姓名:李继鑫授课老师:王卫荣日期: 2013年 5 月 7 日(一)一维搜索 min f(x)=]10,0[]2,0[]32)2[(*cos *π⎩⎨⎧+-x d x c 注:其中c 、d 为待定系数,用于确定选择的函数是哪一个。
C 语言程序段如下:#include <stdio.h>#include<math.h>#define p 3.14float fun(float x,float c,float d);void main(void){float a0,a1,a2,r,a,b;float y1=0.0000,y2=0.0000,u;float c,d;u=0.618;printf("input[a,b]and r:a= b= r= ");scanf("%f%f%f",&a,&b,&r);printf("choose only ONE function number c=1 0 or d=0 1\n"); scanf("%f%f",&c,&d);if(c==1) d=0;else c=0,d=1;a1=b-u*(b-a),y1=fun(a1,c,d);a2=a+u*(b-a),y2=fun(a2,c,d);do{if(y1>=y2){a=a1;a1=a2,y1=y2;a2=a+u*(b-a),y2=fun(a2,c,d);}else{b=a2;a2=a1,y2=y1;a1=b-u*(b-a),y1=fun(a1,c,d);}}while(fabs((b-a)/b)>r && fabs((y2-y1)/y2)>r); a0=0.5*(a+b);printf("The best result a0=%f\n",a0);}/******function editting********/float fun(float x,float c,float d){float Y;Y=c*cos(x)+d*((x-2)*(x-2)+3);return(Y);}●选择第二的函数(0,1)极小值a0=2.000970,理论值为2,正确。
合工大优化设计MATLAB程序
![合工大优化设计MATLAB程序](https://img.taocdn.com/s3/m/4cc8d77e1fb91a37f111f18583d049649b660ecc.png)
合⼯⼤优化设计MATLAB程序合肥⼯业⼤学《机械优化设计》课程实践研究报告班级:机设164学号: 2016216214姓名:张轩授课教师:⽇期: 2019.05.28⽬录⼀、Excel线性规划求解下列⽣产规划问题 (3)⼆、黄⾦分割法求函数极⼩值 (4)三、阻尼⽜顿法 (6)四、《机械优化设计》⼼得体会 (8)⼀、Excel线性规划求解下列⽣产规划问题⼆、黄⾦分割法求函数极⼩值1)⾸先建⽴函数。
建⽴.m⽂件,命名为fun_c.m⽂件,内容如下:function [x_c,y_c] = fun_c(f,a,b)%UNTITLED2 此处显⽰有关此函数的摘要% 此处显⽰详细说明x_c=(a+b)/2;y_c=feval(f,x_c);end%[ x_c,y_c] = fun_c(f,a,b) % 调⽤函数x_c=(a+b)/2;y_gs=fun_c(f,x_c);%plot(x_c,y_c,'r*') %在图像中标出极⼩值点%fprintf('clear程序经过%d次迭代得到函数极⼩值点为%d ',n,x_c)运⾏结果:x_c =2.0001y_c =3.0000clear程序经过20次迭代得到函数极⼩值点为2.000054e+00 >> n=20 迭代次数x*=2.0001 极⼩值点y*=3.0000 极⼩值2)编写迭代程序主体。
建⽴c.m⽂件,内容如下:f=@(x) (x-2)^2+3;a=0;b=10;eps=0.001;n=0;i=100;a1=b-0.618*(b-a);a2=a+0.618*(b-a);y1=feval(f,a1);y2=feval(f,a2);x_c=(a+b)/2;y_c=feval(f,x_c);plot(x_c,y_c,'*')hold onfor k=1:iif (abs(b-a)<=eps)y_c=feval(f,a);breakelseif (y1<=y2)y2=feval(f,a1);b=a2;a2=a1;a1=b-0.618*(b-a); y1=feval(f,a1); elsey1=feval(f,a2);a=a1;a1=a2;a2=a+0.618*(b-a); y2=feval(f,a2); endn=n+1;endendx=(a+b)/2;y=f(x);三、阻尼⽜顿法1)%建⽴NTtest.m⽂件clearclcx0=[0,0]';fun=@(x)100*(x(1)^2-x(2))^2+(x(1)-1)^2;gfun=@(x)[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1),-200*(x(1)^2-x(2))]';Hesse=@(x)[1200*x(1)^2-400*x(2)+2,-400*x(1);-400*x(1),200]';[x,val,k]=minNT(fun,gfun,Hesse,x0);>> [x,val,k]=minNT(fun,gfun,Hesse,x0) 结果如下:x =2.00001.0000val =2.2737e-13k =22 2)建⽴minNT.m⽂件function[x,val,k]=minNT(fun,gfun,Hesse,x 0)%注意传过来的是变量,⽽不是函数%功能:⽤阻尼⽜顿法求解⽆约束问题:min f(x)%输⼊:x0是初始点,梯度函数,Hesse阵的函数%输出:x,val是近似最优点和最优值,k是迭代次数maxk=100;%给出最⼤迭代次数rho=0.5;sigma=0.4;gama=0.5; epsilon=1.0e-6;k=0;while (kgk=feval(gfun,x0);%计算梯度Gk=feval(Hesse,x0);%计算Hesse 阵dk=-Gk\gk;%计算搜索⽅向if(norm(gk)break;end%Armijio线搜索寻找最佳步长alpha mk=0;while(mk<20)if(feval(fun,x0+rho*gama^mk*dk)< =feval(fun,x0)+sigma*rho*gama^mk *gk'*dk) alpha=rho*gama^mk;break;endmk=mk+1;endx0=x0+alpha*dk;k=k+1;endx=x0; val=feval(fun,x);format shortend%[x,val,k]=minNT(fun,gfun,Hesse, x0)四、《机械优化设计》⼼得体会⾸先,当初选这门课的时候给⼈第⼀印象就是这课可能有点复杂,枯燥乏味。
《机械优化设计》课程实践报告 合肥工业大学王卫荣
![《机械优化设计》课程实践报告 合肥工业大学王卫荣](https://img.taocdn.com/s3/m/c500b97c284ac850ac0242a1.png)
《机械优化设计》课程实践报告合肥工业大学王卫荣研究报告要求及格式模版合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化班学号:姓名:授课老师:王卫荣日期:201 年月日一、研究报告内容:1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
4、写出课程实践心得体会,附列程序文本。
5、为响应学校2021年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。
试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。
(考评将重点关注您的独创性、简洁性与可验证性)。
二、研究报告要求1、报告命名规则:学号-姓名-《机械优化设计》课程实践报告.doc2、报告提交邮址:weirongw@(收到回复,可视为提交成功)。
追求:问题的工程性,格式的完美性,报告的完整性。
不追求:问题的复杂性,方法的惟一性。
评判准则:独一是好,先交为好;切勿拷贝。
目录第1章一维搜索程序―――― ―― ―― ―― ―― ―― ―― 1第2章单位矩阵程序―― ―― ―― ―― ―― ―― ―― ―― 8第3章机械优化设计工程实例―― ―― ―― ―― ―― ―― 103.1 连杆机构―― ―― ―― ―― ―― ―― ―― ―― ―― ―― 103.2 自选工程―― ―― ―― ―― ―― ―― ―― ―― ―― ―― 15第4章心得体会―― ―― ―― ―― ―― ―― ―― ―― ―― 19第五章开放式考核―― ―― ―― ―― ―― ―― ―― ―― ――20第 1 章一维搜索1.1一维搜索程序作业描述本章节主要内容为一维搜索方法,主要完成以下两个问题:① 证明0.618法;② 编制用0.618法求函数极小值的程序。
机械优化设计上机实践报告
![机械优化设计上机实践报告](https://img.taocdn.com/s3/m/0b9e7e80d4bbfd0a79563c1ec5da50e2524dd1cd.png)
机械优化设计上机实践报告1. 引言机械优化设计是利用计算机辅助设计与优化方法,对机械结构进行改进和优化,以提高机械设计的性能和效率。
本实践报告基于团队在机械优化设计课程中的上机实践,探讨了机械优化设计的基本原理、方法和实践过程,并对优化后的设计进行了验证和评估。
2. 方法与流程2.1 问题定义本实践中,我们选择了一个简化的机械结构问题:求解一根长度为L的钢杆在两个支点上的最大挠度。
这个问题可以抽象为一个优化问题:寻找一个合适的杆件横截面形状,使得钢杆的挠度最小。
2.2 初始设计我们首先需要设计一个初始杆件形状作为优化的起点。
根据经验和初步分析,我们选择了一个圆形横截面作为初始设计。
通过计算机辅助设计软件绘制出了该初始设计的三维模型,并进行了有限元分析,得到了初始设计的挠度。
2.3 优化算法为了寻找更优的杆件形状,我们采用了一种遗传算法作为优化方法。
遗传算法模拟了自然界中的进化过程,通过选择、交叉和变异等操作对初始设计进行优化。
具体的算法流程如下:1.初始化种群:随机生成一定数量的个体作为种群。
2.评估适应度:利用有限元分析对每个个体进行挠度计算,并评估其适应度。
3.选择操作:根据适应度选择一部分个体作为父代,用于繁殖下一代。
4.交叉操作:对选中的父代进行交叉操作,产生新的个体。
5.变异操作:对新产生的个体进行变异操作,引入新的基因。
6.更新种群:用新产生的个体替换原有种群中的部分个体。
7.终止条件判断:如果满足终止条件,则结束优化过程;否则返回第2步。
2.4 优化结果与分析经过多轮迭代,我们得到了优化后的设计结果。
通过有限元分析对优化后的设计进行挠度计算,发现挠度明显减小。
此外,我们还对优化前后的设计进行了对比测试,结果显示优化后的设计在挠度方面有明显的改进。
3. 结果与讨论本次机械优化设计实践取得了良好的效果。
通过遗传算法优化,我们成功改进了钢杆的横截面形状,使得其挠度显著减小。
这表明机械优化设计在提高机械结构性能方面具有很大的潜力。
合肥工业大学《机械优化设计》课程实践报告
![合肥工业大学《机械优化设计》课程实践报告](https://img.taocdn.com/s3/m/8a13126e8e9951e79b89277d.png)
合肥工业大学《机械优化设计》课程实践研究报告班级:学号:姓名:授课教师:日期:2016年 11 月 7 日目录作业要求 (2)一、λ=0.618的证明、一维搜索程序作业 (3)1、0.618法的基本思想 (3)2、关于0.618法中参数λ=0.618的证明 (4)3、一维搜索程序作业 (5)二、单位矩阵程序作业 (8)三、注释最佳再现给定运动规律连杆机构优化设计 (10)问题模型子程序 (10)四、连杆机构问题+其他工程优化问题 (12)1、连杆机构问题 (12)2、其他工程问题: (15)五、课程实践心得体会 (18)作业要求1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、注释最佳再现给定运动规律连杆机构优化设计问题模型子程序;4、连杆机构问题 + 自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算; (3)进行结果分析,并加以说明。
5、写出课程实践心得体会,附列程序文本。
一、λ=0.618的证明、一维搜索程序作业1、0.618法的基本思想“0.618法”,又称为黄金分割法,是常用的一种一维搜索试探方法,适用于[,]a b 区间上的任何单调函数求极小值问题。
0.618法是建立在区间消去法原理基础上的试探方法,即在搜索区间[,]a b 内适当插入两点1a 、1b ,且11a b ,如下图所示。
通过比较函数值1()f a 与1()f b 的大小,应用函数的单调性,可得出以下两种情况:1) 若11()()f a f b <,则取1[,]a b 为缩短后的区间。
2) 若11()()f a f b >,则取1[,]a b 为缩短后的区间。
然后在保留下来的区间上进行同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。
机械优化设计实验报告
![机械优化设计实验报告](https://img.taocdn.com/s3/m/d8dcf6a0f524ccbff12184ce.png)
《机械优化设计》实验报告目录1.进退法确定初始区间 (3)1.1 进退法基本思路 (3)1.2 进退法程序框图 (3)1.3 题目 (3)1.4 源程序代码及运行结果 (3)2.黄金分割法 (4)2.2黄金分割法流程图 (4)2.3 题目 (5)2.4 源程序代码及结果 (5)3.牛顿型法 (5)3.1牛顿型法基本思路 (6)3.2 阻尼牛顿法的流程图 (6)3.3 题目 (6)3.4 源程序代码及结果 (6)4.鲍威尔法 (7)4.1 鲍威尔法基本思路 (7)4.2 鲍威尔法流程图 (7)4.3 题目 (8)4.4 源程序代码及结果 (8)5. 复合形法 (15)5.1 复合行法基本思想 (15)5.3 源程序代码及结果 (15)6. 外点惩罚函数法 (23)6.1解题思路: (23)6.2 流程框图 (23)6.3 题目 (23)6.4 源程序代码及结果 (23)7.机械设计实际问题分析 (29)7.2计算过程如下 (29)7.3 源程序编写 (30)8.报告总结 (32)1.进退法确定初始区间1.1 进退法基本思路:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。
1.2 进退法程序框图1.3 题目:用进退法求解函数()2710=-+的搜索区间f x x x1.4 源程序代码及运行结果#include <stdio.h>#include <math.h>main(){float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;scanf("h0=%f,y1=%f",&h0,&y1);h=h0;a2=h;y2=a2*a2-7*a2+10;if (y2>y1){h=-h;a3=a1;y3=y1;loop:a1=a2;y1=y2;a2=a3;y2=y3;}a3=a2+2*h;y3=a3*a3-7*a3+10;if (y3<y2){goto loop;}elseprintf("a1=%f,a2=%f,a3=%f,y1=%f,y2=%f,y3=%f\n",a1,a2,a3,y1,y2,y3);} 搜索区间为0 62.黄金分割法2.1黄金分割法基本思路:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。
合工大机械优化设计课程实践报告
![合工大机械优化设计课程实践报告](https://img.taocdn.com/s3/m/5a5f911c9b6648d7c0c7460d.png)
合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化12-3班学号:姓名:授课教师:***日期: 2015年 11 月 14 日目录一、一维搜索程序作业 (3)1.λ=0.618的证明 (3)2.编写0.618法程序并计算 (4)二、单位矩阵程序作业 (6)三、连杆机构问题和自选工程优化问题 (7)1.连杆机构问题 (7)2.自选工程优化问题 (14)四、课程实践心得体会 (18)一、一维搜索程序作业1.λ=0.618的证明黄金分割法,又称作0.618法,适用于 [a,b] 区间上的任何单谷函数求极小值问题。
黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间 [a,b] 内适当插入两点α1、α2,并计算其函数值。
α1、α2 将区间分成三段。
应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。
然后再在保留下来的区间上做同样的位置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似值。
黄金分割法要求插入点α1、α2 的位置相对于区间 [a,b] 两端点具有对称性,即图 1-1 黄金分割法α1 = b –λ ( b – a )α2 = a + λ( b – a ) (3-1)其中,λ为待定常数。
下面证明λ = 0.618。
除对称性要求外,黄金分割法还要求保留下来的区间内再插入一点所形成的区间新三段,与原来区间的三段具有相同的比例分布。
设原有区间 [a,b] 长度为1如图1-1 所示,保留下来的区间 [a,b] 长度为λ,区间缩短率为λ。
为了保持相同的比例分布,新插入点α3应在λ( 1 –λ) 位置上,α1在元区间的1 –λ位置应相当于在保留区间的λ²位置。
故有1 –λ = λ²即λ² + λ– 1 = 0取方程正数解得若保留下来的区间为 [α1,b] ,根据插入点的对称性,也能推得同样的λ的值。
2.编写0.618法程序并计算(1)0.618法程序:#include <stdio.h>#include <math.h>float m=0.618;float fun(float t){float y;y=cos(t);return y;}main(){ float a,b,eps;printf("\min=");scanf("%f",&a); %输入函数下限% printf("\max=");scanf("%f",&b); %输入函数上限% float t1,t2,t,f1,f2,min;printf("eps=");scanf("%f",&eps); %输入精度%while((b-a)/b>=eps){ t1=a+(1-m)*(b-a);t2=a+m*(b-a);f1=fun(t1);f2=fun(t2);if(f1>=f2){ a=t1;t1=t2;f1=f2;t2=a+m*(b-a);f2=fun(t2); }else{ b=t2;t2=t1;f2=f1;t1=a+(1-m)*(b-a);f1=fun(t1);}}t=(a+b)/2;min=fun(t);printf("最优点t=%f\n",t); %输出最优点t% printf("最优值f= %f\n",min);} %输出最优值f%(2)计算:1.a=0,b=2π,Y= cos(t)2.a=0,b=10,y=(t-2)*(t-2)+3二、单位矩阵程序作业编写生成单位矩阵的程序:程序文本#include <stdio.h>void main(void){int a[100][100];int N,i,j;printf("请输入所要输出矩阵的阶数(最多100阶):");scanf("%d",&N);printf("输出的矩阵阶数为%d\n",N);printf(" N "); /*****制作表头*****/ for(i=0;i<N;i++) /*****横行序号*****/printf("%3d",i+1);printf("\n");for(i=0;i<N+1;i++)printf("---"); /*****分割线*****/ printf("\n");for(i=0;i<100;i++) /*****数组赋值*****/ for(j=0;j<100;j++){if(i==j)a[i][j]=1;elsea[i][j]=0;}for(i=0;i<N;i++) /*****输出所需数组*****/ {printf("%2d:",i+1); /*****纵列序号*****/for(j=0;j<N;j++){printf("%3d",a[i][j]);}printf("\n");}}结果显示从键盘输入9,显示9阶单位矩阵,结果如下三、连杆机构问题和自选工程优化问题1.连杆机构问题:问题描述:图1现优化一曲柄连杆机构,如图1所示,已知曲柄长度L1为44mm,机架长度L4为220mm,,要求当曲柄的转角在[φ0,φ0+π/2 ]时,对应的摇杆的输出角为Ψi,且两者满足对应函数关系Ψi=Ψ0+ ( φ0 - φi )2,φ0和Ψ0分别对应于四连杆在初始位置时曲柄和摇杆的位置角。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合肥工业大学《机械优化设计》课程实践研究报告班级:学号:姓名:授课教师:日期:2016年 11 月 7 日目录作业要求 (2)一、λ=0.618的证明、一维搜索程序作业 (3)1、0.618法的基本思想 (3)2、关于0.618法中参数λ=0.618的证明 (4)3、一维搜索程序作业 (5)二、单位矩阵程序作业 (8)三、注释最佳再现给定运动规律连杆机构优化设计 (10)问题模型子程序 (10)四、连杆机构问题+其他工程优化问题 (12)1、连杆机构问题 (12)2、其他工程问题: (15)五、课程实践心得体会 (18)作业要求1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、注释最佳再现给定运动规律连杆机构优化设计问题模型子程序;4、连杆机构问题 + 自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算; (3)进行结果分析,并加以说明。
5、写出课程实践心得体会,附列程序文本。
一、λ=0.618的证明、一维搜索程序作业1、0.618法的基本思想“0.618法”,又称为黄金分割法,是常用的一种一维搜索试探方法,适用于[,]a b 区间上的任何单调函数求极小值问题。
0.618法是建立在区间消去法原理基础上的试探方法,即在搜索区间[,]a b 内适当插入两点1a 、1b ,且11a b ,如下图所示。
通过比较函数值1()f a 与1()f b 的大小,应用函数的单调性,可得出以下两种情况:1) 若11()()f a f b <,则取1[,]a b 为缩短后的区间。
2) 若11()()f a f b >,则取1[,]a b 为缩短后的区间。
然后在保留下来的区间上进行同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。
2、关于0.618法中参数λ=0.618的证明0.618法要求插入点1α,2α的位置相对于区间[,]a b 两端点具有对称性,即12()()b b a a b a αλαλ=--=+-假设[,][0,1]a b =,根据以上公式,得出分割后的区间如下图所示:进行再次分割时,0.618法要求在保留下来的区间内再插入一点,所形成的区间新三段与原来区间的三段具有相同的比例分布。
假设保留下来的区间为2[,]a α,区间长度为λ。
为了保持相同的比例分布,根据以上公式计算,新插入点3α应在(1)λλ-位置上,1α在原区间的1λ-位置相当于在保留区间的2λ位置。
所谓0.618法,就是使整段长与较长段的长度比值等于较长段与较短段长度的比值,即:11λλλ=- 通过计算解得0.618λ≈。
若保留下来的区间为1[,]b α,根据插入点的对称性,也能推得同样的λ值。
3、一维搜索程序作业0.618法的搜索过程如下:1) 给出初始搜索区间及收敛精度,将λ代入0.618。
2) 按坐标点计算公式计算1α和2α,并计算其对应的函数值。
3) 根据区间消去法原理缩短搜索区间。
4) 检查区间是否缩短到足够小和函数值是否收敛到足够近,如果条件不满足,则返回第二步。
5) 如果条件满足,取最后两实验点的平均值作为极小点的数值近似解。
程序框图如下:根据以上思路,下面借助C++,运用0.618法求解正弦函数的极小值。
初始区间为程序代码如下:// 0.618.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"#include<iostream>#include<iomanip>#include <cmath>#define PI 3.1415926using namespace std;float main(){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:";cin>>t;a1=b-r*(b-a);a2=a+r*(b-a);y1=sin(a1);y2=sin(a2);while(abs((b-a)/b)>=t || abs((y2-y1)/y2)>=t){if(y1>=y2){a=a1;a1=a2;y1=y2;a2=a+r*(b-a);y2=sin(a2);}else{b=a2;a2=a1;y2=y1;a1=b-r*(b-a);y1=sin(a1);}p++;}A=(a+b)/2;min=sin(A);cout<<"\n迭代次数为:"<< p<<endl;cout<<"在【0,2π】区间内正弦函数的最小值为:"<<setprecision(9) <<min<<endl;system("pause");return 0;}程序运行结果如下二、单位矩阵程序作业➢作业要求:编写生成n n 阶单位矩阵的程序,要求维数n在程序运行时从键盘输入。
➢C++程序代码如下:#include "stdafx.h"#include<iostream>using namespace std;int main(){int i,j,n;int a[200][200];cout<<"请输入n*n单位矩阵的阶数(n小于200):";cin>>n;for(i=0;i<n;i++){for(j=0;j<n;j++)if(i==j)a[i][j]=1;elsea[i][j]=0;}cout<<" N ";for(i=0;i<n;i++){cout.width(3);cout<<i+1;}cout<<"\n";for(i=0;i<n+1;i++)cout<<"---";cout<<"\n";for(i=0;i<n;i++){cout.width(2);cout<<i+1<<":";for(j=0;j<n;j++){cout.width(3);cout<<a[i][j];}cout<<"\n";}system("pause");return 0;}➢程序运行结果如下:三、注释最佳再现给定运动规律连杆机构优化设计问题模型子程序➢作业要求对给定的最佳再现给定运动规律连杆机构优化设计问题模型子程序(FORTRAN语言)进行必要的注释。
➢注释结果连杆机构问题函数子程序目标函数==============SUBROUTINE FFX(N,X,FX) /定义目标函数(子函数)FFX/======================DIMENSION X(N) /定义一维数组X/COMMON /ONE/ I1,I2,I3,I4,NFX,I6 /开辟公共区域ONE,其中有整型变量I1、I2、I3、I4、I6,实型变量NFX/NFX=NFX+1P0=ACOS(((1.0+X(1))**2-X(2)**2+25.0)/(10.0*(1.0+X(1))))Q0=ACOS(((1.0+X(1))*+*2-X(2)**2-25.0)/(10.0*X(2))) T=90.0*3.1415926/(180.0*30.0) 将输入角30等份FX=0.0DO 10 K=0,30 /DO语句实现循环功能,循环初值为0,终值为30/PI=P0+K*TQE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926)D=SQRT(26.0-10.0*COS(PI))AL=ACOS((D*D+X(2)*X(2)-X(1)*X(1))/(2.0*D*X(2)))BT=ACOS((D*D+24.0)/(10.0*D))IF (PI.GE.0.0 .AND. PI.LT.3.1415926) THEN /IF条件语句:若 PI>0 ‘且’ PI<π,则执行件/QI=3.1415926-AL-BT /THEN块,条件满足选择此句/ELSEQI=3.1415926-AL+BT /ELSE块,条件不满足选择此句/ENDIF /结束IF选择结构/IF(K.NE.0 .OR. k.NE.30) THENFX=FX+(QI-QE)**2*TELSEFX=FX+(QI-QE)**2*T/2.0ENDIF10 CONTINUEEND /程序停止运行/不等约束=================SUBROUTINE GGX(N,KG,X,GX) /计算不等式约束函数子程序GGX/=========================DIMENSION X(N),GX(KG) /一维数组X、GX/GX(1)=1.0-X(1)GX(2)=1.0-X(2)GX(3)=1.0-5.0GX(4)=(1.0+X(1))-(X(2)+5.0)GX(5)=(1.0+X(2))-(X(1)+5.0)GX(6)=(1.0+5.0)-(X(1)+X(2))GX(7)=-(1.4142*X(1)*X(2)-X(1)**2-X(2)**2)-16.0GX(8)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0 /不等式约束条件GX(1)、GX(2)、GX(3)、GX(4)、GX(5)、GX(6)、GX(7)、GX(8)/END /使程序停止运行/等式约束=================SUBROUTINE HHX(N,KH,X,HX) /计算等式约束函数子程序HHX/=========================DIMENSION X(N),HX(KH) /定义一维数组X、HX/X(1)=X(1)END /使程序停止运行/四、连杆机构问题 +其他工程优化问题1、连杆机构问题设计一曲柄连杆摇杆机构,要求曲柄从转到时,摇杆的转角最佳再现已知的运动规律:且,,为极位角,其传动角允许在范围内变化。
解:1、 设计变量的确定已知141,5l l ==,根据余弦定理有:2222212432301242()(1)25arccos arccos 210l l l l l l l l l l ϕ++-++-==⨯+⨯+极位角()(1)222221243230343()(1)25arccos arccos 210l l l l l l l l l ψ+--+--==位置角因此,只有23,l l 为独立变量,则设计变量为1223()()T T x x x l l ==2、目标函数的建立目标函数可根据已知的运动规律与机构实际运动规律之间的偏差最小为指标来建立,先假设在和间进行30等分,则可得目标函数的表达式:3021()()min i Ei i f x ψψ==-→∑式中:02i i i i i i i παβϕπψπαβπϕπ--≤≤⎧=⎨-+≤≤⎩()()2223232222414arccos224arccos arccos210i i i i i i i i i r r l l rl r l l r rl r αβ==+-=+-+==2002()3Ei i ψψϕϕπ=+- 3、约束条件的确定曲柄存在的条件:1122131214()0()0()0g x l l g x l l l g x l l =-≤⎫⎪=-≤⎬⎪=-≤⎭为最短杆 414235123461324()0()0()0g x l l l l g x l l l l g x l l l l =+--≤⎫⎪=+--≤⎬⎪=+--≤⎭最短与最长杆之和小于或等于另两杆之和传动角要求:22223147232222341823()()arccos 13502()()45arccos 02o ol l l l g x l l l l l l g x l l +-+=-≤+--=-≤4、优化计算结果 运用MATLAB 编程求解:定义目标函数M 文件function f=myobj(x) f=0;% f 为目标函数Ao=acos(((1+x(1))^2-x(2)^2+25)/(10*(1+x(1)))); %Ao--初始极位角,x (1)--L2,x (2)--L3Bo=acos(((1+x(1))^2-x(2)^2-25)/(10*x(2))); %Bo--初始位置角for Ai=Ao:(pi/2)/30:(Ao+pi/2)%极位角Ai从Ao开始,分100等分,一直转到Ao+90°的角度Bei=Bo+2*(Ai-Ao)^2/(3*pi);%Bei为理想情况下曲柄每转过一个角度时,摇杆转过的角度r=sqrt(26-10*cos(Ai));m=acos((r^2+x(2)^2-x(1)^2)/(2*r*x(2)));n=acos((r^2+24)/(10*r));if(Ai>=0 && Ai<=pi)Bi=pi-m-n;elseBi=pi-m+n;endf=f+(Bi-Bei)^2; %Bi为曲柄每转过一个角度时,摇杆实际转过的角度end●定义非线性约束条件M文件function[c,ceq]=mycon(x)c=[acos((x(1)^2+x(2)^2-36)/(2*x(1)*x(2)))-135*(pi/180);45*(pi/180)-acos((x(1)^2+x(2)^2-16)/(2*x(1)*x(2)))];%c为非线性不等式约束(传动角要求)ceq=[];%ceq为非线性等式约束(无)●调用主程序x0=[6,3];A=[-1 0;0 -1;-1 -1;1 -1;-1 1];b=[-1;-1;-6;4;4];[x,fval]=fmincon(@myobj,x0,A,b,[],[],[],[],@nonlcon)程序运行结果如下:通过MATLAB 编程求解得到该问题的最优解为*(4.1287 2.3225)0.0076T x f ==2、其他工程问题:运装计划:某航空公司的运输机分前、后舱两部分装运客货,前舱容积为3160m ,最大装载量为10t ,后舱容积为3320m ,最大装载量为15t 。