1、用Matlab软件求线性规划;
教学内容
引例—生产计划问题
生产炊事用具需要两种资源---劳动力和原材料,某
公司制定生产计划,生产三种不同产品,生产管理部
门提供的数据如下:
产品A
产品B
产品C
资源限量
劳动力(h/件)
原材料(kg/件)
7
4
3
4
6
5
150h
200kg
利润元/件
4
2
3
每天供应原材料200kg,每天可供使用的劳动力为150h,
求各种产品的日产量为多少时,总收益最大?
问题的求解:
产品A
产品B
产品C
资源限量
劳动力(h/件)
原材料(kg/件)
7
4
3
4
6
5
150h
200kg
利润(元/kg)
4
2
3
1、,B产品xB, C产品xC
2、确定目标函数. max Z= 4xA+2xB +3xC
3、: 7xA+3xB +6xC≤150
原材料: 4xA+4xB +5xC≤200
非负性约束: xA≥0,xB≥0 ,xC≥0
线性规划的一般形式:
目标函数:max(min)z=c1x1+c2x2+c3x3+…+cnxn
约束条件:a11x1+a12x2+a13x3+…+a1nxn ≤(= ≥)b1
a21x1+a22x2+a23x3+…+a2nxn ≤(=≥)b2
…………
am1x1+am2x2+am3x3+…+amnxn ≤(= ≥)bn
非负性约束:x1 ≥0,x2 ≥0,…,xn ≥0
模型
命令
min z=cX,
. AX≤B
x=linprog(c,A,b)
min z=cX,
. AX≤B,Aeq·X=beq
x=linprog(c,A,b,Aeq,beq)
min z=cX,
. AX≤B,Aeq·X=beq VLB≤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命令如下:
c=[4 2 3];
A=[7 3 6;4 4 5];
b=[150;200]; VUB=[ ];Aeq=[ ];beq=[ ];
VLB=[0;0;0]; [x,f]=linprog(c,A,b,Aeq,beq, VLB,VUB)
解引例:
max Z= 4xA+2xB +3xC
. 7xA+3xB +6xC≤150
4xA+4xB +5xC≤200
xA≥0,xB≥0 ,xC≥0
Matlab命令如下:
结果输出如下:
Optimization terminated essfully.
x =
f = -
当A、B、C产品的日产量分别为0件,50件,0件时,
总收益为100元/件
例1 max
解用Matlab求解过程如下:
>>clear
>> c=[- - - - - -];
>> A=[ ; 0 0 0 0;
0 0 0 0 ;0 0 0 0 ];
>> 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)
Optimization terminated essfully.
x =
+004 *
fval =
-+004
即:最优解为x=104(,,3,0,0,0),最优值为z=×104
例2
解用Matlab求解过程如下:
>> clear
>> 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)
用matlab软件求线性规划. 来自淘豆网m.daumloan.com转载请标明出处.