线性规划
1.线性规划问题
在一组线性约束条件的限制下,求一线性目标函数最大或者最小的问题。
2.线性规划的Matlab标准形式及问题求解
式中:f,x,b,beq,lb,ub为列向量,其中 f 称为价值向量,b称为资源向量, A,Aeq为矩阵。
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]=linprog(f,A,b,Aeq,beq,lb,ub,x0,OPTIONS)
[x,fval]=linprog(----)
[x,fval,exitflag,output]=linprog(----)
[x,fval,exitflag,output,lambda]=linprog(----)
式中:x返回决策向量的取值,即最优值;
fval返回目标函数的最优值;
A和b对应线性不等式约束;
Aeq和beq对应线性等式约束;
lb和ub分别对应决策向量的下界向量和上界向量;
x0是x的初始值;OPTIONS是控制参数,为指定参数进行最小化;
exitflag表示收敛数;output表示迭代次数;
3.线性规划例题
例1:求解下列线性规划问题。
解:(1)化成matlab标准型,即:
(2)求解的matlab程序如下:
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));
x
y=-y
程序运行结果:
求得的最优解为x1=6.4286,x2=0.5714,x3=0,对应的最优值为z=14.5714
例2:求解下列线性规划问题:
解:编写matlab程序如下:
c=[2;3;1];
a=[1,4,2;3,2,0];
b=[8;6]
[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))
%这里没有等式约束,对应的矩阵为空矩阵
程序运行结果:
求得的最优解为x1=2,x2=0,x3=3,对应的最优值为z=7
优质资料分享:数学建模优化建模实例
https://wenku.baidu.com/view/c9bbe914b8d528ea81c758f5f61fb7360a4c2bd1.html