運(yùn)籌學(xué)實(shí)驗(yàn)三
?
實(shí)驗(yàn)3
一、實(shí)驗(yàn)名稱:線性規(guī)劃問題的MATLAB實(shí)現(xiàn)
二、實(shí)驗(yàn)?zāi)康模菏煜と绾卫?/span>MATLAB的優(yōu)化工具箱實(shí)現(xiàn)線性規(guī)劃問題的求解
三、實(shí)驗(yàn)內(nèi)容
1.????? 熟練掌握MATLAB優(yōu)化工具箱(Optimization Toolbox)中求解線性規(guī)劃的函數(shù)linprog。此函數(shù)的用法參見附錄1。
要求:
1) 利用該函數(shù)求解課本(第五版)中的例子:例2-1、例2-2、例2-8、例2-9,例3-6;求解課后作業(yè)2.1(2)、2.5(1)和(2)、3.7(1)、3.8(原問題)。
注:例2-8約束可轉(zhuǎn)化為不等式。format rat將結(jié)果顯示為分式。
2) 實(shí)驗(yàn)報(bào)告中需要給出上述題目的程序代碼和運(yùn)行結(jié)果,模板參考下面的算例。
注意:此函數(shù)輸入要求目標(biāo)最小化,不等式為小于等于,具體問題需先轉(zhuǎn)化為要求的形式;若某一輸入變量缺省,需要以[]代替。
例2-1
程序代碼
format ? rat;
%2.1
? f=[-80;-100];%價(jià)值系數(shù)
? A=[8,4;4,5;3,10;4,6];%約束條件
? b=[360;200;250;200];%約束條件
? lb=[0;0];%決策變量大于0
? [x,fval]=linprog(f,A,b,[],[],lb);
? fmax=-fval;
? disp([x]);%最優(yōu)解
? disp([fmax]);%對(duì)應(yīng)
?
運(yùn)行結(jié)果
Optimal solution found.
?
????? 85/2???? ?
?????? 5?????? ?
?
??? 3900?????? ?
?例2.2
程序代碼
%2.2
? f=[3;2.3;2.5];%價(jià)值系數(shù)
? A=[-90,-20,-40;-40,-80,-60];%約束條件
? b=[-60;-55];%約束條件
? Aeq=[1,1,1];
? beq=[1];
? lb=[0;0;0];%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
?????? 4/7???? ?
?????? 3/7???? ?
?????? 0?????? ?
?
????? 27/10??? ?
例2.8
程序代碼
%2.8
? f=[-7;-12];%價(jià)值系數(shù)
? A=[9,4;4,5;3,10];%約束條件
? b=[36;20;30];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? fmax=-fval;
? disp([x]);%最優(yōu)解
? disp([fmax]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
?????? 2?????? ?
????? 12/5???? ?
?
???? 214/5???? ?
例2.9
程序代碼
%2.9
? f=[-3,1,1];%價(jià)值系數(shù)
? A=[1,-2,1;4,-1,-2;];%約束條件
? b=[11;-3];%約束條件
? Aeq=[-2,0,1];
? beq=[1];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
?????? 4?????? ?
?????? 1?????? ?
?????? 9?????? ?
?
????? -2????? ?
例3.6
程序代碼
%3.6
? f=[2,3,4];%價(jià)值系數(shù)
? A=[-1,-2,-1;-2,1,-3];%約束條件
? b=[-3;-4];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
????? 11/5???? ?
?????? 2/5???? ?
?????? 0?????? ?
????
?28/5??? ?
2.1(2)
程序代碼
%2.1(2)
? clear;
? f=[1,1.5];%價(jià)值系數(shù)
? A=[-1,-3;-1,-1];%約束條件
? b=[-3;-2];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
?????? 3/2???? ?
?????? 1/2???? ?
?
?????? 9/4??? ?
2.5(1)
程序代碼
%2.5(1)
? clear;
? f=[-2,-3,5];%價(jià)值系數(shù)
? A=[-2,5,-1];%約束條件
? b=[-10];%約束條件
? Aeq=[1,1,1];
? beq=[7];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? fval=-fval;
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
????? 45/7???? ?
?????? 4/7???? ?
?????? 0?????? ?
?
???? 102/7??? ? .
2.5(2)
程序代碼
%2.5(2)
? clear;
? f=[-10,-15,-12];%價(jià)值系數(shù)
? A=[5,3,1;-5,6,15;-2,-1,-1];%約束條件
? b=[9;15;-5];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? fval=-fval;
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Linprog ? stopped because no point satisfies the constraints.
3.7(1)
程序代碼
%3.7(1)
? clear;
? f=[1,1];%價(jià)值系數(shù)
? A=[-2,-1;-1,-7];%約束條件
? b=[-4;-7];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? %fval=-fval;
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
????? 21/13??? ?
????? 10/13??? ?
?
????? 31/13??? ?
3.8
程序代碼
%3.8
? clear;
? f=[5,-5,-13];%價(jià)值系數(shù)
? A=[-1,1,3;12,14,10];%約束條件
? b=[20;90];%約束條件
? Aeq=[];
? beq=[];
? lb=zeros(size(f));%決策變量大于0
? [x,fval]=linprog(f,A,b,Aeq,beq,lb);
? fval=-fval;
? disp([x]);%最優(yōu)解
? disp([fval]);%對(duì)應(yīng)
運(yùn)行結(jié)果
Optimal ? solution found.
?
?????? 0?????? ?
????? 35/16??? ?
????? 95/16??? ?
?
???? 705/8??? ?
2.????? 了解圖形界面的優(yōu)化工具——GUI Optimization tool