机械优化设计matlab-十四讲_第1页
机械优化设计matlab-十四讲_第2页
机械优化设计matlab-十四讲_第3页
机械优化设计matlab-十四讲_第4页
机械优化设计matlab-十四讲_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一维优化问题一维优化问题的数学模型为:

在matlab中,一维优化问题,也就是一维搜索问题的实现是由函数fminbnd来实现的。具体的调用格式如下:调用格式1:X=fminbnd(FUN,x1,x2)这种格式的功能是:返回在区间(x1,x2)中函数FUN最小值对应的X值。调用格式2:[X,FVAL]=fminbnd(FUN,x1,x2)这种格式的功能是:同时返回解x和在点x处的目标函数值。

案例如图,有一块边长为6m的正方形铝板,四角截去相等的边长为x的方块并折转,造一个无盖的箱子,问如何截法(x取何值)才能获得最大容器的箱子,只写出这一优化问题的数学模型。用matlab软件的优化工具箱求解。

根据题意,该无盖箱子的长和宽均为6-2x,高为x,取设计变量x根据长方体容积表达式,得:建立约束优化问题数学模型得Matlab程序一:[x,xfval]=fminbnd(‘-x*(6-2*x)^2’,0,3)Matlab程序二:首先编写m文件functionf=volf(x)f=-(6-2*x)^2*x然后,调用fminbnd函数求解[X,FVAL]=fminbnd(@volf,0,3)无约束非线性规划问题在MATLAB优化工具箱函数中,有以下两个函数用来求解上述问题:fminunc、fminsearchfminunc

调用格式1:X=fminunc(FUN,X0)

这种格式的功能是:给定起始点X0,求函数FUN的局部极小点X。其中,X0可以是一个标量、向量或者矩阵。调用格式2:[X,FVAL]=fminunc(FUN,X0)

这种格式的功能是:同时返回解x和在点x处的目标函数值。1.求函数F=sin(x)+3的最小值点。functionf=demfun(x)f=sin(x)+3然后,在命令窗口中输入:X=fminunc(@demfun,2)得到X=4.7124求函数的极小点。

在命令窗口中输入X=fminunc(@(x)5*x(1)^2+x(2)^2,[5;1])x=1.0e-006*-0.7898-0.07022.fminsearchfminsearch使用单纯形法,一种直接搜索的方法。调用格式1:X=fminsearch(FUN,X0)这种格式的功能是:给定起始点X0,求函数FUN的局部极小点X。其中,X0可以是一个标量、向量或者矩阵。调用格式2:[X,FVAL]=fminsearch(FUN,X0)这种格式的功能是:同时返回解x和在点x处的目标函数值。局限性:(1)应用该函数可能会得到局部最优解。(2)该函数只对实数进行最小化。如果x为复数时,必须将它分为实数部和虚数部。求解函数的最小值点。方法一:直接在MATLAB命令窗口中输入:[x0,fval]=fminsearch(’2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2’,[0,0]);方法二:在MATLAB的M编辑器中建立函数文件用来保存所要求解最小值的函数:functionf=demfun1(x)f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2;保存为demfun1.m。然后,在命令窗口中调用该函数,这里有两种调用方式:调用方式一:在命令窗口中输入:[x,fval]=fminsearch('demfun1',[0,0])调用方式二:在命令窗口中输入:[x,fval]=fminsearch(@demfun1,[0,0])得到的结果X=1.00160.8335Fval=-3.32411.线性规划约束优化问题f=[-7;-5];A=[3,2;4,6;0,7];b=[90;200;210];lb=zeros(2,1);[x,fval]=linprog(f,A,b,[],[],lb)调用linprog函数2一般的约束非线性最优化问题约束非线性最优化是指目标函数和约束函数都是定义在n维欧几里得空间上的实值连续函数,并且至少有一个是非线性的。X=fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,NONLCON)这个函数格式同上,同时,约束中增加由函数NONLCON定义的非线性约束条件,在函数NONLCON的返回值中包含非线性等式约束Ceq(X)=0和非线性不等式C(X)<=0。其中,C(X)和Ceq(X)均为向量。求解如下形式的约束非线性规划问题

首先,编制两个函数文件,分别保存目标函数和约束函数目标函数文件

functionf=objfun(x)f=5*x(1)^2+2*x(2)^2约束函数文件function[c,ceq]=confun(x)c=1.5/x(1)-x(2);ceq=[];最后,调用fmincon函数求解[X,FVAL]=fmincon(@(x)objfun(x),[1;2],[],[],[],[],[],[],@(x)confun(x))案例1薄铁板长20cm,折成梯形槽,求梯形侧边多长及底角多大,才会使槽的断面积最大。写出这一优化设计问题的数学模型。用matlab软件的优化工具箱求解.解取梯形侧边和底角作为设计变量,分别为x1,x2。建立优化问题的数学模型如下:functionf=fun1(x)a=pi/180;f=-(20-2*x(1))*x(1)*sin(x(2)*a)-x(1)^2*sin(x(2)*a)*cos(x(2)*a);

>>x0=[1,10]';lb=[0,0]';ub=[20,90]';>>[x,fmin]=fmincon(@fun1,x0,[],[],[],[],lb,ub)符号表示法fun='-(20-2*x(1))*x(1)*sin(x(2)*pi/180)-x(1)^2*sin(x(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论