您的位置:首页 > 编程语言 > MATLAB

用MATLAB优化工具箱解线性规划

2012-09-29 09:50 260 查看


[/b][/b] 命令:x=linprog[/b](c[/b],A[/b],b[/b]) [/b] 2[/b]、模型:[/b][/b]

[/b] [/b] [/b]命令:x=linprog[/b](c[/b],A[/b],b[/b],Aeq,beq[/b])[/b] 注意:若没有不等式:[/b]

存在,则令A=[ ][/b],b=[ ]. [/b]若没有等式约束, [/b]则令Aeq=[ ], beq=[ ].[/b] 3[/b]、模型:[/b]

[/b] [/b] 命令:[1] x=linprog[/b](c[/b],A[/b],b[/b],Aeq,beq, VLB[/b],VUB[/b])[/b] [2] x=linprog[/b](c[/b],A[/b],b[/b],Aeq,beq, VLB[/b],VUB, X0[/b]) [/b] 注意:[1] [/b]若没有等式约束, [/b]则令Aeq=[ ], beq=[ ]. [2][/b]其中X0[/b]表示初始点 [/b] 4[/b]、命令:[x,fval]=linprog(…)[/b] 返回最优解x及x处的目标函数值fval.[/b] 例1 [/b] max











解 [/b]编写M[/b]文件小xxgh1.m[/b]如下:[/b] c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];[/b] 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] b=[850;700;100;900];[/b] Aeq=[]; beq=[];[/b] vlb=[0;0;0;0;0;0]; vub=[];[/b] [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)[/b] x =[/b] 1.0e+004 *[/b] 3.5000[/b] 0.5000[/b] 3.0000[/b] 0.0000[/b] 0.0000[/b] 0.0000[/b] fval =[/b] -2.5000e+004[/b] [/b] 例2 [/b]









[/b] 解: [/b]编写M[/b]文件xxgh2.m[/b]如下:[/b] c=[6 3 4];[/b] A=[0 1 0];[/b] b=[50];[/b] Aeq=[1 1 1];[/b] beq=[120];[/b] vlb=[30,0,20];[/b] vub=[]; [/b] [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub[/b] 例3 [/b](任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。[/b] 假定这两台车床的可用台时数分别为800[/b]和900[/b],三种工件的数量分别为400[/b]、[/b] 600[/b]和500[/b],且已知用三种不同车床加工单位数量不同工件所需的台时数和加工[/b] 费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使[/b] 加工费用最低?[/b]

[/b] 解 [/b]设在甲车床上加工工件1[/b]、2[/b]、3[/b]的数量分别为x1[/b]、x2[/b]、x3[/b],在乙车床上[/b] 加工工件1[/b]、2[/b]、3[/b]的数量分别为x4[/b]、x5[/b]、x6[/b]。可建立以下线性规划模型:[/b]

[/b]

[/b] [/b] [/b] [/b] 编写M[/b]文件xxgh3.m[/b]如下:[/b] f = [13 9 10 11 12 8];[/b] A = [0.4 1.1 1 0 0 0[/b] 0 0 0 0.5 1.2 1.3];[/b] b = [800; 900];[/b] Aeq=[1 0 0 1 0 0[/b] 0 1 0 0 1 0[/b] 0 0 1 0 0 1];[/b] beq=[400 600 500];[/b] vlb = zeros(6,1);[/b] vub=[];[/b] [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)[/b] [/b] 例4[/b].某厂每日8[/b]小时的产量不低于1800[/b]件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25[/b]件/[/b]小时,正确率98%[/b],计时工资4[/b]元/[/b]小时;二级检验员的标准为:速度15[/b]小时/[/b]件,正确率95%[/b],计时工资3[/b]元/[/b]小时。检验员每错检一次,工厂要损失2[/b]元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?[/b] 解 [/b]设需要一级和二级检验员的人数分别为x1[/b]、x2[/b]人,[/b] 则应付检验员的工资为:[/b]


[/b]
因检验员错检而造成的损失为:[/b]


[/b] [/b]
故目标函数为:[/b]


[/b] [/b]
约束条件为:[/b]


[/b] [/b] [/b] [/b] [/b]
线性规划模型:[/b]


[/b] [/b]


[/b] [/b] [/b] [/b] [/b] [/b] 编写M[/b]文件xxgh4.m[/b]如下:[/b] [/b] c = [40;36];[/b] A=[-5 -3];[/b] b=[-45];[/b] Aeq=[];[/b] beq=[];[/b] vlb = zeros(2,1);[/b] vub=[9;15]; [/b] %[/b]调用linprog[/b]函数:[/b] [x,fval] = linprog(c,A,b,Aeq,beq,vlb,vub)[/b] [/b] 结果为:[/b] x =[/b] 9.0000[/b] 0.0000[/b] fval =360[/b] [/b] 即只需聘用9[/b]个一级检验员。[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: