用matlab优化工具箱解线性规划_第1页
用matlab优化工具箱解线性规划_第2页
用matlab优化工具箱解线性规划_第3页
用matlab优化工具箱解线性规划_第4页
用matlab优化工具箱解线性规划_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

用 MATLAB 优化工具箱解线性规划min z=cX bAXts.1、模型:命令:x=linprog(c,A,b ) 2、模型:beqX .mintsz命令:x=linprog(c,A,b ,Aeq,beq)注意:若没有不等式: 存在,则令 A= ,b= . 若没有等式约束, 则令 Aeq= , beq= .3、模型: VUBXL beqA .mintscz命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB)2 x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:1 若没有等式约束, 则令 Aeq= , beq= . 2其中 X0 表示初始点 4、命令:x,fval=linprog()返回最优解及处的目标函数值 fval.例 1 max 654321 .0.72.0.8.04. xxxz 83. ts5.24.908.036x,21jxj解 编写 M 文件小 xxgh1.m 如下:c=-0.4 -0.28 -0.32 -0.72 -0.64 -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 32146minxz10.ts5023x解: 编写 M 文件 xxgh2.m 如下:c=6 3 4;A=0 1 0;b=50;Aeq=1 1 1;beq=120;vlb=30,0,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。可建立以下线性规划模型: 6542 809minxxxz 6,21,09035.846535241ixxtsi编写 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;单 位 工 件 所 需 加 工 台 时 数 单 位 工 件 的 加 工 费 用 车 床类 型 工 件 1 工 件 2 工 件 3 工 件 1 工 件 2 工 件 3 可 用 台时 数 甲 0.4 1. 1.0 13 9 10 80 乙 0.5 1.2 1.3 1 12 8 90 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,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=;21214384xx2121 8)%525( x212121 3640)8()43(minxxz 0,185212x21364minxz0,59 .21xtsvlb = zeros(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. 优化函数的输出变量下表:类 型 模 型 基 本 函 数 名 一 元 函 数 极 小 Min F( x) s.tx10,则 x为 解 ;否 则 ,x不 是 最 终 解 ,它 只 是 迭 代 制 止时 优 化 过 程 的 值 所 有 优 化 函 数 fval 解 x处 的 目 标 函 数 值 linprog,quadprog,fgoaltain, fmcnfminmaxlsqcurveftlsqol, fminbd exitflag 描 述 退 出 条 件 : exitflag0,表 目 标 函 数 收 敛 于 解 x处 =表 已 达 到 函 数 评 价 或 迭 代的 最 大 次 数 exitflag 0,且 a11 a12;同理, p2 = b2 - a21 x1- a22 x2 , b2, a21, a22 02成本与产量成负指数关系甲的成本随其产量的增长而降低,且有一个渐进值,可以假设为负指数关系,即:,111 crcerqx同理, 0222模型建立总利润为: z(x1,x2)=(p1-q1)x1+(p2-q2)x2若根据大量的统计数据,求出系数 b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,1=0.015,c1=20, r2=100,2=0.02,c2=30,则问题转化为无约束优化问题:求甲,乙两个牌号的产量 x1,x2,使总利润 z 最大.为简化模型,先忽略成本,并令 a12=0,a21=0,问题转化为求:z1 = ( b1 - a11x1 ) x1 + ( b2 - a22x2 ) x2 的极值. 显然其解为 x1 = b1/2a11 = 50, x2 = b2/2a22 = 70,我们把它作为原问题的初始值.模型求解1.建立 M-文件 fun.m: function f = fun(x)y1=(100-x(1)- 0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1);y2=(280-0.2*x(1)- 2*x(2)-(100*exp(-0.02*x(2)+30)*x(2);f=-y1-y2;2.输入命令:x0=50,70;x=fminunc(fun,x0),z=fun(x)3.计算结果:x=23.9025, 62.4977, z=6.4135e+003即甲的产量为 23.9025,乙的产量为 62.4977,最大利润为 6413.5.非线性规划1、 二次规划用 MATLAB 软件求解,其输入格式如下:1. x=quadprog(H,C,A,b);2. x=quadprog(H,C,A,b,Aeq,beq);3. x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB);4. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0);标 准 型 为 : Min Z= 2XTH+cTX s.t AX=b beq VLB X VUB 5. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options);6. x,fval=quaprog(.);7. x,fval,exitflag=quaprog(.);8. x,fval,exitflag,output=quaprog(.);例 1 min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22s.t. x1+x22-x1+2x2 2x10, x20 1、写成标准形式: 212121 6 1- ),(min xxxz T2120 xs.t.2、 输入命令:H=1 -1; -1 2; c=-2 ;-6;A=1 1; -1 2;b=2;2;Aeq=;beq=; VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)3、运算结果为:x =0.6667 1.3333 z = -8.2222一般非线性规划标准型为:min F(X)s.t AX=b G(X)beqXA 0Ceq(X)=0 VLB X VUB其中 X 为 n 维变元向量,G(X)与 Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用 Matlab 求解上述问题,基本步骤分三步:1. 首先建立 M 文件 fun.m,定义目标函数 F(X):function f=fun(X);f=F(X);2.若约束条件中有非线性约束: G(X) 或 Ceq(X)=0,则建立M文件0nonlcon.m定义函数G(X)与Ceq(X):function G,Ceq=nonlcon(X)G=.Ceq=.3. 建立主程序 .非线性规划求解的函数是 fmincon,命令的基本格式如下:(1) x=fmincon(fun,X0,A,b)(2) x=fmincon(fun,X0,A,b,Aeq,beq)(3) x=fmincon(fun,X0,A,b, Aeq,beq,VLB,VUB)(4) x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon)(5)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon,options) (6) x,fval= fmincon(.)(7) x,fval,exitflag= fmincon(.)(8)x,fval,exitflag,output= fmincon(.)注意:1 fmincon 函数提供了大型优化算法和中型优化算法。默认时,若在 fun 函数中提供了梯度(options 参数的 GradObj 设置为on) ,并且只有上下界存在或只有等式约束,fmincon 函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon 函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用 BFGS 法更新拉格朗日 Hessian 矩阵。3 fmincon 函数可能会给出局部最优解,这与初值 X0 的选取有关。例 2 2121minxxfs.t. 0,546321x1、 写成标准形式: s.t. 0546321x20212minxf2、先建立 M-文件 fun3.m:function f=fun3(x);f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)23、再建立主程序 youh2.m:x0=1;1;A=2 3 ;1 4; b=6;5;Aeq=;beq=;VLB=0;0; VUB=;x,fval=fmincon(fun3,x0,A,b,Aeq,beq,VLB,VUB)4、运算结果为:x = 0.7647 1.0588fval = -2.0294例 3 015. )1242()min2211xxts xefx1先建立 M 文件 fun4.m,定义目标函数:function f=fun4(x); f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2再建立 M 文件 mycon.m 定义非线性约束:function g,ceq=mycon(x)g=x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;3主程序 youh3.m 为 :x0=-1;1;A=;b=;Aeq=1 1;beq=0;vlb=;vub=;x,fval=fmincon(fun4,x0,A,b,Aeq,beq,vlb,vub,mycon)3. 运算结果为:x = -1.2250 1.2250fval = 1.8951例4资金使用问题设有400万元资金, 要求4年内使用完, 若在一年内使用资金 x万元, 则可得效益万元(效益不能再使用),当年不用的资金可存入银行, 年利率为10%. 试制定出资金的x使用计划, 以使4年效益之和为最大.设变量 表示第 i年所使用的资金数,则有ix4,321,04.532. 8.40ma4321 4321ixxxtsxxzi1先建立 M 文件 fun44.m,定义目标函数:function f=fun44(x)f=-(sqrt(x(1)+sqrt(x(2)+sqrt(x(3)+sqrt(x(4);2再建立 M 文件 mycon1.m 定义非线性约束:

温馨提示

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

最新文档

评论

0/150

提交评论