由于时间的关系,本文旨在上手就能用,参考书目《数学建模算法与应用》
标准形式:
目标函数
z
=
m
i
n
x
c
T
x
z=\mathop{min}\limits_{x}c^Tx
z=xmincTx
边界条件
s
.
t
.
{
A
x
⩽
b
A
e
q
⋅
x
=
b
e
q
l
b
⩽
x
⩽
u
b
s.t. \begin{cases} Ax\leqslant{b}\\ Aeq\cdot{x}=beq\\ lb\leqslant{x}\leqslant{ub} \end{cases}
s.t.⎩⎪⎨⎪⎧Ax⩽bAeq⋅x=beqlb⩽x⩽ub
函数形式:
[
x
,
f
v
a
l
]
=
l
i
n
p
r
o
g
(
c
,
A
,
b
,
A
e
q
,
b
e
q
,
l
b
,
u
b
,
x
0
,
o
p
t
i
o
n
s
)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,x_0,options)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,x0,options)
[
x
,
f
v
a
l
]
=
l
i
n
p
r
o
g
(
c
,
A
,
b
)
[x,fval]=linprog(c,A,b)
[x,fval]=linprog(c,A,b)
[
x
,
f
v
a
l
]
=
l
i
n
p
r
o
g
(
c
,
A
,
b
,
A
e
q
,
b
e
q
)
[x,fval]=linprog(c,A,b,Aeq,beq)
[x,fval]=linprog(c,A,b,Aeq,beq)
[
x
,
f
v
a
l
]
=
l
i
n
p
r
o
g
(
c
,
A
,
b
,
A
e
q
,
b
e
q
,
l
b
,
u
b
)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
这里
f
v
a
l
fval
fval为返回目标函数的值,l
b
b
b和
u
b
ub
ub为变量
x
x
x的上界和下界,
x
0
x_0
x0是x的初始值,
o
p
t
i
o
n
option
option是控制参数
c
c
c和
x
x
x是n为列向量
A
A
A为不等式的系数矩阵,
b
b
b为不等式的适当维列向量
A
e
q
Aeq
Aeq为等式的系数矩阵,
b
e
q
beq
beq为等式的适当维列向量
注:此处函数所求值为最小值,若是求最大值需加负号
暂不补充实例,若明年还参加数学建模会接着更新= =