在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支--数学规划,而线性规划(LinearProgramming,LP)则是数学规划的一个重要分支。本章会介绍线性规划模型与matlab求解
目录
- 一、线性规划的标准形
- 二、linprog函数求解线性规划
- 三、linprog函数应用举例
一、线性规划的标准形
二、linprog函数求解线性规划
[x,fval]= linprog(c,A,b,Aeq,beq,lb,ub)
matlab输入的参数与上方的模型都一一对应,其中:
x返回决策向量的取值;fval返回目标函数的最优值;
c为价值向量;A和b对应线性不等式约束;matlab默认只能求最小值,若需要求大最大值,给向量c填一个负号即可(得到结果后也记得转换回来);不等式约束同理
Aeq和beq对应线性等式约束;如果没有等式约束,对应参数的输入位置输入[]即可
lb和ub分别对应决策向量的下界向量和上界向量,全部自变量无约束可不写,部分变量无约束可以-inf与inf来表示
三、linprog函数应用举例
c = [-2 -3 5]';
A = [-2 5 -1;1 3 1];
b = [-10 12];
Aeq = ones(1,3);
beq = 7;
lb = zeros(3,1);
[x fval] = linprog(c, A, b, Aeq, beq, lb)
fval = -fval % 注意这个fval要取负号(原来是求最大值,我们添加负号变成了最小值问题)