matlab规定了线性规划的标准形式为:
min cTx (求最大值用-c)
s . t . { A x ≤ b ( 不 等 式 约 束 条 件 ) ( 当 出 现 > 时 , 把 对 应 行 系 数 乘 以 负 号 即 可 ) A e q x = b e q ( 等 式 约 束 条 件 ) l b ≤ x ≤ u b ( x 上 下 界 ) s.t. \begin{cases} Ax \leq b (不等式约束条件)(当出现>时,把对应行系数乘以负号即可)\\ Aeqx = beq (等式约束条件)\\ lb \leq x \leq ub (x上下界) \end{cases} s.t.⎩⎪⎨⎪⎧Ax≤b(不等式约束条件)(当出现>时,把对应行系数乘以负号即可)Aeqx=beq(等式约束条件)lb≤x≤ub(x上下界)
c,x,b,beq,lb,ub为列向量,A,Aeq为矩阵,c称为价值向量,b称为资源向量。
matlab里面的命令为:
[x,fval] = linprog(c,A,b)
[x,fval] = linprog(c,A,b,Aeq,beq)
[x,fval] = linprog(c,A,b,Aeq,beq,lb,ub)
x返回的是决策向量的取值,fval返回的是目标函数的最优解。