Z必须是最小值,因此,需要改变一下等式左右两边
也就是不等式变矩阵
约束条件 vlb:决策变量最小值
vub:最大值
zeros: 使用zeros(n)创建一个n行n列的零矩阵
若不存在不等式约束,用“[]”代替A和b:[x,fval]=linprog(f,[],[],Aeq,beg,lb,ub) ·
若不存在等式约束,用“[]”代替Aeq和beq:[x,fval]=linprog(f,A,b,[],[],lb,ub) ·
没有等式约束和最小、最大取值的约束时,可以不写Aeq,beq和lb,ub:[x,fval]=linprog(f,A,b)
若题目求最大值:目标函数等号两端加符号转为求最小值;求解后目标值再取负 MATLAB求解线性规划
代码如下:
c=[-3 1 1];
A=[1 -2 1;4 -1 -2];
b=[11;-3];
Aeq=[-2 0 1];
beq=1;
vlb=zeros(3,1);
vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)