线性规划的Matlab标准形式及软件求解
一、线性规划的Matlab标准形式
m i n x c T x min_{x}c^Tx minxcTx
s
.
t
.
{
A
x
<
=
b
A
e
q
∗
x
=
b
e
q
l
b
≤
x
≤
u
b
s.t.\left\{\begin{aligned} Ax<=b \\ Aeq*x = beq \\ lb \leq x \leq ub \end{aligned} \right.
s.t.⎩⎪⎨⎪⎧Ax<=bAeq∗x=beqlb≤x≤ub
其中
c
,
x
,
b
,
b
e
q
,
l
b
,
u
b
c,x,b,beq,lb,ub
c,x,b,beq,lb,ub为列向量,
c
c
c称为价值向量,
b
b
b称为资源向量,
A
.
A
e
q
A.Aeq
A.Aeq为矩阵。
二、Matlab求解
matlab种求解线性规划的代码为:
变量解释: x返回决策向量的取值,fval返回的是目标函数的最优值,c为价值向量,A,b对应的是线性不等式约束,Aeq,beq对应线性等式约束,lb,ub分别对应的是决策向量的下界和上界向量。
[x,fval]=linprog(c,A,b)
[x,fval]=linprog(c,A,b,Aeq,beq)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
上面三行代码对应不同的情况:
1、 只有线性不等式约束
2、 线性不等式约束和线性等式约束
3、 线性不等式约束和线性等式约束以及决策向量上下界
三、Matlab求解例子
matlab程序如下:
c=[-2;-3;5];
a=[-2,5,-1;1,3,1];b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(c,a,b,aeq,beq,zeros(3,1));
x,y=-y
参考链接
(仅作学习笔记)