線性規(guī)劃問題Matlab求解_第1頁
線性規(guī)劃問題Matlab求解_第2頁
線性規(guī)劃問題Matlab求解_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、用MATLA優(yōu)化工具箱解線性規(guī)劃命令:x=linprog(c, A, b)命令:x=linprog(c. A, b, Aeq,beq)注意:若沒有不等式:存在,則令A(yù)= , b=.若沒有等式約束,則令A(yù)eq= , beq=.命令:1 x=li nprog(c.A,b, Aeq,beq, VLB , VUB2 x=li nprog(c. A, b, Aeq,beq, VLB , VUB, XO)注意:1若沒有等式約束,則令A(yù)eq= , beq= . 2 其中X0表示初始點(diǎn)4、命令:x,fval=linprog()返回最優(yōu)解x及x處的目標(biāo)函數(shù)值fval.解編寫M文件小如下:c=;A=; 0 0 0

2、 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=li nprog(c,A,b,Aeq,beq,vlb,vub)例2解:編寫M文件如下:c=6 3 4;A=0 1 0;b=50;Aeq=1 1 1;beq=120;vlb=30,0,20;vub=;x,fval=li nprog(c,A,b,Aeq,beq,vlb,vub例3 (任務(wù)分配問題)某車間有甲、乙兩臺(tái)機(jī)床,可用于加工三種工件假定這兩臺(tái)車床的可用臺(tái)時(shí)數(shù)分別為800和900,三種工件的數(shù)量分別為 400、600和500,且已知用三種不

3、同車床加工單位數(shù)量不同工件所需的臺(tái)時(shí)數(shù)和加工費(fèi)用如下表。問怎樣分配車床的加工任務(wù),才能既滿足加工工件的要求,又使加工費(fèi)用最低解設(shè)在甲車床上加工工件 1、2、3的數(shù)量分別為x1、x2、x3,在乙車床上加工工件1、2、3的數(shù)量分別為x4、x5、x6??山⒁韵戮€性規(guī)劃模型:編寫M文件如下:f = 13 9 10 11 12 8;A = 1 0 0 00 0 0 ;b = 800; 900;Aeq=1 0 0 1 0 00 1 0 0 1 00 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq

4、,vlb,vub)例4.某廠每日8小時(shí)的產(chǎn)量不低于1800件。為了進(jìn)行質(zhì)量控制,計(jì)劃聘請(qǐng)兩種不同水平的檢驗(yàn)員。一級(jí)檢驗(yàn)員的標(biāo)準(zhǔn)為:速度25件/小時(shí),正確率98%計(jì)時(shí)工資4元/小時(shí);二級(jí)檢驗(yàn)員的標(biāo)準(zhǔn)為:速度15小時(shí)/件,正確率95%計(jì)時(shí)工資3元/小時(shí)檢驗(yàn)員每錯(cuò)檢一次,工廠要損失2元。為使總檢驗(yàn)費(fèi)用最省,該工廠應(yīng)聘一級(jí)、二級(jí)檢驗(yàn)員各幾名解設(shè)需要一級(jí)和二級(jí)檢驗(yàn)員的人數(shù)分別為x1、x2人,編寫M文件如下:c = 40;36;A=-5 -3;b=-45;Aeq=;beq=;vlb = zeros(2,1);vub=9;15;%調(diào)用linprog函數(shù):x,fval = lin prog(c,A,b,Aeq

5、,beq,vlb,vub)結(jié)果為:x =fval =360即只需聘用9個(gè)一級(jí)檢驗(yàn)員。4.控制參數(shù)options的設(shè)置Options中常用的幾個(gè)參數(shù)的名稱、含義、取值如下:(1) Display:顯示水平.取值為off '時(shí),不顯示輸出;取值為iter '時(shí),顯示每次迭代的信息;取值為fin al '時(shí),顯示最終結(jié)果.默認(rèn)值為fin al '.MaxFunEvals: 允許進(jìn)行函數(shù)評(píng)價(jià)的最大次數(shù),取值為正整數(shù).(3) MaxIter:允許進(jìn)行迭代的最大次數(shù),取值為正整數(shù)控制參數(shù)options可以通過函數(shù)optimset創(chuàng)建或修改。命令的格式如下:(1) optio

6、ns=optimset('optimfun ')創(chuàng)建一個(gè)含有所有參數(shù)名,并與優(yōu)化函數(shù)optimfun相關(guān)的默認(rèn)值的選項(xiàng)結(jié)構(gòu)options.(2) options=optimset('paramf ,value1, ' param2 ,value2,.)創(chuàng)建一個(gè)名稱為options的優(yōu)化選項(xiàng)參數(shù),其中指定的參數(shù)具有指定值,所有未指定的參數(shù)取默認(rèn)值.(3) options=optimset(oldops,'paramf ,value1, ' param?,value2,.)創(chuàng)建名稱為oldops的參數(shù)的拷貝,用指定的參數(shù)值修改oldops中相應(yīng)的參數(shù)

7、.例:opts=optimset( Display ' ,' iter ' ,' TolFun' ,1e-8)該語句創(chuàng)建一個(gè)稱為opts的優(yōu)化選項(xiàng)結(jié)構(gòu),其中顯示參數(shù)設(shè)為iter ' , TolFun參數(shù)設(shè)為1e-8.用Matlab解無約束優(yōu)化問題一元函數(shù)無約束優(yōu)化問題常用格式如下:(1)x= fminbnd (fun,x1,x2)(2)x= fminbnd (fun,x1,x2 , options)(3)x,fval= fminbnd (.)(4)x,fval ,exitflag= fminbnd (.)(5)x,fval ,exitflag ,

8、output= fminbnd (.)其中(3)、( 4)、( 5)的等式右邊可選用(1)或(2)的等式右邊。函數(shù)fminbnd的算法基于黃金分割法和二次插值法,它要求目標(biāo)函數(shù)必須是連續(xù)函數(shù),并可能只給岀局部最優(yōu)解。 例1求在0<x<8中的最小值與最大值主程序?yàn)?f='2*exp(-x).*sin(x)'fplot(f,0,8);%作圖語句xmin,ymin=fminbnd (f, 0,8)f1='-2*exp(-x).*sin(x)'xmax,ymax=fminbnd (f1, 0,8)運(yùn)行結(jié)果:xmin = ymin =xmax = ymax =

9、例2對(duì)邊長為3米的正方形鐵板,在四個(gè)角剪去相等的正方形以制成方形無蓋水槽,問如何剪法使水槽的容積最大先編寫M文件如下:function f=funO(x)f=-(3-2*x)八2*x;主程序?yàn)椋簒,fval=fminbnd('funO',O,;xmax=xfmax=-fval運(yùn)算結(jié)果為:xmax = ,fmax =.即剪掉的正方形的邊長為米時(shí)水槽的容積最大,最大容積為2立方米.2、多元函數(shù)無約束優(yōu)化問題標(biāo)準(zhǔn)型為:min F(X)命令格式為:(1)x= fminunc ( fun,X0 );或 x=fminsearch ( fun,X0 )(2)x= fminunc ( fun,

10、X0 ,options );或 x=fminsearch ( fun,X0 ,options )(3)x,fval= fminunc (.);或x,fval= fminsearch (.)(4)x,fval ,exitflag= fminunc (.);或x,fval ,exitflag= fminsearch(5)x,fval ,exitflag ,output= fminunc (.);或x,fval ,exitflag ,output= fminsearch (.)說明:? fminsearch是用單純形法尋優(yōu).fminunc的算法見以下幾點(diǎn)說明:1 fminunc為無約束優(yōu)化提供了大型

11、優(yōu)化和中型優(yōu)化算法。由options中的參數(shù)LargeScale控制:LargeScale=' on'(默認(rèn)值),使用大型算法LargeScale=' off '(默認(rèn)值),使用中型算法2 fminunc為中型優(yōu)化算法的搜索方向提供了4種算法,由options 中的參數(shù)HessUpdate控制:HessUpdate=' bfgs '(默認(rèn)值),擬牛頓法的BFGS公式;HessUpdate=' dfp ',擬牛頓法的DFP公式;HessUpdate= steepdesc ',最速下降法3 fminunc 為中型優(yōu)化算法的步長

12、一維搜索提供了兩種算法,由 options 中參數(shù) LineSearchType 控制:LineSearchType=' quadcubic '(缺省值),混合的二次和三次多項(xiàng)式插值;LineSearchType=' cubicpoly ',三次多項(xiàng)式插?使用fminunc和fminsearch 可能會(huì)得到局部最優(yōu)解.例 3 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、編寫M-文件:function f = fun1 (x)f = exp(x(1)*(4*x(1)A2+2*x (2) A2+4*x(1)*x (2)+2*x

13、 (2)+1);2、輸入M文件如下:x0 = -1, 1;x=fminunc('fun1' ,x0);y=fun 1(x)3、運(yùn)行結(jié)果:x=y =例 4 Rosenbrock 函數(shù) f (x1,x2) =100 (x2-x12 ) 2+(1-x1)2的最優(yōu)解(極小)為x*= (1, 1),極小值為f*=0.試用 不同算法(搜索方向和步長搜索)求數(shù)值最優(yōu)解.初值選為x0= ( , 2 ).1.為獲得直觀認(rèn)識(shí),先畫出 Rosenbrock 函數(shù)的三維圖形,輸入以下命令:x,y=meshgrid(-2:2,-1:3);z=100*(y-x.A2).A2+(1-x).A2;mesh(x

14、,y,z)2. 畫出Rosenbrock函數(shù)的等高線圖,輸入命令:contour(x,y,z,20)hold onplot,2,' o ');text,2,'start point')plot(1,1,'o')text(1,1,'solution')3. 用fminsearch 函數(shù)求解輸入命令:f='100*(x (2)-x(1)A2)A2+(1-x(1)A2'x,fval,exitflag,output=fminsearch(f, 2)運(yùn)行結(jié)果:x =fval =exitflag = 1output =iter

15、ations: 108funcCount: 202algorithm: 'Nelder-Mead simplex direct search'4. 用fminunc函數(shù)(1)建立M-文件function f=fun2(x)f= 100*(x (2)-x(1)A2F2+(1-x(1)A2(2)主程序Rosenbrock函數(shù)不同算法的計(jì)算結(jié)果可以看出,最速下降法的結(jié)果最差.因?yàn)樽钏傧陆捣ㄌ貏e不適合于從一狹長通道到達(dá)最優(yōu)解的情況例5產(chǎn)銷量的最佳安排所謂產(chǎn)銷平衡指工某廠生產(chǎn)一種產(chǎn)品有甲、乙兩個(gè)牌號(hào),討論在產(chǎn)銷平衡的情況下如何確定各自的產(chǎn)量,使總利潤最大 廠的產(chǎn)量等于市場(chǎng)上的銷量.符號(hào)說

16、明z(x1,x2)表示總利潤;pl,q1,x1分別表示甲的價(jià)格、成本、銷量;p2, q2, x2分別表示乙的價(jià)格、成本、銷量;aij ,bi,入 i,ci ( i,j =1 ,2)是待定系數(shù).基本假設(shè)1. 價(jià)格與銷量成線性關(guān)系利潤既取決于銷量和價(jià)格,也依賴于產(chǎn)量和成本。按照市場(chǎng)規(guī)律,甲的價(jià)格p1會(huì)隨其銷量x1的增長而降低,同時(shí)乙的銷量x2的增長也會(huì)使甲的價(jià)格有稍微的下降,可以簡單地假設(shè)價(jià)格與銷量成線性關(guān)系,即: p1 = b1 - a11 x1 - a12 x2,b1,a11,a12 > 0,且 a11 > a12 ;同理,p2 = b2 - a21 x1- a22 x2 ,b2,

17、a21,a22 > 02. 成本與產(chǎn)量成負(fù)指數(shù)關(guān)系甲的成本隨其產(chǎn)量的增長而降低,且有一個(gè)漸進(jìn)值,可以假設(shè)為負(fù)指數(shù)關(guān)系,總利潤為:Z(x1,x2)=(p1-q1)x1+(p2-q2)x2若根據(jù)大量的統(tǒng)計(jì)數(shù)據(jù),求出系數(shù)b1=100,a11=1,a12=,b2=280,a2仁,a22=2,r1=30,入仁,c1=20, r2=100, X 2=,c2=30,貝U問題轉(zhuǎn)化為無約束優(yōu)化問題:求甲,乙兩個(gè)牌號(hào)的產(chǎn)量x1, x2,使總利潤z最大.為簡化模型,先忽略成本,并令a12=0,a2仁0,問題轉(zhuǎn)化為求:z1 = ( bl - allxl ) x1 + ( b2 - a22x2 ) x2的極值.顯然其解為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論