




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、matlab 中如何求解線性規(guī)劃問題 懸賞分:0 - 解決時(shí)間:2008-9-9 12:52 提問者: zyb5302882 - 二級最佳答案bintprog 求解0-1規(guī)劃問題 格式如下x = bintprog(f)x = bintprog(f, A, b)x = bintprog(f, A, b, Aeq, beq)x = bintprog(f, A, b, Aeq, beq, x0)x = bintprog(f, A, b, Aeq, Beq, x0, options)x, fval = bintprog(.)x,fval, e
2、xitflag = bintprog(.)x, fval, exitflag, output = bintprog(.)這里x是問題的解向量f是由目標(biāo)函數(shù)的系數(shù)構(gòu)成的向量A是一個(gè)矩陣,b是一個(gè)向量A,b和變量x=x1,x2,xn一起,表示了線性規(guī)劃中不等式約束條件A,b是系數(shù)矩陣和右端向量。Aeq和Beq表示了線性規(guī)劃中等式約束條件中的系數(shù)矩陣和右端向量。X0是給定的變量的初始值options為控制規(guī)劃過程的參數(shù)系列。返回值中fval是優(yōu)化結(jié)束后得到的目標(biāo)函數(shù)值。exitflag=0表示優(yōu)化結(jié)果已經(jīng)超過了函數(shù)的估計(jì)值或者已聲明的最大迭代次數(shù);exitflag>0表示優(yōu)化過程中變量收斂于解
3、X,exitflag<0表示計(jì)算不收斂。output有3個(gè)分量,iterations表示優(yōu)化過程的迭代次數(shù),cgiterations表示PCG迭代次數(shù),algorithm表示優(yōu)化所采用的運(yùn)算規(guī)則。在使用linprog()命令時(shí),系統(tǒng)默認(rèn)它的參數(shù)至少為1個(gè),但如果我們需要給定第6個(gè)參數(shù),則第2、3、4、5個(gè)參數(shù)也必須給出,否則系統(tǒng)無法認(rèn)定給出的是第6個(gè)參數(shù)。遇到無法給出時(shí),則用空矩陣“”替代。例如max=193*x1+191*x2+187*x3+186*x4+180*x5+185*x6; %f由這里給出st.x5+x6>=1;x3+x5>=1;x1+x2<=1;x2+x6
4、<=1;x4+x6<=1; %a、b由不等關(guān)系給出,如沒有不等關(guān)系,a、b取x1+x2+x3+x4+x5+x6=1; %aep、bep由等式約束給出代碼如下f=-193;-191;-187;-186;-180;-185;a=0 0 0 0 -1 -1;0 -1 0 0 -1 0;1 1 0 0 0 0;0 1 0 0 0 1;0 0 0 1 0 1;b=-1,-1,1,1,1'aeq=1 1 1 1 1 1;beq=3;x=bintprog(f,a,b,aeq,beq)注意目標(biāo)值為最大值時(shí)應(yīng)乘以-1化為求最小值;不等約束為>=時(shí)應(yīng)乘以-1化為<=;linprog
5、 非0-1規(guī)劃 格式如下x = linprog(f,A,b)x = linprog(f,A,b,Aeq,beq)x = linprog(f,A,b,Aeq,beq,lb,ub)x = linprog(f,A,b,Aeq,beq,lb,ub,x0)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) x,fval = linprog(.) x,lambda,exitflag = linprog(.) x,lambda,exitflag,output = linprog(.) x,fval,exitflag,output,lambda = linprog(.) 參
6、數(shù)說明和使用格式同bintprogLB和UB是約束變量的下界和上界向量lambda有4個(gè)分量,ineqlin是線性不等式約束條件,eqlin是線性等式約束條件,upper是變量的上界約束條件,lower是變量的下界約束條件。它們的返回值分別表示相應(yīng)的約束條件在優(yōu)化過程中是否有效。滬深300 年化收益率34.49%,投資比例不超過30%;封閉式基金年化收益率113.15%,投資比例不超過10%;中債企業(yè)債年化收益率5.41%,可轉(zhuǎn)債年化收益率32.59%,投資比例不超過10%;短融年化收益率3.58%,中期票據(jù)年化收益率7.12%,其中D+F+G投資比例不超過50%。Matlab線性規(guī)劃求解優(yōu)化
7、問題 (2010-07-12 11:16:44)轉(zhuǎn)載標(biāo)簽: 雜談分類: Matlab用MATLAB優(yōu)化工具箱解線性規(guī)劃命令:x=linprog(c,A,b) 命令:x=linprog(c,A,b,Aeq,beq)注意:若沒有不等式: 存在,則令A(yù)= ,b= . 若沒有等式約束, 則令A(yù)eq= , beq= .命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB) 2 x=linprog(c,A,b,Aeq
8、,beq, VLB,VUB, X0)注意:1 若沒有等式約束, 則令A(yù)eq= , beq= . 2其中X0表示初始點(diǎn)4、命令:x,fval=linprog()返回最優(yōu)解x及x處的目標(biāo)函數(shù)值fval.例1 解 編寫M文件小xxgh1.m如下:c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6; A=0.01 0.01 0.01 0.03 0.
9、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=850;700;100;900; Aeq=; beq=; vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)例2 解: 編寫M文件xxgh2.m如下: c=6 3 4; A=0 1 0;
10、;b=50; Aeq=1 1 1; beq=120; vlb=30,0,20; vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub例3 (任務(wù)分配問題)某車間有甲、乙兩臺機(jī)床,可用于加工三種工件。假定這兩臺車床的可用臺時(shí)數(shù)分別為800和9
11、00,三種工件的數(shù)量分別為400、600和500,且已知用三種不同車床加工單位數(shù)量不同工件所需的臺時(shí)數(shù)和加工費(fèi)用如下表。問怎樣分配車床的加工任務(wù),才能既滿足加工工件的要求,又使加工費(fèi)用最低解 設(shè)在甲車床上加工工件1、2、3的數(shù)量分別為x1、x2、x3,在乙車床上加工工件1、2、3的數(shù)量分別為x4、x5、x6??山⒁韵戮€性規(guī)劃模型:編寫M文件xxgh3.m如下:f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;b = 800
12、; 900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq,vlb,vub)例4某廠每日8小時(shí)的產(chǎn)量不低于1800件。為了進(jìn)行質(zhì)量控制,計(jì)劃聘請兩種不同水平的檢驗(yàn)員。一級檢驗(yàn)員的標(biāo)準(zhǔn)為:速度25件/小時(shí),正確率98%,計(jì)時(shí)工資4元/小時(shí);二級檢驗(yàn)員的標(biāo)準(zhǔn)為:速度15小時(shí)/件,正確率95%,計(jì)時(shí)工資3元/小時(shí)。檢驗(yàn)員每錯(cuò)檢一次,工廠要損失
13、2元。為使總檢驗(yàn)費(fèi)用最省,該工廠應(yīng)聘一級、二級檢驗(yàn)員各幾名?解 設(shè)需要一級和二級檢驗(yàn)員的人數(shù)分別為x1、x2人,編寫M文件xxgh4.m如下:c = 40;36;A=-5 -3;b=-45;Aeq=;beq=;vlb = zeros(2,1);vub=9;15;%調(diào)用linprog函數(shù):x,fval = linprog(c,A,b,Aeq,beq,vlb,vub)結(jié)果為:x = 9.0000 0.0000fval =360即只需聘用9個(gè)一級檢驗(yàn)
14、員。4控制參數(shù)options的設(shè)置Options中常用的幾個(gè)參數(shù)的名稱、含義、取值如下:(1) Display: 顯示水平.取值為off時(shí),不顯示輸出; 取值為iter時(shí),顯示每次迭代的信息;取值為final時(shí),顯示最終結(jié)果.默認(rèn)值為final.(2) MaxFunEvals: 允許進(jìn)行函數(shù)評價(jià)的最大次數(shù),取值為正整數(shù).(3) MaxIter: 允許進(jìn)行迭代的最大次數(shù),取值為正整數(shù)控制參數(shù)options可以通過函數(shù)optimset創(chuàng)建或修改。命令的格式如下:(1) options=optimset(optimfun) 創(chuàng)建一個(gè)含有所有參數(shù)名,并與優(yōu)化函數(shù)opt
15、imfun相關(guān)的默認(rèn)值的選項(xiàng)結(jié)構(gòu)options.(2)options=optimset(param1,value1,param2,value2,.) 創(chuàng)建一個(gè)名稱為options的優(yōu)化選項(xiàng)參數(shù),其中指定的參數(shù)具有指定值,所有未指定的參數(shù)取默認(rèn)值.(3)options=optimset(oldops,param1,value1,param2, value2,.) 創(chuàng)建名稱為oldops的參數(shù)的拷貝,用指定的參數(shù)值修改oldo
16、ps中相應(yīng)的參數(shù).例: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,output= fminbnd(.)其中(3)、(4)、(5)的
17、等式右邊可選用(1)或(2)的等式右邊。 函數(shù)fminbnd的算法基于黃金分割法和二次插值法,它要求目標(biāo)函數(shù)必須是連續(xù)函數(shù),并可能只給出局部最優(yōu)解。例1 求 在0<x<8中的最小值與最大值主程序?yàn)閣liti1.m: f='2*exp(-x).*sin(x)' fplot(f,0,8);
18、; %作圖語句 xmin,ymin=fminbnd (f, 0,8) f1='-2*exp(-x).*sin(x)' xmax,ymax=fminbnd (f1, 0,8)運(yùn)行結(jié)果: xmin = 3.9270
19、; ymin = -0.0279 xmax = 0.7854 ymax = 0.6448例2 對邊長為3米的正方形鐵板,在四個(gè)角剪去相等的正方形以制成方形無蓋水槽,問如何剪法使水槽的容積最大?先編寫M文件fun0.m如下: function f=fun0(x) f=-(3-2*x).2*x;主程
20、序?yàn)閣liti2.m: x,fval=fminbnd('fun0',0,1.5); xmax=x fmax=-fval運(yùn)算結(jié)果為: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的邊長為0.5米時(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,X0 ,options); 或x=fminsearch(fun,
21、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). fm
22、inunc的算法見以下幾點(diǎn)說明:1 fminunc為無約束優(yōu)化提供了大型優(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)化算法的步長一維
23、搜索提供了兩種算法, 由options中參數(shù)LineSearchType控制:LineSearchType=quadcubic(缺省值),混合的二次和三
24、60;次多項(xiàng)式插值;LineSearchType=cubicpoly,三次多項(xiàng)式插• 使用fminunc和 fminsearch可能會得到局部最優(yōu)解.例3 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、編寫M-文件 fun1.m: function f = fun1 (x) f = exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2、輸入M文件wliti3.m如下:
25、; x0 = -1, 1; x=fminunc(fun1,x0); y=fun1(x)3、運(yùn)行結(jié)果: x= 0.5000 -1.0000 y = 1.3029e-10例4 Rosenbroc
26、k 函數(shù) f(x1,x2)=100(x2-x12)2+(1-x1)2 的最優(yōu)解(極小)為x*=(1,1),極小值為f*=0.試用 不同算法(搜索方向和步長搜索)求數(shù)值最優(yōu)解. 初值選為x0=(-1.2 , 2).1. 為獲得直觀認(rèn)識,先畫出Rosenbrock 函數(shù)的三維圖形, 輸入以下命令: x,y=mes
27、hgrid(-2:0.1:2,-1:0.1:3); z=100*(y-x.2).2+(1-x).2; mesh(x,y,z)2. 畫出Rosenbrock 函數(shù)的等高線圖,輸入命令: contour(x,y,z,20) hold on plot(-1.2,2,' o '); text(-1.2,
28、2,'start point') plot(1,1,'o') text(1,1,'solution')3.用fminsearch函數(shù)求解輸入命令: f='100*(x(2)-x(1)2)2+(1-x(1)2' x,fval,exitflag,output=fminsearch(f, -1.2 2)運(yùn)行結(jié)果: x =1.0000
29、 1.0000fval =1.9151e-010exitflag = 1output = iterations: 108 funcCount: 202
30、algorithm: 'Nelder-Mead simplex direct search'4. 用fminunc 函數(shù)(1)建立M-文件fun2.m function f=fun2(x) f=100*(x(2)-x(1)2)2+(1-x(1)2(2)主程序wliti44.mRosenbrock函數(shù)不同算法的計(jì)算結(jié)果可以看出,最速下降法的結(jié)果最差.因?yàn)樽钏傧陆捣ㄌ貏e不適
31、合于從一狹長通道到達(dá)最優(yōu)解的情況.例5 產(chǎn)銷量的最佳安排 某廠生產(chǎn)一種產(chǎn)品有甲、乙兩個(gè)牌號,討論在產(chǎn)銷平衡的情況下如何確定各自的產(chǎn)量,使總利潤最大. 所謂產(chǎn)銷平衡指工廠的產(chǎn)量等于市場上的銷量. 符號說明z(x1,x2)表示總利潤;p1,q1,x1分別表示甲的價(jià)格、成本、銷量;p2,q2,x2分別表示乙的價(jià)格、成本、銷量; aij,bi,i,ci(i,j =1,2)是待定系數(shù).基本假設(shè)1價(jià)格與銷量成線性關(guān)系利潤既取決于銷量和價(jià)格,也依賴于產(chǎn)量和成本。按照市場規(guī)律,甲的價(jià)格p1會隨其銷量x1的增長
32、而降低,同時(shí)乙的銷量x2的增長也會使甲的價(jià)格有稍微的下降,可以簡單地假設(shè)價(jià)格與銷量成線性關(guān)系,即: p1 = b1 - a11 x1 - a12 x2 ,b1,a11,a12 > 0,且a11 > a12;同理, p2 = b2 - a21 x1- a22 x2 ,b2,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ù)
33、據(jù),求出系數(shù)b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,1=0.015,c1=20, r2=100,2=0.02,c2=30,則問題轉(zhuǎn)化為無約束優(yōu)化問題:求甲,乙兩個(gè)牌號的產(chǎn)量x1,x2,使總利潤z最大.為簡化模型,先忽略成本,并令a12=0,a21=0,問題轉(zhuǎn)化為求: z1 = ( b1 - a11x1 ) x1 + ( b2 - a22x2 ) x2的極值. 顯然其解為x1 = b1/2a11 = 50, x2 = b2/2a22 = 70,我們把它作為原問
34、題的初始值.模型求解1.建立M-文件fun.m: function f = fun(x) y1=(100-x(1)- 0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1); y2=(280-0.2*x(1)- 2*x(2)-(100*exp(-0.02*x(2)+30)*x(2); f=-y1-y2;2.輸入命令:
35、160; x0=50,70; x=fminunc(fun,x0), z=fun(x)3.計(jì)算結(jié)果: x=23.9025, 62.4977, z=6.4135e+003 即甲的產(chǎn)量為23.9025,乙的產(chǎn)量為62.4977,最大利潤為6413.5. matlab線性規(guī)劃 懸賞分:5 - 提問時(shí)間2007-5-3 17:10求解最大
36、值Z=y1×5.2×105+(2.5+x1+x2-y1) ×4.3×105+y2×4.7 × 105+(8.2x1+x3-y2) ×3.9×105+0.25×y1+0.2×(2.5+x1+x2-y1)+0.23×y2+0.185×(8.2-x1+x2-y2)-2×106-x1×2.0×105-x3×8.5×105-x2×10×105 約束條件:3.5-x2-x30 8.2-x1+x30 0y12.5+x1+x2 0y28.2-x1+x3 7.5y1+6.1 ×(2.5+x1+x2-y1)+9.0y2+7.35×(8.2-x1+x3-y2) 96.5 1.4y1+1.65y27.5 0.25y1+0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全知識法試題及答案
- 2025年電動汽車電池?zé)峁芾硐到y(tǒng)熱管理效率優(yōu)化與創(chuàng)新研究報(bào)告
- 安全技能比武試題及答案
- 安全工作教育試題及答案
- 物業(yè)品質(zhì)培訓(xùn)課件目錄
- 魔鏡檢測皮膚培訓(xùn)課件
- 重疾保險(xiǎn)培訓(xùn)課件
- 《編制說明蒙農(nóng)1號蒙古冰草提純復(fù)壯技術(shù)規(guī)程》
- 中班家園共育課件
- 冬季生產(chǎn)安全培訓(xùn)
- 上海市重點(diǎn)建設(shè)項(xiàng)目社會穩(wěn)定風(fēng)險(xiǎn)評估報(bào)告編制指南2025
- 數(shù)字化情報(bào)資源管理-洞察闡釋
- 北京市2025學(xué)年高二(上)第一次普通高中學(xué)業(yè)水平合格性考試物理試題(解析版)
- 2025年四川省高考物理試卷真題(含答案)
- 炸雞店的產(chǎn)品創(chuàng)新與口味調(diào)研
- 陜西省銅川市2025年八下英語期末監(jiān)測試題含答案
- 社區(qū)工作者綜合能力考試基礎(chǔ)知識試題及答案
- 山西焦煤集團(tuán)所屬煤炭子公司招聘筆試題庫2025
- 墊付醫(yī)療費(fèi)協(xié)議書
- 2025年福建省廈門市中考物理模擬試卷
- 2024年陜西省普通高中學(xué)業(yè)水平合格性考試語文試題(原卷版+解析版)
評論
0/150
提交評論