机械优化设计的MATLAB实现.ppt
《机械优化设计的MATLAB实现.ppt》由会员分享,可在线阅读,更多相关《机械优化设计的MATLAB实现.ppt(65页珍藏版)》请在三一办公上搜索。
1、MATLAB在机械优化设计中的应用,湖南农业大学 工学院2007年9月,主讲:*,绪 论,1.1 MATLAB系统简介,MATLAB 名字由 MATrix 和 LABoratory 两词的前三个字母组合而成。那是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的接口,此即用 FORTRAN 编写的萌芽状态的 MATLAB。经几年的校际流传,在 Little 的推动下,由 Little、Moler、Steve Bangert 合作,于 198
2、4 年成立了 MathWorks 公司,并把 MATLAB 正式推向市场。从这时起,MATLAB 的内核采用 C 语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST,瑞典的 LUND 和 SIMNON,德国的 KEDDC)纷纷淘汰,而改以 MATLAB 为平台加以重建。在时间进入 20 世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上 30 几个数学类科技应用软件中,MATLAB 在数值计算方面独占鳌头,而
3、Mathematica 和 Maple 则分居符号计算软件的前两名。,Mathcad 因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把 MATLAB 作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB 是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。在国际学术界,MATLAB 已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到 MATLAB 的应用。在设计研究单位和工业部门,MAT
4、LAB 被认作进行高效研究、开发的首选软件工具。如美国 National Instruments 公司信号测量、分析软件 LabVIEW,Cadence 公司信号和通信分析设计软件 SPW 等,或者直接建筑在 MATLAB 之上,或者以 MATLAB 为主要支撑。又如 HP 公司的 VXI 硬件,TM 公司的 DSP,Gage 公司的各种硬卡、仪器等都接受 MATLAB 的支持。MATLAB具有以下几个特点:功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱 优化工具箱中的所有函数都对应一个MATLAB 6.5 的.M文件(关于.M文件请查阅相关MATLAB 6.5
5、 文献),这些.M通过使用MATLAB 6.5 基本语句实现了具体的优化算法.可以在 MATLAB 6.5 命令窗口键入命令:type function_name,来查看相应函数的代码.,1.2 优化工具箱的工程应用步骤,当量化地求解一个实际的最优化问题时,首先要把这个问题转化为一个数学问题.建立数学模型:然后对建立的数学模型进行具体分析选择合适的优化算法:最后根据选定的优化算法,编写计算程序进行求解用MATLAB 6.优化工具箱解决实际应用问题可以概括为以下三个步骤:(1)根据所提出的最优化问题,建立最优化问题的数学模型确定变量,列出约束条件和目标函数(2)对所建立的模型进行具体分析和研究选
6、择合适的最优化求解方法(3)根据最优化方法的算法,列出程序框图,选择优化函数和编写语言程序,用计算机求出最优解 利用MATLAB的优化工具箱,可以求解线性规划,非线性规划和多目标规划问题。具体而言,包括线性,非线性最小化,最大最小化,二次规划,半无限问题,线性,非线性方程化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便,快捷的途径。,1.3 优化问题的工程背景随着生产,经济,技术的发展,工程技术,管理人才在实际工作中常常会面临这类问题:在工程设计中,怎样的分配方案既能满足各方面的基本要求,又能降低成本;在资源配中,怎样的分配既能满足各方面的基
7、本要求,又能获得好的经济效益;在生产计划安排中,选择怎样的计划才能提高产值和利润;在原料配比问题中,怎样确定各种万分的比例才能提高质量,降低成本;在城建规划中,怎样安排工厂,机关,学校,商店,医院,住宅和其它单位的合理布置,才能方面群众,有利于城市各行各行的发展这一类问题的共同点就是迁出最合理,达到事先预定的最优目标的方案,这就是工程问题最优化问题 最优化方法发展很快,包含多个分支,如线性规划,整数规划,非线性规划,动态规划,多目标规划等。,2.1 线性规划问题与MATLAB实现 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB解决的线性规划问题的标准形式为:min f(x)x
8、 R s.t.A.xb Aeq.x=beq lb x ub其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变换化为此标准形式。在MATLAB6.5版中,线性规划问题(Linear Programming)已用函数linprog取其它形式的线性规划问题都可经过适当变换化为此标准形式。函数 linprog 调用格式 x=linprog(f,A,b)%求min f=f(x)x Rs.t.A.xb 线性规划的最优解。x=linprog(f,A,b,Aeq,beq)%等式约束Aeq.x=beq,若没有不等式约束,则A=,b=。x=linprog(f,A,b,
9、Aeq,beq,lb,ub)%指定x的范围lbxub,若没有等式约束Aeq.x=beq,则Aeq=,beq=x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0 x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数,x,fval=linprog()%返回目标函数最优值,即fval=f(x)。x,fval,lambda,exitflag=linprog()%lambda为解x的Lagrange乘子。x,favl,lambda,fval,exitflag=linprog()%exitflag为终止迭代的错误条
10、件。x,fval,lambda,exitflag,output=linprog()%output为关于优化的一些信息说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterati
11、ons表示PCG迭代次数。例 求下面的优化问题(P95),MATLAB求解程序清单为:首先输入下列系数f=-60;-120;A=9,4;3,10;4,5;b=360,300,200;lb=zeros(2,1);ub=;然后调用linprog函数:x,fval,exitflag,output,lambda=linprog(f,A,b,lb,ub)计算结果为:x=20.0000%最优解 24.0000fval=-4.0800e+003%最优值 exitflag=1%收敛output=iterations:5%迭代次数 algorithm:large-scale:interior point%所使用
12、规则 cgiterations:0 message:Optimization terminated.lambda=ineqlin:3x1 double eqlin:0 x1 double upper:2x1 double lower:2x1 double,作业:求下面的优化问题首先输入下列系数f=-0.1,-0.12,-0.15,-0.12,-0.08;A=1,-1,-1,-1,-1;0,-1,1,-1,1;b=0,0;Aeq=1,1,1,1,1;beq=1;lb=zeros(5,1);ub=;x,fval,exitflag,output=linprog(f,A,b,Aeq,beq,lb,ub
13、)结果为:x=0.0000 0.2500 0.5000 0.2500 0.0000%最优解 fval=-0.1350%最优值exitflag=1%收敛output=iterations:6 algorithm:large-scale:interior point cgiterations:0 message:Optimization terminated.,作业2:求下面的优化问题首先输入下列系数f=-5,4,2;A=6,-1,1;1,2,4;b=8,10;lb=-1,0,0;ub=3,2,inf;x,fval,exitflag,output=linprog(f,A,b,lb,ub)结果为:x
14、=1.3333 0.0000 0.0000%最优解 fval=-6.6667%最优值exitflag=1%收敛output=iterations:7 algorithm:large-scale:interior point cgiterations:0 message:Optimization terminated.,3 非线性无约束优化问题与MATLAB实现 3.1 单变量最小化问题 本节讨论只有一个变量时的无约束最优化问题,即一维搜索问题该问题是多变量最优化问题的基础利用MATLAB解决非线性无约束优化问题的标准形式为:min f(x)s.t.x1 x x2 其中x、x1、x2 为标量,f
15、(x)为函数,返回标量在MATLAB中,单变量非线性无约束优化问题调用函数 fminbndfminbnd函数是一个M文件,其算法基于黄金分割法和抛物线插值函数 fminbnd 调用格式:x=fminbnd(fun,x1,x2)%返回区间x1,x2 上fun参数指定的优化参数进行求解x=fminbnd(fun,x1,x2,options)%用options参数指定的优化参数进行求解x=fminbnd(fun,x1,x2,options,P1,P2,)%提供另外的参数P1,P2等,传输给目标函数fun如果没有设置options 选项,则令options=x,fval=fminbnd()%返回x处目
16、标函数的值x,fval,exitflag=fminbnd()%返回exitflag值描述fminbnd 函数的退出条件x,fval,exitflag,output=fminbnd()%返回包含优化信息的结构输出注:目标函数须是连续的,只能求出局部最优解,只用于实数变量,例3.1 求下面的优化问题(P52,黄金分割法)对函数f(x)=x2+2x,当给定搜索区间(-3x 5),求其最小值x.编一个M文件=jxyh3_1fun(x).m,返回x处的函数值f.function y=jxyh3_1fun(x)y=x2+2*x;%目标函数的M文件输入下列系数options=optimset(Display
17、,iter);%设置优化参数x,fval,exitflag,output=fminbnd(jxyh3_1fun,-3,5,options)结果为:x=-1%最优解fval=-1%最优值exitflag=1%收敛output=iterations:5 funcCount:8 algorithm:golden section search,parabolic interpolation message:1x112 char,计算过程Func-count x f(x)Procedure 3 0.0557281 0.114562 initial 4 1.94427 7.66874 golden 5-1
18、.11146-0.987578 golden 6-1-1 parabolic 7-0.999967-1 parabolic 8-1.00003-1 parabolic,例 3.2 求下面的优化问题(P52,黄金分割法)某工厂有一张边长为5cm的正方形的铁板,欲制成一个方形无盖水槽,问在该铁板的4个角处剪去多大的相等的正方形才能使水槽的容积最大解设剪去的正方形的边长为x,则水槽的容积为:f(x)=(5-2x)2x,当给定搜索区间(0 x 2.5),求其最小值x.编一个M文件=jxyh3_2fun(x).m,返回x处的函数值f.function y=jxyh3_2fun(x)Y=-(5-2*x)2
19、*x;%目标函数的M文件输入下列系数options=optimset(Display,iter);%设置优化参数x,fval,exitflag,output=fminbnd(jxyh3_2fun,0,2.5,options)结果为:x=0.8333%最优解fval=-9.2593%最优值exitflag=1%收敛output=iterations:8 funcCount:11algorithm:golden section search,parabolic interpolation message:1x112 char,计算过程 Func-count x f(x)Procedure 3 0.
20、954915-9.11863 initial 4 1.54508-5.63562 golden 5 0.59017-8.61046 golden 6 0.863729-9.25013 parabolic 7 0.839751-9.25885 parabolic 8 0.832336-9.25925 parabolic 9 0.833301-9.25926 parabolic 10 0.833335-9.25926 parabolic 11 0.833368-9.25926 parabolic,.1 多变量无约束最优化问题 本节讨论多变量时的无约束最优化问题另外许多的有约束最优化问题可以转化为无
21、约束最优化问题进行求解求解无约束最优化问题的方法主要有两类,直接搜索法(包含单线形法,Pavell共轭方向法等)与梯度法(包含最速下降法,Newton法,共多轭梯度法和拟牛顿等)利用MATLAB解决多变量非线性无约束优化问题的标准形式为:min f(x)其中x为矢量,f(x)为函数,返回标量在MATLAB中,多变量非线性无约束优化问题调用函数 fminuncfminunc函数是一个M文件,其算法基于黄金分割法和抛物线插值函数 fminunc 调用格式:x=fminbnd(fun,x0)%给定初值x0,求fun 函数的局部极小点xx0可以是标量,矢量,矩阵x=fminunc(fun,x0,opt
22、ions)%用options参数指定的优化参数进行求解x,fval=fminunc()%返回x处目标函数的值到fvalx,fval,exitflag=fminunc()%返回exitflag值描述fminunc 函数的退出条件x,fval,exitflag,output=fminunc()%返回包含优化信息的结构输出x,fval,exitflag,output,grad=fminunc()%解x处fun函数的梯度值返回到grad中x,fval,exitflag,output,grad,hess=fminunc()%解x处fun函数的hess矩阵信息返回到hess中,例.1 求下面的优化问题(梯
23、度法)对函数f(x)=x12+25x22,当给定初值x0=2,2,求其最小值x.编一个M文件=jxyh4_1fun(x).m,返回x处的函数值f.function y,g=jxyh4_1fun(x)function y=jxyh4_1fun(x);%目标函数的M文件if nargout1 g(1)=2*x(1);%用提供的梯度g使函数最小化 g(2)=50*x(2);end输入下列系数options(6)=1;options(7)=1;%采用DFP变尺度方法立方插值法options=optimset(Display,iter,LargeScale,on,GradObj,on);%设置优化参数x
24、0=2,2;x,fval,exitflag,output,grad=fminunc(jxyh4_1fun,x0,options)结果为:x=1.0e-013*0.1155 0.0044fval=1.3825e-028exitflag=1,output=iterations:1 funcCount:2 cgiterations:1 firstorderopt:2.3093e-014 algorithm:large-scale:trust-region Newton message:1x137 chargrad=1.0e-013*0.2309 0.2220 Norm of First-order
25、Iteration f(x)step optimality CG-iterations 0 104 100 1 1.38248e-028 2.82843 2.31e-014 1,例.2 求下面的优化问题(变尺度法)对函数f(x)=x12+2x22-4x1-2x1x2,当给定初值x0=1,1,求其最小值x.编一个M文件=jxyh4_2fun(x).m,返回x处的函数值f.function y=jxyh4_2fun(x)y=x(1)2+2*x(2)2-4*x(1)-2*x(1)*x(2);%目标函数的M文件输入下列系数options(6)=0;options(7)=0;%采用DFP方法混合插值法o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 MATLAB 实现

链接地址:https://www.31ppt.com/p-2219559.html