用MATLAB求解线性规划
步骤:
- 找到目标函数z=c1x1+c2x2+...+cnxn(因变量需为自变量的线性函数)
- 找到三类约束条件(线性):(1)找出不等式约束条件:如a11x1+a12x2+…+a1nxn= (≥,≤) b1 ; a21x1+a22x2+…+a2nxn= (≥,≤) b2 ………………………………… am1x1+am2x2+…+amnxn= (≥,≤) bm; (2)找出等式约束条件:如如a11x1+a12x2+…+a1nxn=b1 ; (3)找出自变量取值约束条件:如x1,x2,…,xn≥0
- 利用进行求解
代码语法如下:
模型:min z=cX // Matlab线性规划只能求解目标函数最小值若,要求cX的最大值则求min -z=-cX
约束:A*X<=b // 不等式约束条件,>=可通过正负号转换为<=
Aeq*X=beq // 等式约束条件
VLB<=X<=VUB // 自变量取值约束条件
命令:[x,fval]=linprog(c,A,b,Aeq,beq,VLB,VUB,x0)
- Notes
- 任一约束不存在则取[]
- x0表示线性规划的初始点,在定义域内即可
- [x,fval]返回最优解x以及x处目标函数值fval
- X为列向量,任何约束条件均写为对应的矩阵形式