如何用MATLAB处理线性规划问题
2个回答
展开全部
利用linprog()函数就可以了,下面是我做的一个题,给你参考一下:
求解线性规划问题:
min z=-0.9*x1-0.45*x2+0.05*x3-1.4*x4-0.95*x5-0.45*x6-1.9*x7-1.45*x8-0.95*x9
s.t.
x1+x2+x3<=2000;
x4+x5+x6<=2500;
x7+x8+x9<=1200;
-0.4*x1+0.6*x2+0.6*x3<=0;
-0.2*x1-0.2x4+0.8*x7<=0;
-0.7*x2+0.3*x5+0.3*x8<=0;
-0.5*x2-0.5*x5+0.8*x8<=0;
-0.6*x3-0.6*x6+0.4*x9<=0;
现在用matlab求解这个问题得到的结果是:
Optimization terminated.
x =
1.0e+003 *
0.5800
1.4200
0.0000
0.2862
2.2138
0.0000
0.1005
1.0995
0.0000
fval =
5.4500e+003
源程序如下:
f=[-0.9;-0.45;0.05;-1.4;-0.95;-0.45;-1.9;-1.45;-0.95];
A=[1 1 1 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 1
-0.4 0 0 0.6 0 0 0.6 0 0
-0.2 0 0 -0.2 0 0 0.8 0 0
0 -0.7 0 0 0.3 0 0 0.3 0
0 -0.5 0 0 -0.5 0 0 0.5 0
0 0 -0.6 0 0 -0.6 0 0 0.4];
B=[2000;2500;1200;0;0;0;0;0];
lb=zeros(9,1); %生成一个9*1的零矩阵,来作为X的取值直下界(lower bound)
[x,fval]=linprog(f,A,B,[],[],lb) %两个中括号表示条件中无等号的约束,如果有等号约束SX=D,在第一个中括号中填入S,第二个填入D即可。lb是X的下界约束,如果还有上界约束ub,将函数写成[x,fval]=linprog(f,A,B,[],[],lb,ub)就可以了。
说明:此题的最优解是fval,是当变量取值为x时取得的。需要补充一点的是,matlab中默认的LP问题标准形式是min z=CX,AX<=b,但是对X的取值可以自选为lb<X<ub,所以在求解问题的时候需要将问题标准化。
求解线性规划问题:
min z=-0.9*x1-0.45*x2+0.05*x3-1.4*x4-0.95*x5-0.45*x6-1.9*x7-1.45*x8-0.95*x9
s.t.
x1+x2+x3<=2000;
x4+x5+x6<=2500;
x7+x8+x9<=1200;
-0.4*x1+0.6*x2+0.6*x3<=0;
-0.2*x1-0.2x4+0.8*x7<=0;
-0.7*x2+0.3*x5+0.3*x8<=0;
-0.5*x2-0.5*x5+0.8*x8<=0;
-0.6*x3-0.6*x6+0.4*x9<=0;
现在用matlab求解这个问题得到的结果是:
Optimization terminated.
x =
1.0e+003 *
0.5800
1.4200
0.0000
0.2862
2.2138
0.0000
0.1005
1.0995
0.0000
fval =
5.4500e+003
源程序如下:
f=[-0.9;-0.45;0.05;-1.4;-0.95;-0.45;-1.9;-1.45;-0.95];
A=[1 1 1 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 1
-0.4 0 0 0.6 0 0 0.6 0 0
-0.2 0 0 -0.2 0 0 0.8 0 0
0 -0.7 0 0 0.3 0 0 0.3 0
0 -0.5 0 0 -0.5 0 0 0.5 0
0 0 -0.6 0 0 -0.6 0 0 0.4];
B=[2000;2500;1200;0;0;0;0;0];
lb=zeros(9,1); %生成一个9*1的零矩阵,来作为X的取值直下界(lower bound)
[x,fval]=linprog(f,A,B,[],[],lb) %两个中括号表示条件中无等号的约束,如果有等号约束SX=D,在第一个中括号中填入S,第二个填入D即可。lb是X的下界约束,如果还有上界约束ub,将函数写成[x,fval]=linprog(f,A,B,[],[],lb,ub)就可以了。
说明:此题的最优解是fval,是当变量取值为x时取得的。需要补充一点的是,matlab中默认的LP问题标准形式是min z=CX,AX<=b,但是对X的取值可以自选为lb<X<ub,所以在求解问题的时候需要将问题标准化。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询