--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!
案例 如图,有一块边长为6m的正方形铝板,四角截去相等的边长为x的方块并折转,造一个无盖的箱子,问如何截法(x取何值)才能获得最大容器的箱子,只写出这一优化问题的数学模型。用matlab软件的优化工具箱求解。 根据题意,该无盖箱子的长和宽均为6-2x,高为x,取设计变量x 根据长方体容积表达式,得: 建立约束优化问题数学模型得 Matlab程序一: [x,xfval]=fminbnd(‘-x*(6-2*x)^2’,0,3) 案例1 薄铁板宽20cm,折成梯形槽,求梯形侧边多长及底角多大,才会使槽的断面积最大。写出这一优化设计问题的数学模型。用matlab软件的优化工具箱求解. 解 取梯形侧边和底角作为设计变量,分别为x1,x2。建立优化问题的数学模型如下: 符号表示法 fun='-(20-2*x(1))*x(1)*sin(x(2)*pi/180)-x(1)^2*sin(x(2)*pi/180)*cos(x(2)*pi/180)'; x0=[1,10]';lb=[0,0]';ub=[20,90]'; [xopt,fopt]=fminsearch(fun,x0) xopt = 6.6667 60.0001fopt = -57.7350 function f=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) * * 无约束优化问题 一维优化问题 一维优化问题的数学模型为: 在matlab中,一维优化问题,也就是一维搜索问题的实现是由函数fminbnd来实现的。 具体的调用格式如下: 调用格式1: X=FMINBND(FUN,x1,x2) 这种格式的功能是:返回在区间(x1,x2)中标量函数FUN的最小值。 调用格式2: [X,FVAL]=FMINDBND(FUN,x1,x2) 这种格式的功能是:同时返回解x和在点x处的目标函数值。 Matlab程序二: 首先编写m文件 function f=volf(x) f=-(6-2*x)^2*x 然后,调用fminbnd函数求解 [X,FVAL]=fminbnd(@volf,0,3) 无约束非线性规划问题 在MATLAB优化工具箱函数中,有以下两个函数用来求解上述问题: fminunc、fminsearch Fminunc 调用格式1:X=FMINUNC(FUN,X0) 这种格式的功能是:给定起始点X0,求函数FUN的局部极小点X。其中,X0可以是一个标量、向量或者矩阵。 调用格式2:[X,FVAL]=FMINUNC(FUN,X0) 这种格式的功能是:同时返回解x和在点x处的目标函数值。 1. 求函数F=sin(x)+3的最小值点。 function f=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.0702 2. Fminsearch Fminsearch使用单纯形法,一种直接搜索的方法。 调用格式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编辑器中建立函数