您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 用Matlab软件求线性规划.
Matlab软件1、用Matlab软件求线性规划;教学内容Matlab软件引例—生产计划问题生产炊事用具需要两种资源---劳动力和原材料,某公司制定生产计划,生产三种不同产品,生产管理部门提供的数据如下:产品A产品B产品C资源限量劳动力(h/件)原材料(kg/件)743465150h200kg利润元/件423每天供应原材料200kg,每天可供使用的劳动力为150h,求各种产品的日产量为多少时,总收益最大?Matlab软件问题的求解:产品A产品B产品C资源限量劳动力(h/件)原材料(kg/件)743465150h200kg利润(元/kg)4231、确定决策变量.设生产A产品xA,B产品xB,C产品xC2、确定目标函数.maxZ=4xA+2xB+3xC3、确定约束条件.劳动力:7xA+3xB+6xC≤150原材料:4xA+4xB+5xC≤200非负性约束:xA≥0,xB≥0,xC≥0Matlab软件线性规划的一般形式:目标函数:max(min)z=c1x1+c2x2+c3x3+…+cnxn约束条件:a11x1+a12x2+a13x3+…+a1nxn≤(=≥)b1a21x1+a22x2+a23x3+…+a2nxn≤(=≥)b2…………am1x1+am2x2+am3x3+…+amnxn≤(=≥)bn非负性约束:x1≥0,x2≥0,…,xn≥0Matlab软件模型命令minz=cX,s.t.AX≤Bx=linprog(c,A,b)minz=cX,s.t.AX≤B,Aeq·X=beqx=linprog(c,A,b,Aeq,beq)minz=cX,s.t.AX≤B,Aeq·X=beqVLB≤X≤VUB[1]xlinprog(c,A,b,Aeq,beq,VLB,VUB)[2]x=linprog(c,A,b,Aeq,beq,VLB,VUB,x0)注意:[1]若没有等式约束:Aeq·X=beq,则令Aeq=[],beq=[][2]其中x0表示初始点命令:[x,f]=linprog(…)返回最优解x及x处的目标函数值二、线性规划模型的Matlab命令如下:Matlab软件c=[423];A=[736;445];b=[150;200];VUB=[];Aeq=[];beq=[];VLB=[0;0;0];[x,f]=linprog(c,A,b,Aeq,beq,VLB,VUB)解引例:maxZ=4xA+2xB+3xCs.t.7xA+3xB+6xC≤1504xA+4xB+5xC≤200xA≥0,xB≥0,xC≥0Matlab命令如下:Matlab软件结果输出如下:Optimizationterminatedsuccessfully.x=0.000050.00000.0000f=-100.0000当A、B、C产品的日产量分别为0件,50件,0件时,总收益为100元/件Matlab软件例1max6543216.064.072.032.028.04.0xxxxxxz85003.003.003.001.001.001.0..654321xxxxxxts70005.002.041xx10005.002.052xx90008.003.063xx6,2,10jxj解用Matlab求解过程如下:clearc=[-0.4-0.28-0.32-0.72-0.64-0.6];A=[0.010.010.010.030.030.03;0.02000.0500;00.02000.050;000.03000.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)Matlab软件Optimizationterminatedsuccessfully.x=1.0e+004*3.50000.50003.00000.00000.00000.0000fval=-2.5000e+004即:最优解为x=104(3.5,0.5,3,0,0,0),最优值为z=2.5×104Matlab软件例2321436minxxxz2050030120..321321xxxxxxts解用Matlab求解过程如下:clearc=[634];A=[010];b=[50];Aeq=[111];beq=[120];vlb=[30;0;20];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)Matlab软件Optimizationterminatedsuccessfully.x=30.000050.000040.0000fval=490.0000即最优解为x=(30,50,40),最优值为z=490.Matlab软件某机加小组有甲、乙两台机床,可用于加工三种工件.假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表.问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?例3【任务分配问题】车床类型单位工件所需加工台时数可用台时数单位工件的加工费用工件1工件2工件3工件1工件2工件3甲0.41.11.080013910乙0.51.21.390011128Matlab软件解设在甲车床上加工工件1、2、3的数量分别为321,,xxx在乙车床上加工工件1、2、3的数量分别为654,,xxx可建立以下线性规划模型:6543218121110913minxxxxxxz6,,2,1,09003.12.15.08001.14.0500600400x..654321635241ixxxxxxxxxxxxtsiMatlab软件用Matlab求解如下f=[1391011128];A=[0.41.110000000.51.21.3];b=[800;900];Aeq=[100100010010001001];beq=[400;600;500];vlb=zeros(6,1);vub=[];[x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub)6543218121110913minxxxxxxz6,,2,1,09003.12.15.08001.14.0500600400x..654321635241ixxxxxxxxxxxxtsiMatlab软件结果为:x=0.0000600.00000.0000400.00000.0000500.0000fval=1.3800e+004即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800.Matlab软件某皮鞋公司每日8小时的皮鞋产量不低于1800双.为了进行质量控制,计划聘请两种不同水平的检验员.一级检验员的标准为速度25双/小时,正确率98%,计时工资4元/小时;二级检验员的标准为速度15双/小时,正确率95%,计时工资3元/小时.检验员每错检一次,企业要损失2元.为使总检验费用最省,该公司应聘一级、二级检验员各几名?例4【人员聘任问题】Matlab软件解设需要一级和二级检验员的人数分别为21,xx人,则应付检验员的工资为212124323848xxxx因检验员错检而造成的损失为21211282)%5158%2258(xxxx故目标函数为2121213640)128()2432(minxxxxxxz约束条件为0,0180015818002581800158258212121xxxxxxMatlab软件213640minxxz0,01594535..212121xxxxxxts线性规划模型用Matlab求解如下:c=[40;36];A=[-5-3];b=[-45];Aeq=[];beq=[];vlb=zeros(2,1);vub=[9;15];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)结果为x=9.00000.0000fval=360即只需聘用9个一级检验员.
本文标题:用Matlab软件求线性规划.
链接地址:https://www.777doc.com/doc-3506999 .html