早教吧作业答案频道 -->数学-->
matlab 线性规划min z= -x(2)+2x(3)s.t.x(1)-2x(2)+x(3)=2x(2)-3x(3)+x(4)=1x(2)-x(3) +x(5)=2x(j)>=0 j=1,...5 x()括号中的表示下标用matlab 哥们,看来你是很懂matlab了,有三个等式约束,但是为什么你的st距阵要写成5*5
题目详情
matlab 线性规划
min z= -x(2)+2x(3)
s.t.x(1)-2x(2)+x(3)=2
x(2)-3x(3)+x(4)=1
x(2)-x(3) +x(5)=2
x(j)>=0 j=1,...5
x()括号中的表示下标
用matlab
哥们,看来你是很懂matlab了,
有三个等式约束,但是为什么你的st距阵要写成5*5的呢?还有我看help中写的是Aeq和Beq是等式约束的系数和右端向量,我的题中应该算是等式约束吧,为什么Aeq和Beq都要付成零?为什么要把等式约束的矩阵系数付到st中?(st不是表示了线性规划中不等式约束条件吗?)还有你只给了lb不用给ub吗?放心了,积分不会少了你的!
min z= -x(2)+2x(3)
s.t.x(1)-2x(2)+x(3)=2
x(2)-3x(3)+x(4)=1
x(2)-x(3) +x(5)=2
x(j)>=0 j=1,...5
x()括号中的表示下标
用matlab
哥们,看来你是很懂matlab了,
有三个等式约束,但是为什么你的st距阵要写成5*5的呢?还有我看help中写的是Aeq和Beq是等式约束的系数和右端向量,我的题中应该算是等式约束吧,为什么Aeq和Beq都要付成零?为什么要把等式约束的矩阵系数付到st中?(st不是表示了线性规划中不等式约束条件吗?)还有你只给了lb不用给ub吗?放心了,积分不会少了你的!
▼优质解答
答案和解析
上次的确错了,我又看了看《线性规划》.x(4)和x(5)是不是松弛变量啊?不是的话,就是以下程序.
clear;clc
fmin=[0;-1;2;0;0]; %min z= -x(2)+2x(3)
Aeq=[1 -2 1 0 0 %s.t.x(1)-2x(2)+x(3)=2
0 1 -3 1 0 %x(2)-3x(3)+x(4)=1
0 1 -1 0 1] %x(2)-x(3) +x(5)=2 ;
beq=[2;1;2];
st=[0 0 0 0 0];
b=[0];
lb=zeros(5,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
x =
6.5000
2.5000
0.5000
0.0000
0.0000
fval =
-1.5000
如果是松弛变量,则程序为:
clear;clc
fmin=[0;-1;2]; %min z= -x(2)+2x(3)
Aeq=[1 -2 1]%s.t.x(1)-2x(2)+x(3)=2
st=[0 1 -3 %x(2)-3x(3)+x(4)=1
0 1 -1] %x(2)-x(3) +x(5)=2 ;
beq=[2];
b=[1;2];
lb=zeros(3,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
x =
6.5000
2.5000
0.5000
fval =
-1.5000
可以看出,无论是否加松弛变量x(4)和x(5),Matlab的结果都一样.
原来那个是错的【注:以下程序是错的,放在这里以纪念自己的鲁莽】
clear;clc
fmin=[0;-1;2;0;0]; %min z= -x(2)+2x(3)
st=[1 -2 1 0 0 %s.t.x(1)-2x(2)+x(3)=2
0 1 -3 1 0 %x(2)-3x(3)+x(4)=1
0 1 -1 0 1 %x(2)-x(3) +x(5)=2
0 0 0 0 0
0 0 0 0 0];
b=[2;1;2;0;0]; Aeq=[0 0 0 0 0]; beq=[0];lb=zeros(5,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
Optimization terminated successfully.
x =
3.2500
2.5000
0.5000
0.0000
0.0000
fval = -1.5000
exitflag = 1
output =
iterations:7
cgiterations:0
algorithm:'lipsol'
lambda =
ineqlin:[5x1 double]
eqlin:0
upper:[5x1 double]
lower:[5x1 double]
clear;clc
fmin=[0;-1;2;0;0]; %min z= -x(2)+2x(3)
Aeq=[1 -2 1 0 0 %s.t.x(1)-2x(2)+x(3)=2
0 1 -3 1 0 %x(2)-3x(3)+x(4)=1
0 1 -1 0 1] %x(2)-x(3) +x(5)=2 ;
beq=[2;1;2];
st=[0 0 0 0 0];
b=[0];
lb=zeros(5,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
x =
6.5000
2.5000
0.5000
0.0000
0.0000
fval =
-1.5000
如果是松弛变量,则程序为:
clear;clc
fmin=[0;-1;2]; %min z= -x(2)+2x(3)
Aeq=[1 -2 1]%s.t.x(1)-2x(2)+x(3)=2
st=[0 1 -3 %x(2)-3x(3)+x(4)=1
0 1 -1] %x(2)-x(3) +x(5)=2 ;
beq=[2];
b=[1;2];
lb=zeros(3,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
x =
6.5000
2.5000
0.5000
fval =
-1.5000
可以看出,无论是否加松弛变量x(4)和x(5),Matlab的结果都一样.
原来那个是错的【注:以下程序是错的,放在这里以纪念自己的鲁莽】
clear;clc
fmin=[0;-1;2;0;0]; %min z= -x(2)+2x(3)
st=[1 -2 1 0 0 %s.t.x(1)-2x(2)+x(3)=2
0 1 -3 1 0 %x(2)-3x(3)+x(4)=1
0 1 -1 0 1 %x(2)-x(3) +x(5)=2
0 0 0 0 0
0 0 0 0 0];
b=[2;1;2;0;0]; Aeq=[0 0 0 0 0]; beq=[0];lb=zeros(5,1);
[x,fval,exitflag,output,lambda]=linprog(fmin,st,b,Aeq,beq,lb)
运行结果:
Optimization terminated successfully.
x =
3.2500
2.5000
0.5000
0.0000
0.0000
fval = -1.5000
exitflag = 1
output =
iterations:7
cgiterations:0
algorithm:'lipsol'
lambda =
ineqlin:[5x1 double]
eqlin:0
upper:[5x1 double]
lower:[5x1 double]
看了 matlab 线性规划min...的网友还看了以下:
-x(a-x)(x-b)-mn(a-x)(b-x)的公因式是什么.不.选择里没有A.x(a-x)B 2020-04-08 …
已知:f(x)=lg(a^x-b^x)(a>1>b>0)若f(x)在(1,+∞)内恒为正,试比较a 2020-05-13 …
设X为正整数,则存在正整数a和b,使得(1+b-2a)/(a^2-b)=,则a和b的值分别为多少答 2020-05-15 …
(1)如果3x-2/x+1=3+m/x+1则m=-5(2) 如果5x-3/x+2=5+m/x+2则 2020-05-16 …
1.[a/(ab-b²)-b/(a²-ab)]÷[1+(a²+b²)/2ab],其中a=-1+根号 2020-05-16 …
b-a=b^3-a^3/a^2+ab+b^2这个式子变形正确吗可是当a=b=0时,分母是0,不就不 2020-06-06 …
如果a>b,说说下列不等式组的解集(1)X>a,X<b.(2)X<a.X<b.(3)X>b,X<a 2020-06-26 …
一些因式分解1](x-2y)^2-3*(x-2y)-102]x^2-2xy+4x-4y+43](x 2020-07-18 …
matlab怎么解决这个方程等于0时x的值呢,谢谢(cos(a+x)*cos(c+x)*cos(a 2020-07-31 …
1.设a,b,m是实数,则ma=mb是a=b的()条件A.充分非必要B.必要非充分C.充要D.非充分 2020-11-01 …