資源描述:
《運(yùn)用matlab進(jìn)行線(xiàn)性規(guī)劃求解(實(shí)例)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、8.2線(xiàn)性規(guī)劃 線(xiàn)性規(guī)劃是處理線(xiàn)性目標(biāo)函數(shù)和線(xiàn)性約束的一種較為成熟的方法,目前已經(jīng)廣泛應(yīng)用于軍事、經(jīng)濟(jì)、工業(yè)、農(nóng)業(yè)、教育、商業(yè)和社會(huì)科學(xué)等許多方面。8.2.1基本數(shù)學(xué)原理線(xiàn)性規(guī)劃問(wèn)題的標(biāo)準(zhǔn)形式是:或?qū)懗删仃囆问綖椋壕€(xiàn)性規(guī)劃的標(biāo)準(zhǔn)形式要求使目標(biāo)函數(shù)最小化,約束條件取等式,變量非負(fù)。不符合這幾個(gè)條件的線(xiàn)性模型可以轉(zhuǎn)化成標(biāo)準(zhǔn)形式。MATLAB采用投影法求解線(xiàn)性規(guī)劃問(wèn)題,該方法是單純形法的變種。8.2.2有關(guān)函數(shù)介紹在MATLAB工具箱中,可用linprog函數(shù)求解線(xiàn)性規(guī)劃問(wèn)題。linprog函數(shù)的調(diào)用格式如下:●x=linprog(f,A,b):求解問(wèn)題minf'
2、*x,約束條件為A*x<=b?!駒=linprog(f,A,b,Aeq,beq):求解上面的問(wèn)題,但增加等式約束,即Aeq*x=beq。若沒(méi)有不等式約束,則令A(yù)=[],b=[]?!駒=linprog(f,A,b,Aeq,beq,lb,ub):定義設(shè)計(jì)x的下界lb和上界ub,使得x始終在該范圍內(nèi)。若沒(méi)有等式約束,令A(yù)eq=[],beq=[]?!駒=linprog(f,A,b,Aeq,beq,lb,ub,x0):設(shè)置初值為x0。該選項(xiàng)只適用于中型問(wèn)題,默認(rèn)時(shí)大型算法將忽略初值?!駒=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用
3、options指定的優(yōu)化參數(shù)進(jìn)行最小化?!馵x,fval]=linprog(…):返回解x處的目標(biāo)函數(shù)值fval。●[x,lambda,exitflag]=linprog(…):返回exitflag值,描述函數(shù)計(jì)算的退出條件。●[x,lambda,exitflag,output]=linprog(…):返回包含優(yōu)化信息的輸出參數(shù)output?!馵x,fval,exitflag,output,lambda]=linprog(…):將解x處的拉格朗日乘子返回到lambda參數(shù)中。調(diào)用格式中,lambda參數(shù)為解x處包含拉格朗日乘子的結(jié)構(gòu)。它有以下一些字段:lowe
4、r—下界lbupper—上界ubineqlin—線(xiàn)性不等式eqlin—線(xiàn)性等式exitflag參數(shù)表示算法終止的原因,下面列出不同值對(duì)應(yīng)的退出原因:1函數(shù)在解x處有解0迭代次數(shù)超過(guò)options.MaxIter-2沒(méi)有找到可行點(diǎn)-3問(wèn)題無(wú)解-4執(zhí)行算法時(shí)遇到NaN-5原問(wèn)題和對(duì)偶問(wèn)題都不可行-7搜索方向太小,不能繼續(xù)前進(jìn)。8.2.3應(yīng)用實(shí)例例8-2 某河流邊有兩個(gè)化工廠,流經(jīng)第一個(gè)化工廠的河水流量是每天500萬(wàn)立方米,在兩個(gè)工廠之間有一條流量為200萬(wàn)立方米的支流(如圖8-1所示)。第一個(gè)化工廠每天排放工業(yè)污水2萬(wàn)立方米,第二個(gè)化工廠每天排放工業(yè)污水1.4萬(wàn)立
5、方米,從第一個(gè)化工廠排出的污水流到第二個(gè)化工廠之前,有20%可自然凈化。根據(jù)環(huán)保要求,河流中工業(yè)污水的含量應(yīng)不大于0.2%,因此兩個(gè)化工廠都必須各自處理凈化一部分污水,第一個(gè)化工廠處理污水的成本是0.1元∕立方米,第二個(gè)化工廠處理污水的成本是0.08元∕立方米。問(wèn)在滿(mǎn)足環(huán)保要求的條件下,各化工廠每天應(yīng)處理多少污水,才能使兩廠總的處理污水費(fèi)用最少?第一化工廠 第二化工廠圖8-1 解:設(shè),分別表示第一個(gè)化工廠和第二個(gè)化工廠每天處理的污水量(萬(wàn)立方米∕天)?! t目標(biāo)函數(shù):(元∕天)約束條件1:,即;約束條件2:,即;約束條件3:。因此,該問(wèn)
6、題的線(xiàn)性規(guī)劃模型歸結(jié)為: 求解程序:%線(xiàn)性規(guī)劃問(wèn)題f=[1000800];A=[-10;-0.8-1;10;01];b=[-1;-1.6;2;1.4];lb=zeros(2,1);[x,fval,exitflag]=linprog(f,A,b,[],[],lb)運(yùn)行結(jié)果:x=1.00000.8000fval=1.6400e+003exitflag=1由上可知,第一個(gè)化工廠每天處理的污水量為1萬(wàn)立方米∕天,第二個(gè)化工廠每天處理的污水量為0.8萬(wàn)立方米∕天,才能使兩廠總的處理污水費(fèi)用最少。