一.问题描述
线形规划最优问题,是指目标函数和约束条件都是线形的函数,所以叫线形规划,我们需要的就是求出在约束条件下最优的目标函数。
二.matlab求解
求解指令为[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub);
f:价值向量
A:耗费矩阵(不等约束)
b:资源向量(不等约束)
Aeq和beq上,但是是等价约束
lb:x(可行解)的下届向量
ub:x的上界向量
注意:在matlab中该命令是最小化目标函数,所以在求解的时候一定记得把公式转化成标准的形式
三.例子
max z=2x1+3x2-5x3
s.t.:
x1+x2+x3=7
2x1-5x2+x3>=10
x1+3x2+x3<=12
x1,x2,x3>=0
根据这个我们很容易就写出了描述矩阵和向量
f=[-2;-3;5];
A=[-2,5,-1;1,3,1];
b=[-10;12];
Aeq=[1,1,1];
beq=[7];
lb=[0;0;0];
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
得到x为
x =
6.4286
0.5714
0.0000
四.拓展
1.可用于求解min |x1|+|x2|。。。。这种模型。
2.当存在多个目标函数的时候,就要把其他的目标转换成约束条件,变成唯一目标函数的线形规划,然后从不同的优化角度进行说明。