线性规划
matlab解简单的线性规划仅需要三步:
1.化标准型
matlab中化标准型与我们学习单纯型法化标准型相反:
- 首先我们需要把目标函数化为最小值(仅需要添加一个负号就足够了)
- 其次将约束条件化为小于形式(也是添加一个负号就足够)
2.赋值变量
变量 | 含义 |
---|---|
f | 目标函数系数列向量 |
a | 约束条件系数矩阵 |
b | 约束条件常数列向量 |
Aeq | 等式约束系数 |
Beq | 等式约束系数 |
lb,ub/zeros(x,y) | 决策变量上下界 |
3.使用函数
[x,y] = linprog(f,a,b,Aeq,beq,lb,ub)
eg:
m a x z = 2 x 1 + 3 x 2 − 5 x 3 max z = 2x_1+3x_2-5x_3 maxz=2x1+3x2−5x3
s . t { x 1 + x 2 + x 3 = 7 2 x 1 − 5 x 2 + x 3 ≥ 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 s.t \begin{cases} x_1+x_2+x_3=7 & \text{} \\ 2x_1-5x_2+x_3\geq10& \text{} \\ x_1+3x_2+x_3\leq12\text{} \\ x_1,x_2,x_3\geq0\text{} \\ \end{cases} s