linprog,是一种求解线性规划问题的指令。其主要求解有约束条件下的目标函数的最优解。
在使用linprog函数时,需先定义相关变量。
变量f定义了目标函数的系数
约束条件为不等式时被表示为Ax≤b
变量A定义了约束条件的系数
变量b定义了约束条件的不等号右边的常数
变量lb和ub分别对应决策的下界向量和上界向量,即所求解需满足大于等于lb并小于等于ub
约束条件为等式时被表示为Ax=b
变量Aeq定义了约束条件的系数
变量beq定义了约束条件的等式右边的常数
在定义了以上变量之后输入
[x,fval,exitflag]=linprog(f,A,b,Aeq,beq,lb)
来调用linprog函数从而得到目标函数在约束条件下的最优解
其中x为所得到的最优解,fval为目标函数的最优数值,exitflag则判断最优解是否存在,若存在则为1,若不存在则为0
若使所得到的最优解为整数,即若需进行整数规划时,则可采用intlinprog函数,使用方法为
[x,fval,exitflag]=intlinprog(f,intcon,A,b,Aeq,beq,lb)
其中变量intcon为整数约束变量的位置
对变量定义的matlab代码为
>> A=[24;6;23;5];
>> f=[24;6;23;5];
>> A=[1 1 0 0
0 0 1 1
0 42 0 45];
>> b=[1;1;80];
>> lb=zeros(4,1);
>> Aeq=[1 1 0 0
0 0 1 1];
>> beq=[1;1];
>> intcon=1:4;
<