这是一个用MATLAB求解的线性规划问题,我是matlab的新手,求教大家帮我看看程序。。。。
原来的方程列出来是:Minp=x+y+z=x0+x1+x2+x3+x4+y0+y1+y2+y3+y4+z;s.t.0.5*x1+x2+1.5*x3+2*x4>=240.5...
原来的方程列出来是:
Min p= x + y + z = x0 +x1+x2+x3+x4+y0+y1+y2+y3+y4+z;
s.t.
0.5 * x1 + x2 + 1.5 * x3 +2 * x4 >= 240.5 ;
0.5 * y1 + y2 + 1.5 * y3 +2 * y4 >=290.5 ;
2*z + 2*x0 +1.5*x1+x2+0.5*x3+2*y0+1.5*y1+y2+0.5*y3>=428 ;
x = x0 + x1 + x2 + x3 + x4 ;
y = y0 + y1 + y2 + y3 + y4 ;
根据这个我自己变了个程序是:
f=[1,1,1,1,1,1,1,1,1,1,1];
A=[0 0.5 1 1.5 2 0 0 0 0 0 0;0 0 0 0 0 0 0.5 1 1.5 2 0;2 1.5 1 0.5 0 2 1.5 1 0.5 0 2];
b=[-240.5;-290.5;-428];
xLB=[0,0,0,0,0,0,0,0,0,0,0];
xUB=[inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,229];
x0=[0,0,0,0,120,0,0,0,0,145,0];
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],xLB,xUB,x0)
能输出答案,为:x =
1.0e+035 *
-4.0728
-4.7686
-4.9976
-5.2655
-5.5078
-4.0728
-5.1875
-5.4408
-5.7978
-6.2634
-4.0728
fval =
-5.5447e+036
exitflag =
-3
output =
iterations: 15
algorithm: 'large-scale: interior point'
cgiterations: 0
message: [1x266 char]
constrviolation: 0
firstorderopt: 1.6277e+036
lambda =
ineqlin: [3x1 double]
eqlin: [0x1 double]
upper: [11x1 double]
lower: [11x1 double]
第一是:x的值到底是多少啊。。。我看不懂那个
第二是:我觉得他和我的预期值差的太远了
请大师们帮我忙,觉得我写的有问题的话帮我写一个程序好不好啊 展开
Min p= x + y + z = x0 +x1+x2+x3+x4+y0+y1+y2+y3+y4+z;
s.t.
0.5 * x1 + x2 + 1.5 * x3 +2 * x4 >= 240.5 ;
0.5 * y1 + y2 + 1.5 * y3 +2 * y4 >=290.5 ;
2*z + 2*x0 +1.5*x1+x2+0.5*x3+2*y0+1.5*y1+y2+0.5*y3>=428 ;
x = x0 + x1 + x2 + x3 + x4 ;
y = y0 + y1 + y2 + y3 + y4 ;
根据这个我自己变了个程序是:
f=[1,1,1,1,1,1,1,1,1,1,1];
A=[0 0.5 1 1.5 2 0 0 0 0 0 0;0 0 0 0 0 0 0.5 1 1.5 2 0;2 1.5 1 0.5 0 2 1.5 1 0.5 0 2];
b=[-240.5;-290.5;-428];
xLB=[0,0,0,0,0,0,0,0,0,0,0];
xUB=[inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,229];
x0=[0,0,0,0,120,0,0,0,0,145,0];
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],xLB,xUB,x0)
能输出答案,为:x =
1.0e+035 *
-4.0728
-4.7686
-4.9976
-5.2655
-5.5078
-4.0728
-5.1875
-5.4408
-5.7978
-6.2634
-4.0728
fval =
-5.5447e+036
exitflag =
-3
output =
iterations: 15
algorithm: 'large-scale: interior point'
cgiterations: 0
message: [1x266 char]
constrviolation: 0
firstorderopt: 1.6277e+036
lambda =
ineqlin: [3x1 double]
eqlin: [0x1 double]
upper: [11x1 double]
lower: [11x1 double]
第一是:x的值到底是多少啊。。。我看不懂那个
第二是:我觉得他和我的预期值差的太远了
请大师们帮我忙,觉得我写的有问题的话帮我写一个程序好不好啊 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询