數學建模講義-最優化模型-無約束最優化_第1頁
數學建模講義-最優化模型-無約束最優化_第2頁
數學建模講義-最優化模型-無約束最優化_第3頁
數學建模講義-最優化模型-無約束最優化_第4頁
數學建模講義-最優化模型-無約束最優化_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數學建模講義最優化模型

---無約束最優化無約束最優化問題1、無約束最優化模型2、無約束最優化的主要算法。3、用數學軟件包求解無約束最優化問題4、建模案例選講標準形式:無約束最優化模型求解的基本思想

(以二元函數為例)531連續可微二元函數圖像多局部極小

唯一極小(全局極小)無約束最優化示意圖凸函數的概念定義:凸集D

Rn上的函數f(x).如果對任意兩點x(1),x(2)

∈D,均有0<

<1使得

f(

x(1)+(1-

)x(2))

f(x(1))

+(1-

)f(x(2))則稱函數f(x)為D上的凸函數.若嚴格不等式成立,則稱函數f(x)為D上的嚴格凸函數.如果-g(x)為D上的(嚴格)凸函數,則g(x)為D上的(嚴格)凹函數.無約束最優化性質討論f(x)xf(x1)f(x2)

x1x2f(x)xf(x1)f(x2)

x1x2

x1+(1-

)x2f(x1+(1-

)x2)f(x)x

f(x1)

+(1-

)f(x2)f(x1)f(x2)

x1x2

x1+(1-

)x2f(x1+(1-

)x2)f(x)X

f(x1)

+(1-

)f(x2)f(x1)f(x2)x1x2

x1+(1-

)x2f(x1+(1-

)x2)任意兩點的函數值的連線上的點都在曲線的上方線性函數既是凸函數,又是凹函數,反之也然.梯度向量

f(x)=gradf(x)=(f/x1,f/x2,…..,f/xn)正定矩陣如果對矩陣H(x),對任意x

N(x*,),z

Rn

均有zTH(x)z>0(0),則稱H(x)在x*點正定(半正定).海賽(Hesse)矩陣

2f/x12

2f/x1x2…..2f/x1xn

2f/x2x1

2f/x22

…..2f/x2xn……..

2f/xnx1

2f/xnx2…..2f/xn2=

xxf(x)=H(x)

最優性條件最優性條件的研究是非線性規劃理論研究的一個中心問題。為什么要研究最優性條件?本質上把可行解集合的范圍縮小。它是許多算法設計的基礎。無約束問題的最優性條件(P1)minf(x)x

Rn

定理1(一階必要條件)

設f(x)在x*點可微,則x*為(P1)的一個局部最優解,一定有

f(x*)=gradf(x*)=0(x*稱為駐點)定理2(二階必要條件)

設f(x)在x*點二階可微,如果x*為(P1)的一個局部最優解,則有

f(x*)=0和H(x*)為半正定。定理3(二階充分條件)

設f(x)在x*點二階可微,如果

f(x*)=0和H(x*)為正定,則x*為(P1)的一個局部最優解H(x)在x*的鄰域內為半正定。定理4(全局優化的一階充分條件)

設f(x)為En上的凸函數,又設f(x)在x*點可微,如果

f(x*)=0,則x*為(P1)的一個整體最優解。例6-2

minf(x)=(x2-1)3

解:利用一階必要條件求出有可能成為最優解的那些點:f(x)=6x(x2-1)2=0得到:x1=0,x2=1,x3=-1進一步考慮二階必要條件,縮小范圍:H(x)=xxf(x)=6(x2-1)2+24x2(x2-1)

H(x1)=xxf(x1)=xxf(0)=6>0H(x2)=xxf(x2)=xxf(1)=0H(x3)=xxf(x3)=xxf(-1)=0

f(x)在x1=0點正定,根據二階必要條件,x1=0為(P1)的局部最優解。而x2=1,x3=-1滿足二階必要條件和一階必要條件,但它們顯然都不是最優解。例6-3

minf(x)=2x12+5x22+x32+

2x2x3

+

2x1x3-

6x2+3解:

f(x)=(4x1+

2x3,10x2+

2x3–

6,2x1+

2x2+

2x3

)=0駐點x*=(1,1,-2)020102222

H(x)=xxf(x)=各階主子式:4

0010=40>0020102222=24>04>0,H(x)正定,x*=(1,1,-2)為最優解。f(x*)=0解無約束問題的算法:求f(x)的駐點x*,若是凸函數,得到最優解。否則,轉下一步。在駐點x*處,計算H(x)。根據H(x)來判斷該駐點x*是否是極值點。若H(x)為正定,該駐點X*是嚴格局部極小值點;若H(x)為負定,該駐點X*是嚴格局部極大值點;若H(x)為半正定(半負定)則進一步觀察它在該點某鄰域內的情況,如果保持半正定(半負定),那它們是嚴格局部極小值點(極大值點);如果H(x)不定的,該駐點x*就不是f(x)極值點。例6-4

求極值f(x)=x1+

2x3+x2x3-x12-x22-x32解:

f(x)=(1-2x1,x3-2x2,2+x2-

2x3)=0

駐點x*=(1/2,2/3,4/3)-2000-2101-2

H(x)=xxf(x)=各階主子式:-2

00-2=4>0=-6<0-2000-2101-2-2<0,H(x)負定,f(x)

是凹函數x*=(1/2,2/3,4/3)為極大值點。f(x*)=f(1/2,2/3,4/3)=19/12注:對規模較大的一些問題,我們無法通過直接求解的方法得到問題的駐點,只能通過逐步迭代的方法解決這個問題,下面給出一個迭代求解的示意圖.搜索過程最優點(11)初始點(-11)-114.00-0.790.583.39-0.530.232.60-0.180.001.500.09-0.030.980.370.110.470.590.330.200.800.630.050.950.900.0030.990.991E-40.9990.9981E-50.99970.99981E-8無約束優化問題的基本算法

最速下降法是一種最基本的算法,它在最優化方法中占有重要地位.最速下降法的優點是工作量小,存儲變量較少,初始點要求不高;缺點是收斂慢,最速下降法適用于尋優過程的前期迭代或作為間插步驟,當接近極值點時,宜選用別種收斂快的算法.1.最速下降法1.最速下降法(共軛梯度法)算法步驟:2.牛頓法算法步驟:(1)選定初始點,給定允許誤差,令k=0;(2)

求,檢驗:若成立,則停止迭代,.否則,轉向(3);.(3)令(牛頓方向);

(4),轉回(2)

如果f是對稱正定矩陣A的二次函數,則用牛頓法經過一次迭代就可達到最優點,如不是二次函數,則牛頓法不能一步達到極值點,但由于這種函數在極值點附近和二次函數很近似,因此牛頓法的收斂速度還是很快的.

牛頓法的收斂速度雖然較快,但要求Hessian矩陣要可逆,要計算二階導數和逆矩陣,就加大了計算機計算量和存儲量.3.擬牛頓法Matlab優化工具箱簡介1.MATLAB求解優化問題的主要函數2.優化函數的輸入變量

使用優化函數或優化工具箱中其它優化函數時,輸入變量見下表:3.優化函數的輸出變量下表:4.控制參數options的設置

(3)MaxIter:允許進行迭代的最大次數,取值為正整數.Options中常用的幾個參數的名稱、含義、取值如下:

(1)Display:顯示水平.取值為’off’時,不顯示輸出;取值為’iter’時,顯示每次迭代的信息;取值為’final’時,顯示最終結果.默認值為’final’.MaxFunEvals:允許進行函數評價的最大次數,取值為正整數.例:opts=optimset(‘Display’,’iter’,’TolFun’,1e-8)

該語句創建一個稱為opts的優化選項結構,其中顯示參數設為’iter’,TolFun參數設為1e-8.

控制參數options可以通過函數optimset創建或修改。命令的格式如下:(1)options=optimset(‘optimfun’)

創建一個含有所有參數名,并與優化函數optimfun相關的默認值的選項結構options.(2)options=optimset(‘param1’,value1,’param2’,value2,...)

創建一個名稱為options的優化選項參數,其中指定的參數具有指定值,所有未指定的參數取默認值.(3)options=optimset(oldops,‘param1’,value1,’param2’,value2,...)

創建名稱為oldops的參數的拷貝,用指定的參數值修改oldops中相應的參數.用Matlab解無約束優化問題

其中(3)(4)(5)的等式右邊可選用(1)或(2)的等式右邊。函數fminbnd的算法基于黃金分割法和二次插值法,它要求目標函數必須是連續函數,并可能只給出局部最優解。常用格式如下:(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(...)

主程序為wliti1.m: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)例2:對邊長為3米的正方形鐵板,在四個角剪去相等的正方形以制成方形無蓋水槽,問如何剪法使水槽的容積最大?解先編寫M文件fun0.m如下:functionf=fun0(x)f=-(3-2*x).^2*x;主程序為wliti2.m:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval運算結果為:xmax=0.5000,fmax=2.0000.即剪掉的正方形的邊長為0.5米時水槽的容積最大,最大容積為2立方米.命令格式為:(1)x=fminunc(fun,x0);或x=fminsearch(fun,x0)(2)x=fminunc(fun,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(…);2、多元函數無約束優化問題標準型為:minF(x)說明:fminsearch是用單純形法尋優.fminunc的算法見以下幾點說明:[1]fminunc為無約束優化提供了大型優化和中型優化算法。由options中的參數LargeScale控制:

LargeScale=’on’(默認值),使用大型算法

LargeScale=’off’(默認值),使用中型算法[2]

fminunc為中型優化算法的搜索方向提供了4種算法,由options中的參數HessUpdate控制:

HessUpdate=’bfgs’(默認值),擬牛頓法的BFGS公式;

HessUpdate=’dfp’,擬牛頓法的DFP公式;

HessUpdate=’steepdesc’,最速下降法[3]fminunc為中型優化算法的步長一維搜索提供了兩種算法,由options中參數LineSearchType控制:

LineSearchType=’quadcubic’(缺省值),混合的二次和三次多項式插值;

LineSearchType=’cubicpoly’,三次多項式插

使用fminunc和fminsearch可能會得到局部最優解.例3:

minf(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)

1、編寫M-文件fun1.m:functionf=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如下:x0=[-1,1];x=fminunc(‘fun1’,x0);y=fun1(x)3、運行結果:

x=0.5000-1.0000

y=1.3029e-10例4:產銷量的最佳安排某廠生產一種產品有甲、乙兩個牌號,討論在產銷平衡的情況下如何確定各自的產量,使總利潤最大.所謂產銷平衡指工廠的產量等于市場上的銷量.基本假設1.價格與銷量成線性關系2.成本與產量成負指數關系

模型建立

若根據大量的統計數據,求出系數

b1=100,a11=1,a1

溫馨提示

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

評論

0/150

提交評論