程序: f=[-70 -120]; A=[9 4 ;4 5;3 10 ]; b=[3600;2000;3000]; lb=[0 0]; ub=[];
[x,fval,exitflag]=linprog(f,A,b,[],[],lb,ub) maxf=-fval 结果: x = 200.0000 240.0000
fval =
-4.2800e+004
exitflag = 1 maxf =
4.2800e+004
例5:求解实例2 建立数学模型:
max f=0.15x1+0.1x2+0.08 x3+0.12 x4 s.t x1-x2- x3- x4≤0 x2+ x3- x4≥0 x1+x2+x3+ x4=1
xj≥0 j=1,2,3,4 将其转换为标准形式:
min z=-0.15x1-0.1x2-0.08 x3-0.12 x4 s.t x1-x2- x3- x4≤0 -x2- x3+ x4≤0 x1+x2+x3+ x4=1
xj≥0 j=1,2,3,4
程序: f = [-0.15;-0.1;-0.08;-0.12];
A = [1 -1 -1 -1
0 -1 -1 1];
b = [0; 0]; Aeq=[1 1 1 1]; beq=[1]; lb = zeros(4,1);
[x,fval,exitflag] = linprog(f,A,b,Aeq,beq,lb) f=-fval 结果:x = 0.5000 0.2500 0.0000 0.2500
fval =
-0.1300
exitflag =
1
f =
0.1300
即4个项目的投资百分数分别为50%,25%,0, 25%时可使该公司获得最大的收益,其最大收益可到达13%。过程正常收敛。
例6:求解实例3 建立数学模型:
设ai j为由工厂i运到市场j的费用,xi j 是由工厂i运到市场j的箱数。bi是工厂i的产量,dj是市场j的需求量。
[endif]-->
b= ( 60 40 50 )T d= ( 20 35 33 34 )T
s.t
x i j≥0
程序: A=[2 1 3 2;1 3 2 1;3 4 1 1]; f=A(:);
B=[ 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1]; D=[1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0