数学建模学习笔记(2.6)MATLAB软件求解线性规划问题
对于利用matlab求线性规划问题主要依赖于matlab自带的优化工具箱
第一种调用格式
x = linprog(c,A,b)
需要注意的是在matlab中都是以数组矩阵储存数值
对应模型
即是最简单的线性规划
第二种调用格式
x = linprog(c,A,b,Aeq,beq)
对应模型
第三种调用格式
[1]x = linprog(c,A,b,Aeq,beq,VLB,VUB)
[2]x = linprog(c,A,b,Aeq,beq,VLB,VUB,X0)
需要注意的是如果
1.如果没有等式约束,Aeq*X=beq,则令Aeq=[ ],beq=[ ],但是不能再命令行输入函数参数时省略
2.x0表示初始点
注
在matlab求解线性规划函数linprog函数中默认为求最小值,所以在求最大值的时候交将其转化为,求表达式负数的最小值
例:
则编写的代码如下:
%首先输入参数,但是注意输入的参数都必须是矩阵形式
c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];
A=[0.01 0.01 0.01 0.03 0.03 0.03;
0.02 0 0 0.05 0 0 ;
0 0.02 0 0 0.05 0 ;
0 0 0.03 0 0 0.08 ];
b=[850; 700; 100; 900];
Aeq = [ ];
beq = [ ];
vlb = [0; 0; 0; 0; 0; 0];
vub = [ ];
[x,fval] = linprog(c, A, b, Aeq, beq, vlb, vub)