一道用matlab求解的线性规划问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:49:33
z=x1+x2+x3+x4+x5+x6+x7
x1+x4+x5+x6+x7>=50
x1+x2+x3+x6+x7>=50
x1+x2+x3+x4+x7>=50
x1+x2+x3+x4+x5>=80
x2+x3+x4+x5+x6>=90
x3+x4+x5+x6+x7>=90

在Matlab软件命令窗口输入如下命令即可:
f=ones(1,7);
a=[1,0,0,1,1,1,1;1,1,1,0,0,1,1;1,1,1,1,0,0,1;1,1,1,1,1,0,0;0,1,1,1,1,1,0;0,0,1,1,1,1,1];
b=[50;50;50;80;90;90];
[x,fval]=linprog(f,-a,-b)

求解结果如下:
x =

1.0e+007 *

2.5242
-3.7863
2.5242
2.5242
-3.7863
2.5242
-3.7863

fval =

-1.2621e+007
表示x1、x2、...x7分别取25242000、-37863000、...-37863000时,
目标函数的最小值
zmin=
12621

若求zmax
则再输入如下命令:
[x,fval]=linprog(-f,-a,-b)
求得结果如下:
x =

1.0e+007 *

0.6230
0.8159
-0.0005
2.1852
0.0001
0.9246
0.5799

fval =

-5.1282e+007

即最大值为
51282000