Matlab求最大值最小值_第1頁
Matlab求最大值最小值_第2頁
Matlab求最大值最小值_第3頁
Matlab求最大值最小值_第4頁
Matlab求最大值最小值_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)論文題目:用MATLAB分析最小值和最大值的問題姓名:木扎帕爾?木合塔爾專業(yè):數(shù)學(xué)與應(yīng)用數(shù)學(xué)班級:2003-6班院(系):數(shù)理信息學(xué)院指導(dǎo)老師:阿不力米提新疆師范大學(xué)MATLAB求最小值和最大值木扎帕爾?木合塔爾新疆師范大學(xué)數(shù)理信息學(xué)院03-6班摘要:我們一般在學(xué)習(xí)和工作中遇到一些函數(shù),并需要其最小值與最大值,本文討論一些復(fù)雜的函數(shù)的最小值與最大值,用MATLAB來求解及分析.關(guān)鍵詞:最小值;最大值;MATLAB.用MATLAB分析最小值和最大值的問題我們在學(xué)習(xí)和工作中需要求解一些函數(shù)的最小值和最大值,并用最小值和最大值來分析日常生活中我們遇到的一些問題?一般的問題我們能直接計算出來,但對有一些問題來說求救它的最小值和最大值很復(fù)雜,MATLAB具有強大的計算功能,以下我們要討論的主要問題就是用MATLAB能計算出那些復(fù)雜的問題.先看以下例子[1]用鋼板制造容積為V的無蓋長方形水箱,問怎樣選擇水箱的長,寬,高才最省鋼板.解:設(shè)水箱長,寬,高分別是x,y,z.已知xyz=V,從而z二V/xy.水箱表面的面積S二xy+V/xy(2x+2y)二xy+2V(l/x+l/y),S的定義域D={(x,y)|0<x<+-,0<y<+-}.這個問題就是求函數(shù)S在區(qū)域D內(nèi)的最小值.解方程組aS/ax=y+2V(-1/x2)=y-2V/x2=0,aS/ay=x+2V(-l/y2)=x-2V/y2=0.在區(qū)域D內(nèi)解得唯一穩(wěn)定點(32V,32V)?求二階扁導(dǎo)數(shù)a2s/ax2=4V/x3,a2s/axay=1,a2s/ay2=4V/y3.(a2s/axdy)2-a2s/ax2.a2s/ay2=1-16v2/x3y3.在穩(wěn)定點(3;2V,3:2V),A=-3<0,且A=2>0,從而,穩(wěn)定點(3'2V,V'2V)是S的極小點.因此,函數(shù)S在點(3邁V,3「iV)取最小值.當(dāng)x=3:2V,y=^2V時,z=V/3'2V32V=32V/2,即無蓋長方形水箱x=y=3邁V,z=3邁V/2,所需鋼板最省.[2]在已知周長為2p的一切三角形中,求出面積為最大的三角形.解:設(shè)三角形的三個邊長是x,y,z..面積是p.有海倫公式,有P=Jp(P-x)(p-y)(p-z).已知x+y+z=2p或z=2p-x-y將它代入上面公式之中,有P=Jp(P-x)(p-y)(x+y-p).因為三角形的每邊長是正數(shù)而且小與半周長p,所以p的定義域D={(x,y)|0<x<p,0<y<p,x+y>p}.已知p的穩(wěn)定點與p2/p的穩(wěn)定點相同.為計算簡便,求屮=p2/p=(p-x)(p-y)(x+y-p)的穩(wěn)定點?解方程組屮'(x,y)=-(p-y)(x+y-p)+(p-x)(p-y)=(p-y)(2p-2x-y)=0.x屮'(x,y)=-(p-x)(x+y-p)+(p-x)(p-y)=(p-x)(2p-2y-x)=0.y在區(qū)域D內(nèi)有唯一穩(wěn)定點(2p/3,2p/3).求二階扁導(dǎo)數(shù)屮〃(x,y)=-2(p-y),屮〃(x,y)=2(x+y)-3p,xx xy屮''(x,y)=—2(p—x).yyI”(x,y)l-屮"(x,y)屮"(x,y)xy xx yy=4x2+4xy+4y2-8px-8py+5p2.在穩(wěn)定點(2p/3,2p/3),A=-p2/3<0,A=-2p/3<0.從而穩(wěn)定點(2p/3,2p/3)是函數(shù)屮,即p的極大點.由題意,p在穩(wěn)定點(2p/3,2p/3)必取到最大值.當(dāng)x=2p,y=2p/3時,z=2p-x-y=2p/3,即三角形三邊長的和為定數(shù)時,等邊三角形的面積最大.森林失火了!消防站接到報警后派多少消防隊員前去救火呢?派的隊員越多,森林的損失越小,但是救援的開支會越大,所以需要綜合考慮森林損失費和救援費與消防隊員人數(shù)之間的關(guān)系,以總費用最小來決定派出隊員的數(shù)目.問題分析損失費通常正比于森林燒毀的面積,而燒毀面積于失火,滅火的時間有關(guān),滅火時間又與滅火時間長短有關(guān)?記失火時刻為t=0,開始救火時刻為t=t,滅火時刻為t=t?設(shè)在時刻t森林燒毀面積為B(t),則造成損失的森林燒12毀面積為B(t).建模要對函數(shù)B(t)的形式作出合理的簡單假設(shè).2模型假設(shè)需要對燒毀森林的損失費,救援費及火勢蔓延程度5B/Sd的形式作出假設(shè).損失費與森林燒毀面積B(12)成正比,比例系數(shù)c為燒毀單位面積的1損失費.從失火到開始救火這段時間(OWtWt)內(nèi),火勢蔓延程度5B/5d與1時間t成正比,比例系數(shù)P稱火勢蔓延速度.派出消防隊員x名,開始救火以后(t三t)火勢蔓延速度降為P-九x,1其中九可視為每個隊員的平均滅火速度.顯然應(yīng)有P<九x.每個消防隊員單位時間的費用為c,于是每個隊員的救火費用是c22(t-t);每個隊員的依次性支出是c.2 1 3?、c卩12 c卩212 c卩txC(x)二__+—4 +cx2 2(九x-P)九x-P 3(公式里的C(x)是這個優(yōu)化模型的目標(biāo)函數(shù),把它輸入MATLAB程序可以得到它的最終解?)無約束最優(yōu)化問題在實際應(yīng)用中也比較常見,如工程中常見的參數(shù)反演問題。另外,許多有約束最優(yōu)化問題可以轉(zhuǎn)化為無約束最優(yōu)化問題進行求解。求解無約束最優(yōu)化問題的方法主要有兩類,即直接搜索法(Searchmethod)和梯度法(Gradientmethod)。直接搜索法適用于目標(biāo)函數(shù)高度非線性,沒有導(dǎo)數(shù)或?qū)?shù)很難計算的情況,由于實際工程中很多問題都是非線性的,直接搜索法不失為一種有效的解決辦法。常用的直接搜索法為單純形法,此外還有Hooke-Jeeves搜索法、Pavell共軛方向法等,其缺點是收斂速度慢。在函數(shù)的導(dǎo)數(shù)可求的情況下,梯度法是一種更優(yōu)的方法,該法利用函數(shù)的梯度(一階導(dǎo)數(shù))和Hessian矩陣(二階導(dǎo)數(shù))構(gòu)造算法,可以獲得更快的收斂速度。函數(shù)f(x)的負梯度方向-f(x)即反映了函數(shù)的最大下降方向。當(dāng)搜索方向取為負梯度方向時稱為最速下降法。當(dāng)需要最小化的函數(shù)有一狹長的谷形值域時,該法的效率很低,如Rosenbrock函數(shù)f(x)=100(x-x2)2+(l—x)2121它的最小值解為x=[1,1],最小值為f(x)=0。這種類型的函數(shù)又稱為香蕉函數(shù)。常見的梯度法有最速下降法、Newton法、Marquart法、共軛梯度法和擬牛頓法(Quasi-Newtonmethod)等。在所有這些方法中,用得最多的是擬牛頓法,這些方法在每次迭代過程中建立曲率信息,構(gòu)成下式得二次模型問題:其中,Hessian矩陣H為一正定對稱矩陣,c為常數(shù)向量,b為常數(shù)。對x求偏導(dǎo)數(shù)可以獲得問題的最優(yōu)解相關(guān)函數(shù)介紹fminunc函數(shù)功能:求多變量無約束函數(shù)的最小值。語法格式:x=fminunc(fun,x0)x=fminunc(fun,x0,options)x=fminunc(fun,x0,options,Pl,P2,...)[x,fval]=fminunc(...)[x,fval,exitflag]=fminunc(...)[x,fval,exitflag,output]二fminunc(...)[x,fval,exitflag,output,grad]=fminunc(...)[x,fval,exitflag,output,grad,hessian]=fminunc(...)描述:fminunc給定初值,求多變量標(biāo)量函數(shù)的最小值。常用于無約束非線性最優(yōu)化問題。x=fminunc(fun,xO)給定初值xO,求fun函數(shù)的局部極小點X。x0可以是標(biāo)量、向量或矩陣。x=fminunc(fun,x0,options)用options參數(shù)中指定的優(yōu)化參數(shù)進行最小化。x=fminunc(fun,xO,options,Pl,P2,...)將問題參數(shù)pl、p2等直接輸給目標(biāo)函數(shù)fun,將options參數(shù)設(shè)置為空矩陣,作為options參數(shù)的缺省值。[x,fval]=fminunc(...)將解x處目標(biāo)函數(shù)的值返回到fval參數(shù)中。[x,fval,exitflag]=fminunc(...)返回exitflag值,描述函數(shù)的輸出條件。[x,fval,exitflag,output]二fminunc(...)返回包含優(yōu)化信息的結(jié)構(gòu)輸出。[x,fval,exitflag,output,grad]=fminunc(...)將解x處fun函數(shù)的梯度值返回到grad參數(shù)中。[x,fval,exitflag,output,grad,hessian]=fminunc(...)將解x處目標(biāo)函數(shù)的Hessian矩陣信息返回到hessian參數(shù)中。注意:對于求解平方和的問題,fminunc函數(shù)不是最好的選擇,用lsqnonlin函數(shù)效果更佳。使用大型方法時,必須通過將options.GradObj設(shè)置為'on'來提供梯度信息,否則將給出警告信息。算法:大型優(yōu)化算法若用戶在fun函數(shù)中提供梯度信息,則缺省時函數(shù)將選擇大型優(yōu)化算法,該算法是基于內(nèi)部映射牛頓法的子空間置信域法,理論描述可參見文獻[8],[9]。計算中的每一次迭代涉及到用PCG法求解大型線性系統(tǒng)得到的近似解。中型優(yōu)化算法此時fminunc函數(shù)的參數(shù)options.LargeScale設(shè)置為'off'。該算法采用的是基于二次和三次混合插值一維搜索法的BFGS擬牛頓法。該法通過BFGS公式來更新Hessian矩陣。通過將HessUpdate參數(shù)設(shè)置為'dfp',可以用DFP公式來求得Hessian矩陣逆的近似。通過將HessUpdate參數(shù)設(shè)置為'steepdesc',可以用最速下降法來更新Hessian矩陣。但一般不建議使用最速下降法。缺省時的一維搜索算法,當(dāng)options.LineSearchType設(shè)置為'quadcubic'時,將采用二次和三次混合插值法。將options.LineSearchType設(shè)置為'cubicpoly'時,將采用三次插值法。第二種方法需要的目標(biāo)函數(shù)計算次數(shù)更少,但梯度的計算次數(shù)更多。這樣,如果提供了梯度信息,或者能較容易地算得,則三次插值法是更佳的選擇。局限性:目標(biāo)函數(shù)必須是連續(xù)的。fminunc函數(shù)有時會給出局部最優(yōu)解。fminunc函數(shù)只對實數(shù)進行優(yōu)化,即x必須為實數(shù),而且f(x)必須返回實數(shù)。當(dāng)x為復(fù)數(shù)時,必須將它分解為實部和虛部。在使用大型算法時,用戶必須在fun函數(shù)中提供梯度(options參數(shù)中GradObj屬性必須設(shè)置為'on')。目前,若在fun函數(shù)中提供了解析梯度,則options參數(shù)DerivativeCheck不能用于大型算法以比較解析梯度和有限差分梯度。通過將options參數(shù)的MaxIter屬性設(shè)置為0來用中型方法核對導(dǎo)數(shù)。然后重新用大型方法求解問題。功能:求解多變量無約束函數(shù)的最小值。語法:x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)x=fminsearch(fun,x0,options,P1,P2,...)[x,fval]=fminsearch(...)[x,fval,exitflag]=fminsearch(...)[x,fval,exitflag,output]=fminsearch(…)描述:fminsearch求解多變量無約束函數(shù)的最小值。該函數(shù)常用于無約束非線性最優(yōu)化問題。x=fminsearch(fun,x0)初值為x0,求fun函數(shù)的局部極小點x。x0可以是標(biāo)量、向量或矩陣。x=fminsearch(fun,x0,options)用options參數(shù)扌旨定的優(yōu)化參數(shù)進行最小化。x=fminsearch(fun,x0,options,P1,P2,...)將問題參數(shù)p1、p2等直接輸給目標(biāo)函數(shù)fun,將options參數(shù)設(shè)置為空矩陣,作為options參數(shù)的缺省值。[x,fval]=fminsearch(...)將x處的目標(biāo)函數(shù)值返回到fval參數(shù)中。[x,fval,exitflag]=fminsearch(...)返回exitflag值,描述函數(shù)的退出條件。[x,fval,exitflag,output]二fminsearch(...)返回包含優(yōu)化信息的輸出參數(shù)output。變量:各變量的意義同前。算法:fminsearch使用單純形法進行計算。對于求解二次以上的問題,fminsearch函數(shù)比fminunc函數(shù)有效。但是,當(dāng)問題為高度非線性時,fminsearch函數(shù)更具穩(wěn)健性。局限性:應(yīng)用fminsearch函數(shù)可能會得到局部最優(yōu)解。fminsearch函數(shù)只對實數(shù)進行最小化,即x必須由實數(shù)組成,f(x)函數(shù)必須返回實數(shù)。如果x時復(fù)數(shù),必須將它分為實數(shù)部和虛數(shù)部兩部分。注意:fminsearch函數(shù)不適合求解平方和問題,用lsqnonlin函數(shù)更好一些。在有約束最優(yōu)化問題中,通常要將該問題轉(zhuǎn)換為更簡單的子問題,這些子問題可以求解并作為迭代過程的基礎(chǔ)。早期的方法通常是通過構(gòu)造懲罰函數(shù)等來將有約束的最優(yōu)化問題轉(zhuǎn)換為無約束最優(yōu)化問題進行求解。現(xiàn)在,這些方法已經(jīng)被更有效的基于K-T(Kuhn-Tucker)方程解的方法所取代。K-T方程是有約束最優(yōu)化問題求解的必要條件。假設(shè)有所謂的Convex規(guī)劃問題,(x)和Gi(x),i=l,2,…,m為Convex函數(shù),則K-T方程對于求得全局極小點是必要的,也是充分的。對于規(guī)劃問題其中,x是設(shè)計參數(shù)向量,(xGRn),f(x)為目標(biāo)函數(shù),返回標(biāo)量值,向量函數(shù)G(x)返回等式約束和不等式約束在x處的值。它的K-T方程可表達為:(*)i=1,...,mi=m+1,?.?,me其中第一行描述了目標(biāo)函數(shù)和約束條件在解處梯度的取消。由于梯度取消,需要用拉格朗日乘子入(i=l,2,…,m)來平衡目標(biāo)函數(shù)與約束梯度間大小的差i異。K-T方程的解形成了許多非線性規(guī)劃算法的基礎(chǔ),這些算法直接計算拉格朗日乘子,通過用擬牛頓法更新過程,給K-T方程積累二階信息,可以保證有約束擬牛頓法的超線性收斂。這些方法稱為序列二次規(guī)劃法(SQP),因為在每一次主要的迭代中都求解一次二次規(guī)劃問題。對于給定的規(guī)劃問題,序列二次規(guī)劃(SQP)的主要的思路是形成基于拉格朗日函數(shù)二次近似的二次規(guī)劃子問題,即這里,通過假設(shè)約束條件為不等式約束來使(*)式得到了簡化,通過非線性有約束問題線性化來獲得二次規(guī)劃子問題。二次規(guī)劃子問題可表達為i=1,...,mei=m+1,...,me該子問題可以用任意一種二次規(guī)劃算法求解,求得的解可以用來形成新的迭代公式x=x+ad。k+1kkk用SQP法求解非線性有約束問題時的迭代次數(shù)常比用解無約束問題時的少,因為在搜索區(qū)域內(nèi),SQP方法可以獲得最佳的搜索方向和步長信息。給Rosenbrock函數(shù)添加非線性不等式約束g(x)經(jīng)過96次迭代得到問題的解:x=[0.9072,0.8288],初值為x=[-1.9,2],無約束問題則需要140次迭代。通常我們遇到的都是目標(biāo)函數(shù)的最大化和最小化問題,但是在某些情況下,則要求最大值的最小化才有意義。例如城市規(guī)劃中需要確定急救中心、消防中心的位置,可取的目標(biāo)函數(shù)應(yīng)該是到所有地點最大距離的最小值,而不是到所有目的地的距離和為最小。這是兩種完全不同的準(zhǔn)則,在控制理論、逼近論、決策論中也使用最大最小化原則。最大最小化問題的數(shù)學(xué)模型為其中x,b,beq,lb和ub為向量,A和Aeq為矩陣,c(x),ceq(x)和F(x)為函數(shù),返回向量。F(x),c(x)和ceq(x)可以是非線性函數(shù)。Matlab優(yōu)化工具箱中采用序列二次規(guī)劃法求解最大最小化問題。相關(guān)函數(shù)介紹fminimax函數(shù)功能:求解最大最小化問題。語法:x=fminimax(fun,x0)x=fminimax(fun,xO,A,b)x=fminimax(fun,xO,A,b,Aeq,beq)x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub)x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon)x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon,options,P[x,fval]=fminimax(...)[x,fval,maxfval]=fminimax(...)[x,fval,maxfval,exitflag]=fminimax(...)[x,fval,maxfval,exitflag,output]二fminimax(...)[x,fval,maxfval,exitflag,output,lambda]=fminimax(...)描述:fminimax使多目標(biāo)函數(shù)中的最壞情況達到最小化。給定初值估計,該值必須服從一定的約束條件。x=fminimax(fun,xO)初值為xO,找到fun函數(shù)的最大最小化解X。x=fminimax(fun,xO,A,b)給定線性不等式A*x<=b,求解最大最小化問題。x=fminimax(fun,x,A,b,Aeq,beq)給定線性等式,Aeq*x=beq,求解最大最小化問題。如果沒有不等式存在,設(shè)置A=[]、b=[]。x=fminimax(fun,x,A,b,Aeq,beq,lb,ub)為設(shè)計變量定義一系列下限lb和上限ub,使得總有l(wèi)b<=x<=ub。x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon)在nonlcon參數(shù)中給定非線性不等式約束c(x)或等式約束ceq(x),fminimax函數(shù)要求c(x)<=0且ceq(x)=0。若沒有邊界存在,設(shè)置lb=[]和(或)ub=[]。x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon,options)用options給定的參數(shù)進行優(yōu)化。x=fminimax(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,...)將問題參數(shù)P1,P2等直接傳遞給函數(shù)fun和nonlcon。如果不需要變量A,b,Aeq,beq,lb,ub,nonlcon和options將它們設(shè)置為空矩陣。[x,fval]=fminimax(...)返回解x處的目標(biāo)函數(shù)值。[x,fval,maxfval]=fminimax(...)返回解x處的最大函數(shù)值。[x,fval,maxfval,exitflag]=fminimax(...)返回exitflag參數(shù),描述函數(shù)計算的退出條件。[x,fval,maxfval,exitflag,output]二fminimax(...)返回描述優(yōu)化信息的結(jié)構(gòu)輸出output參數(shù)。[x,fval,maxfval,exitflag,output,lambda]=fminimax(...)返回包含解x處拉格朗日乘子的lambda參數(shù)。變量:maxfval變量解x處函數(shù)值的最大值,即,maxfval=max{fun(x)}。注意:1. 在options.MinAbsMax中設(shè)置F最壞絕對值最小化了的目標(biāo)數(shù)。該目標(biāo)應(yīng)該放到F的第一個元素中去。例如,考慮上面的問題,需要找到x值,使得下式的最大絕對值最小化:通過調(diào)用fminimax函數(shù)來進行求解x0=[0.1;0.1]; %設(shè)置初值options=optimset('MinAbsMax',5); %最小化絕對值[x,fval]=fminimax(fun,xO,[],[],[],[],[],[],[],options);經(jīng)過7次迭代以后,得到問題的解x二4.92562.0796fval=37.2356-37.2356-6.8357-7.0052-0.99482.當(dāng)提供了等式約束并且在二次子問題中發(fā)現(xiàn)并剔除了因等式,則在過程標(biāo)題中打印’dependent'字樣(當(dāng)輸出選項設(shè)置為options.Display='iter')。因等式只有在等式連續(xù)的情況下才被剔除。若系統(tǒng)不連續(xù),則子問題不可行并且在過程標(biāo)題中打印’infeasible'字樣。算法:fminimax函數(shù)使用序列二次規(guī)劃法(SQP)進行計算。對一維搜索法和Hessian矩陣的計算進行了修改。在一維搜索中,將精確目標(biāo)函數(shù)和文獻[2]、[3]中的目標(biāo)函數(shù)一起使用。當(dāng)有一個目標(biāo)函數(shù)不再發(fā)生改善時,一維搜索終止。修改的Hessian矩陣借助于本問題的結(jié)構(gòu),也被采用。詳細內(nèi)容可參見文獻[5]、[6]。局限性:目標(biāo)函數(shù)必須連續(xù),否則fminimax函數(shù)有可能給出局部最優(yōu)解。參見:optimset,fgoalattain,lsqnonlin應(yīng)用實例定位問題設(shè)某城市有某種物品的10個需求點,第i個需求點P的坐標(biāo)為(a,b),i ii道路網(wǎng)與坐標(biāo)軸平行,彼此正交?,F(xiàn)打算建一個該物品的供應(yīng)中心,且由于受到城市某些條件的限制,該供應(yīng)中心只能設(shè)在X界于[5,8],y界于[5,8]的范圍內(nèi)。問該中心應(yīng)建在何處為好?P點的坐標(biāo)為:iTOC\o"1-5"\h\za:1 43 5 9 12 6 20 17

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論