您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 优化上机指导(Matlab优化工具箱)
上机指导书适用专业:机械工程课程代码:8201581/6015589编写单位:机械工程与自动化学院编写人:张晓洪审核人:审批人:《优化设计》《优化设计及有限元分析》上机指导书v2012-1-目录实验一Matlab基础训练与优化编程………………………………………………2实验1.1Matlab基本操作与运算实验1.2Matlab程序设计与函数实验1.3一维搜索方法编程实验1.4共轭梯度法和Powell法无约束优化方法编程实验1.5复合形法约束优化方法编程实验二Matlab优化工具箱优化实验实验2.1单变量函数最小值问题(一维问题)…………………………………3实验2.2线性方程组的应用………………………………………………………5实验2.3无约束规划的计算方法…………………………………………………7实验2.4约束非线性规划计算方法………………………………………………8实验2.5综合实验齿轮传动系统优化设计………………………………………10主要参考文献…………………………………………………………………………………15《优化设计》《优化设计及有限元分析》上机指导书v2012-2-实验一Matlab基础训练与优化编程参见《实验报告》《优化设计》《优化设计及有限元分析》上机指导书v2012-3-实验2.1单变量函数最小值问题(一维问题)一、上机目的:1、掌握一维搜索方法的基本概念、算法等知识点;2、熟悉Matlab软件环境及有关语句和函数的使用方法。二、原理和方法:函数fminbnd是用来寻找单变量函数在固定区间内的最小值点及最小值。MATLAB各工具箱的每个函数,包括优化工具箱函数,都有多种不同的调用格式。其调用格式可使用在线帮助系统查询。函数fminbnd最常用的调用格式为:[x,fval]=fminbnd(fun,x1,x2)%返回函数fun在区间x1xx2上的最小值点x和对应的最小值fval,fun为目标函数的文件名句柄或目标函数的表达式字符串。三、上机内容与步骤:1、熟悉MATLAB软件环境,了解用户界面、掌握帮助系统使用等(重点)。2、如求解函数f(x)=sin(x)在区间[0,2]内的最小值及最小值点,使用如下命令即可:[x,fval]=fminbnd(@sin,0,2*pi)%符号“@”表明目标函数为MATLAB自定义的正弦函数sin.m。x=4.7124%最小值点赋值给x。fval=-1.0000%最小值赋值给fval。3、如果目标函数并不是MATLAB自定义的函数,需要首先定义一个函数M文件,以该文件的名称来代替上述命令行中的“sin”部分。如希望求出x3exlogxxcosx)x(f在[0,1]内的最小值及最小值点,首先编写目标函数的M文件opt1.m,如下:functionf=myfun(x)%编写函数M文件时,上句代码中的“myfun”并不一定与文件名相同。f=(x^3+cos(x)+x*log(x))/exp(x)然后调用fminbnd函数,在命令窗口中输入:[x,fval]=fminbnd(@opt1,0,1)x=0.5223fval=0.3974%注意此处使用“opt1”而不是“myfun”。4、如果目标函数的表达式较为简单,也可以使用表达式的字符串而不必编写目标函数。如上例也可以使用[x,fval]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)实现。5、目标函数也可表示成内联函数,如:f=inline('sin(x)+3');《优化设计》《优化设计及有限元分析》上机指导书v2012-4-x=fminbnd(f,2,5);显示结果:x=4.7124注:在MATLAB软件中,function为关键字,%为注释符号,为命令窗口中的提示符。《优化设计》《优化设计及有限元分析》上机指导书v2012-5-实验2.2线性方程组的应用一、上机目的1、了解线性规划问题及可行解、最优解的概念;2、掌握Matlab软件关于求解线性规划的语句和方法。二、原理和方法在工程实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示),所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划。其一般形式是:矩阵形式表示为:线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个可行解,检验是否为最优解;若不是,可用迭代的方法找到另一个更优的可行解,经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。三、上机内容与步骤在Matlab优化工具箱中,linprog函数是使用单纯形法求解下述线性规划问题的函数。命令格式为:)n,,2,1i(0xbxaxaxabxaxaxabxaxaxa.t.sxcxcxcfminimnmn22m11m2nn22221211nn1212111nn22110x,bAx.t.sxcfminTvubxvlbbeqaeqxbAxtsxcfT;,..min)0,,,,,,,(],[),,,,,,(],[xvubvlbbeqaeqbAclinprogfvalxvubvlbbeqaeqbAclinprogfvalx《优化设计》《优化设计及有限元分析》上机指导书v2012-6-其中:A为不等式约束条件矩阵,c、b分别为目标函数的系数向量和不等式约束条件中最右边的数值向量;也可设置解向量的上界vlb和下界vub,即解向量必须满足vlb=x=vub;还可预先设置初始解向量x0。如没有不等式约束,而只有等式约束条件时,A=[],b=[];aeq与beq分别为等式约束矩阵;输出的结果:x表示最优解向量;fval表示最优值。某一线性规划问题,如下:考虑到linprog函数只解决形式如下的线性规划。所以先要将线性规划变换为如下形式:建立M文件如下(如以文件名optest保存):c=[-3;1;1];A=[1-21;4-1-2];b=[11;-3];aeq=[20-1];beq=-1;vlb=[0;0;0];[x,fval]=linprog(c,A,b,aeq,beq,vlb)则在命令窗口中输入:optest,可得到计算结果:x1=4,x2=1,x3=9,fval=-2。3,2,1i,0x1xx23x2xx411xx2x.t.sxxx3fmaxi313213213210;,..minxbeqaeqxbAxtsxcfT3,2,1i,0x3x2xx411xx2x1xx2.t.sxxx3fmini32132131321《优化设计》《优化设计及有限元分析》上机指导书v2012-7-实验2.3无约束规划计算方法一、上机目的1、了解无约束规划问题的求解原理与方法;2、会用Matlab软件求解无约束规划问题。二、原理和方法无约束规划问题的解法一般按目标函数的形式分为两大类:一类是一元函数的一维搜索法,如黄金分割法、插值法等;另一类是求解多元函数的下降迭代法。三、上机内容与步骤在Matlab软件中,求解无约束规划的常用命令是:x=fminunc(‘fun’,x0)其中,fun函数应预先定义到M文件中。问题如下:初始点x0=[-24]首先建立函数文件fun02.mfunctionf=fun02(x)f=3/2*x(1)^2+1/2*x(2)^2-x(1)*x(2)-2*x(1)在命令窗口输入:x0=[-2;4]x=fminunc(@fun02,x0)计算结果:极小值为-1,最优点:x1=1,x2=1。1212221x2xxx21x23)x(fmin《优化设计》《优化设计及有限元分析》上机指导书v2012-8-实验2.4约束非线性规划计算方法一、上机目的1、了解约束非线性规划问题的求解原理与方法;2、会用Matlab软件求解约束非线性规划问题。二、原理和方法对于约束非线性规划,随着目标函数和约束条件的不同,解法也不同,一般来说,有三类方法:(1)、将约束问题转化为无约束问题的求解方法;(2)、用线性规划来逼近非线性规划;(3)、直接搜索的各种方法。三、上机内容与步骤约束非线性规划的一般形式为:其中,f(x)为多元实值函数;g(x)为向量函数,并且f(x),g(x)中至少有一个函数是非线性函数的(否则成为线性规划问题)。在Matlab优化工具箱中,fmincon函数是用SQP算法来解决一般的约束非线性规划的函数,其命令格式为:x=fmincon(‘fun’,x0,A,b)x=fmincon(‘fun’,x0,A,b,Aeq,beq)x=fmincon(‘fun’,x0,A,b,Aeq,beq,lb,ub)x=fmincon(‘fun’,x0,A,b,Aeq,beq,lb,ub,nonlcon)对于如下约束非线性规划问题:ubxlbxceqxgbeqxaeqbAxts)(非线性约束线性约束0)(,0)()(*,.]1;1;1;1[0102335..)4()3()2()1(min4321432124232221初值为ixxxxxxxxxtsxxxx)(minxfx《优化设计》《优化设计及有限元分析》上机指导书v2012-9-建立一个M文件fun05.m,代码如下:functiony=fun05(x)y=(x(1)-1)^2+(x(2)-2)^2+(x(3)-3)^2+(x(4)-4)^2;存储为fun05.m文件.在命令窗口输入:x0=[1;1;1;1];A=[1111;3321];B=[5;10];Aeq=[];Beq=[];Lb=[0;0;0;0];[x,g]=fmincon(@fun05,x0,A,B,Aeq,Beq,Lb)计算结果为:X=0.00000.66671.66652.6668g=6.3333《优化设计》《优化设计及有限元分析》上机指导书v2012-10-实验2.5齿轮传动系统优化设计一、上机目的和任务机械优化设计是一门实践性很强的课程,通过实际上机计算达到以下目的:1)加深对机械优化设计方法的基本理论和算法的理解。2)培养学生独立编制计算机程序的能力。3)掌握常用优化方法程序的使用方法。4)培养学生灵活运用优化设计方法解决工程实际问题的能力。二、上机内容某二级斜齿圆柱齿轮减速器(如图1所示),高速级输入功率1P=6.2KW,转速1n=1450r/min;总传动比i=31.5,齿轮宽度系数a=0.4,齿轮材料和热处理:大齿轮45号钢正火187~207HB,小齿轮45号钢调质228~255HB,工作寿命10年以上。要求按照总中心距a最小来确定齿轮传动方案。图1传动系统简图三、上机步骤该优化问题属于约束非线性规划问题,采用MATLAB优化工具箱进行求解。求约束非线性规划问题的MATLAB函数是fmincon,约束非线性规划问题的数学模型表示为:minf(X)s.t.AXb(线性不等式约束)AeqX=beq(线性等式约束)C(X)0(非线性不等式约束)Ceq(X)=0(非线性等式约束)LbXUb(边界约束)函数fmincon的使用格式为:[x,fval,exitflag,output,hession]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,’NIc’,options,P1,P2,…)《优化设计》《优化设计及有限元分析》上机指导书v2012-11-其中,输出参数有:x是返回目标函数的最优解;fval是返回目标函数在最优解x点的函数值;exitflag是返回算法的终止标志;output是返回优化算法信息的一个数据结构;grad是返回目标函数在
本文标题:优化上机指导(Matlab优化工具箱)
链接地址:https://www.777doc.com/doc-2718836 .html