matlab中规定线性规划标准形式为
linprog函数
[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)
[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)
- x 为最优解, fval 为最优的目标函数值
- c 为目标函数系数,列向量
- A为小于等于的系数矩阵,b为小于等于值列向量
- Aeq,Beq为等于约束,含义同上
- LB为xi的下界,UB为上界,列向量
- 注意后面的参数可以省略,中间如果有条件用不到,需要用【】占位
matlab中求解线性规划的命令为
[x,fval] = linprog(f,A,b)
[x,fval] = linprog(f,A,b,Aeq,Beq)
[x,fval] = linprog(f,A,b,Aeq,Beq,lb,ub)
x为决策向量的取值,fval返回目标函数的最优值
例如:求解如下现行规划问题
转换成:
不等式转化为小于等于形式:
所以可得代码如下:
f=[-2;-3;5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));‘zeros产生m*n的double类型零矩阵
x,y=-y’由于求的-z,所以y=-y