Matlab优化工具箱简介精品文档12页

上传人:工**** 文档编号:463767395 上传时间:2022-08-17 格式:DOCX 页数:13 大小:38.59KB
返回 下载 相关 举报
Matlab优化工具箱简介精品文档12页_第1页
第1页 / 共13页
Matlab优化工具箱简介精品文档12页_第2页
第2页 / 共13页
Matlab优化工具箱简介精品文档12页_第3页
第3页 / 共13页
Matlab优化工具箱简介精品文档12页_第4页
第4页 / 共13页
Matlab优化工具箱简介精品文档12页_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Matlab优化工具箱简介精品文档12页》由会员分享,可在线阅读,更多相关《Matlab优化工具箱简介精品文档12页(13页珍藏版)》请在金锄头文库上搜索。

1、用MATLAB优化工具箱解线性规划1、模型:min z=cXs.t.AX b命令:x=linprog (c, A, b)2、模型:min z = cXs.t.AX bAeqX = beq命令:x=linprog (c, A, b, Aeq,beq)注意:若没有不等式:AX b存在,则令A= , b=.若没有等式约束,则令Aeq=, beq=.3、模型:min z = cXs.t.AX bAeqX = beqVLB X VUB命令:1 x=linprog(c, A, b, Aeq,beq, VLB, VUB)2 x=linprog(c, A, b, Aeq,beq, VLB, VUB, X0)注

2、意:1若没有等式约束,则令Aeq= , beq= . 2其中X0表示初始点4、命令:x,fval=linprog()返回最优解x及x处的目标函数值fval.例 1 max z = 0.4x + 0.28x + 0.32x + 0.72x + 0.64x + 0.6xst.0.01x + 0.01x + 0.01x + 0.03x + 0.03x + 0.03x 8500.02x + 0.05x 7001 40.02x + 0.05x 1002 50.03x3 + 0.08x6 0 j = 1,2, 6解 编写M文件小xxgh1.m如下:c=-0.4 -0.28 -0.32 -0.72 -0.6

3、4 -0.6;A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08;b=850;700;100;900;Aeq=; beq=;vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)例2 min z = 6 x + 3 x + 4 xs.t.x + x + x = 120x 300 x 20解:编写M文件xxgh2.m如下:c=6 3 4;A=0 1 0;b=50;Aeq=1 1 1;beq=120;vlb=30,0

4、,20;vub=;x,fVal=linprog(c,A,b,Aeq,beq,vlb,vub例3(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、 600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工 费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使 加工费用最低?解设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:min z = 13 x + 9 x +10 x + 11x +

5、12 x + 8 x123456x +x =400x + x = 6 0 025I x + x = 500S 10.4 x + 1.1x + x 8001230.5x +1.2x + 1.3x 0, i = 1,2,6编写M文件xxgh3.m如下:f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 00 0 0 0.5 1.2 1.3;b = 800; 900;Aeq=1 0 0 1 0 00 1 0 0 1 00 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq

6、,vlb,vub)例4.某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平 的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二 级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一 次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?解设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员的工资为:因检验员错检而造成的损失为:故目标函数为:约束条件为:线性规划模型:编写M文件xxgh4.m如下:c = 40;36;A=-5 -3;b=-45;Aeq=;beq=;vlb = z

7、eros(2,1);vub=9;15;%调用linprog函数:x,fval = linprog(c,A,b,Aeq,beq,vlb,vub)结果为:x =9.00000.0000fval =360即只需聘用9个一级检验员。Matlab优化工具箱简介1. MATLAB求解优化问题的主要函数2. 优化函数的输入变量使用优化函数或优化工具箱中其它优化函数时,输入变量见下表:3. 优化函数的输出变量下表:4. 控制参数options的设置Options中常用的几个参数的名称、含义、取值如下: Display:显示水平.取值为off时,不显示输出;取值为iter时,显示每次迭代的信息;取 值为fina

8、l时,显示最终结果.默认值为final.(2) MaxFunEvals:允许进行函数评价的最大次数,取值为正整数.(3) MaxIter:允许进行迭代的最大次数,取值为正整数控制参数options可以通过函数optimset创建或修改。命令的格式如下:(1) options=optimset(optimfun)创建一个含有所有参数名,并与优化函数optimfun相关的默认值的选项结构options.(2) options=optimset(param1,value1,param2,value2,.)创建一个名称为options的优化选项参数,其中指定的参数具有指定值,所有未指定的参数 取默认值

9、.(3) options=optimset(oldops,param1,value1,param2,value2,.)创建名称为oldops的参数的拷贝,用指定的参数值修改oldops中相应的参数.例: opts=optimset(Display,iter,TolFun,1e-8)该语句创建一个称为opts的优化选项结构,其中显示参数设为iter, TolFun参数设为1e-8.用Matlab解无约束优化问题一元函数无约束优化问题min f (x),气 x x2常用格式如下:(1) x= fminbnd (fun,x1,x2)(2) x= fminbnd fun,x1,x2 , options

10、)(3) x, fval= fminbnd (.)(4) x, fval, exitflag= fminbnd (.)(5) x, fval, exitflag, output= fminbnd (.)其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数, 并可能只给出局部最优解。例1求f = 2e-x sin x在0x8中的最小值与最大值主程序为wliti1.m:f=2*exp(-x).*sin(x);fplot(f,0,8);%作图语句xmin,ymin=fminbnd (f, 0,8)f1=-

11、2*exp(-x).*sin(x);xmax,ymax=fminbnd (f1, 0,8)运行结果:xmin = 3.9270ymin = -0.0279xmax = 0.7854ymax = 0.6448例2对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如 何剪法使水槽的容积最大?解设剪去的正方形的边长为x,则水槽的容积为:(3-2x2)x建立无约束优化模型为:min y=-(3 一 2x2)x,0x1.5先编写M文件fun0.m如下:function f=fun0(x)f=-(3-2*x).A2*x;主程序为wliti2.m:x,fval=fminbnd(fun0

12、,0,1.5);xmax=xfmax=-fval运算结果为:xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大, 最大容积为2立方米.2、多元函数无约束优化问题标准型为:min F(X)命令格式为:(1) x= fminunc (fun,X0 );或 x=fminsearch (fun,X0 )(2) x= fminunc (fun,X0,options);或 x=fminsearch (fun,X0,options)(3) x, fval= fminunc (.);或x, fval= fminsearch (.)(4) x, fval, ex

13、itflag= fminunc (.);或x, fval, exitflag= fminsearch(5) x, fval, exitflag, output= fminunc (.);或x, fval, exitflag, output= fminsearch (.)说明: fminsearch是用单纯形法寻优.fminunc的算法见以下几点说明:1 fminunc为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale 控制:LargeScale=on (默认值),使用大型算法LargeScale=off(默认值),使用中型算法fminunc为中型优化算法的搜

14、索方向提供了 4种算法,由options中的参数HessUpdate控制:HessUpdate=bfgs(默认值),拟牛顿法的BFGS公式;HessUpdate=dfp,拟牛顿法的DFP公式;HessUpdate=steepdesc,最速下降法3 fminunc为中型优化算法的步长一维搜索提供了两种算法, 由 options 中参数 LineSearchType 控制:LineSearchType=quadcubic(缺省值),混合的二次和三次多项式插值;LineSearchType=cubicpoly,三次多项式插 使用fminunc和fminsearch可能会得到局部最优解.例 3 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、编写M-文件fun1.m:function f = fun1 (x)f = exp(x(1)*(4*x(1)A2+2*x(2)A2+4*x(1)*x(2)+2*x(2)+1);2、输入M文件wliti3.m如下:x0 = -1, 1;x

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号