优化模型在matlab中的求解问题
明巍
数学与统计学院
[1]线性规划
[2]无约束优化
主要内容
[3]非线性规划
线性规划
用MATLAB优化工具箱解线性规划
min z=cX
1. 模型:
命令:x=linprog(c, A, b)
2. 模型:min z=cX
命令:x=linprog(c,A,b,Aeq,beq)
注意:若没有不等式: 存在,则令A=[ ],b=[ ].
3. 模型:min z=cX
VLB≤X≤VUB
命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB)
[2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0)
注意:[1] 若没有等式约束: , 则令Aeq=[ ], beq=[ ].
[2]其中X0表示初始点
4. 命令:[x,fval]=linprog(…)
返回最优解x及x处的目标函数值fval.
解编写M文件如下:
c=[- - - - - -];
A=[ ; 0 0 0 0;0 0 0 0;0 0 0 0 ];
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)
min=-*x1-*x2-*x3-*x4-*x5-*x6;
*x1+*x2+*x3+*x4+*x5+*x6<=850;
*x1+*x4<=700;
*x2+*x5<=100;
*x3+*x6<=900;
x1>=0;
x2>=0;
x3>=0;
x4>=0;
x5>=0;
x6>=0;
Lingo求解程序:
解: 编写M文件如下:
c=[6 3 4];
A=[0 1 0];
b=[50];
Aeq=[1 1 1];
beq=[120];
vlb=[30,0,20];
vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
min=6*x1+3*x2+4*x3;
x1+x2+x3=120;
x1>=30;
x2>=0;
x2<=50;
x3>=20;
Lingo求解程序:
例3 任务分配问题:某车间有甲、乙两台机床,,三种工件的数量分别为400、600和500,,才能既满足加工工件的要求,又使加工费用最低?
明魏老师课件 来自淘豆网m.daumloan.com转载请标明出处.