matlab linprog问题 急救

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:37:29
c = [31,-32,28.5,-29.5,24.5,-28,28.5,-29.5,24,-26,24,-25.5]
A = [1,-1,0,0,0,0,0,0,0,0,0,0;
-1,1,0,0,0,0,0,0,0,0,0,0;
1,-1,1,-1, 0,0,0,0,0,0,0,0;
-1,1,-1,1, 0,0,0,0,0,0,0,0;
1,-1,1,-1, 1,-1,0,0,0,0,0,0;
-1,1,-1,1, -1,1,0,0,0,0,0,0;
1,-1,1,-1, 1,-1,1,-1,0,0,0,0;
-1,1,-1,1, -1,1,-1,1,0,0,0,0;
1,-1,1,-1, 1,-1,1,-1,1,-1,0,0;
-1,1,-1,1, -1,1,-1,1,-1,1,0,0;
1,-1,1,-1, 1,-1,1,-1,1,-1,1,-1;
-1,1,-1,1, -1,1,-1,1,-1,1,-1,1];
b = [1200;300;1200;300;1200;300;1200;300;1200;300;1200;0];
lb=zeros(12,1);
x = linprog(c,A,b,[],[],lb);
Z'= c.*x
运行不出来呀!!!谢谢 帮帮吧
x =
0
300
0
0
1500
0
0
1500
0
0
300
0
Z′ =-6150
答案大致是这种的 这是关于销售计划问题的
Exiting: One or more of the residuals, duality gap, or total relative error
has stalled:
the dual appears to be infeasible (and the primal unbounded).

c =[31,-32,28.5,-29.5,24.5,-28,28.5,-29.5,24,-26,24,-25.5];
A=[1,-1,0,0,0,0,0,0,0,0,0,0;
-1,1,0,0,0,0,0,0,0,0,0,0;
1,-1,1,-1, 0,0,0,0,0,0,0,0;
-1,1,-1,1, 0,0,0,0,0,0,0,0;
1,-1,1,-1, 1,-1,0,0,0,0,0,0;
-1,1,-1,1, -1,1,0,0,0,0,0,0;
1,-1,1,-1, 1,-1,1,-1,0,0,0,0;
-1,1,-1,1, -1,1,-1,1,0,0,0,0;
1,-1,1,-1, 1,-1,1,-1,1,-1,0,0;
-1,1,-1,1, -1,1,-1,1,-1,1,0,0;
1,-1,1,-1, 1,-1,1,-1,1,-1,1,-1;
-1,1,-1,1, -1,1,-1,1,-1,1,-1,1];
b=[1200;300;1200;300;1200;300;1200;300;1200;300;1200;0];
lb=zeros(12,1);
x=linprog(c',A,b,[],[],lb)
Z=c*x
你的程序大致有这几点不大对:
一:等号的输入有问题
二:z=c*x就是c为行向量,x为列向量,所以直接用矩阵乘法
三:linprog的第一个参数应为c',即列向量
结果如下:
x =

1.0e+009 *

0.4355
0.4355
0.4317
0.4317
1.8861
1.8861
0.4561
0.4561
0.8398
0.8398
0.6531
0.6531

Z =

-1.0584e+010