永发信息网

matlab linprog问题 急救

答案:1  悬赏:20  手机版
解决时间 2021-11-10 12:03
  • 提问者网友:不爱我么
  • 2021-11-10 07:06
matlab linprog问题 急救
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-11-10 08:23
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯