




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于MTLAB環(huán)境下實(shí)現(xiàn)最優(yōu)化方法阻尼牛頓法1 優(yōu)化設(shè)計(jì)法優(yōu)化設(shè)計(jì)(Optimal Design)是現(xiàn)代先進(jìn)的設(shè)計(jì)方法,這種設(shè)計(jì)方法是把數(shù)學(xué)規(guī)劃理論與計(jì)算方法應(yīng)用于實(shí)際設(shè)計(jì)中,按照預(yù)定的目標(biāo),借助計(jì)算機(jī)的運(yùn)算尋求最優(yōu)設(shè)計(jì)方案的有關(guān)參數(shù),從而獲得最好的技術(shù)經(jīng)濟(jì)效果。優(yōu)化設(shè)計(jì)反映出人們對(duì)于設(shè)計(jì)規(guī)律這一客觀世界認(rèn)識(shí)的深化。設(shè)計(jì)上的“最優(yōu)值”是指一定條件影響下所能得到的最佳設(shè)計(jì)值。最優(yōu)值是一個(gè)相對(duì)的概念,在大多數(shù)的情況下,可以用最大值或最小值來(lái)表示。概括起來(lái),優(yōu)化設(shè)計(jì)的工作包括以下兩部分內(nèi)容:(1)將實(shí)際的設(shè)計(jì)問(wèn)題的物理模型抽象為數(shù)學(xué)模型(用數(shù)學(xué)公式來(lái)表示)。建立數(shù)學(xué)模型時(shí)要選取設(shè)計(jì)變量,列出目標(biāo)函數(shù)
2、,并且給出約束條件。目標(biāo)函數(shù)是設(shè)計(jì)問(wèn)題所需求的最優(yōu)指標(biāo)與設(shè)計(jì)變量之間的函數(shù)關(guān)系式。(2)選取適當(dāng)?shù)淖顑?yōu)化方法,求解數(shù)學(xué)模型。也可歸結(jié)為在給定的條件(即約束條件)下,求出目標(biāo)函數(shù)的極值或者最優(yōu)值問(wèn)題。最優(yōu)化問(wèn)題的一般形式為:其中為決策變量,f (x)為目標(biāo)函數(shù),為約束集或可行域。如果,則上述問(wèn)題稱為無(wú)約束最優(yōu)化問(wèn)題,否則,稱為約束最優(yōu)化問(wèn)題。對(duì)于無(wú)約束最優(yōu)化問(wèn)題,也已經(jīng)提出了不少數(shù)值求解方法。例如共扼梯度法、牛頓法、Guass牛頓法、牛頓型方法、擬牛頓法、非精確牛頓法、廣義擬牛頓法等。2 牛頓法與阻尼牛頓法牛頓法是求解無(wú)約束優(yōu)化問(wèn)題最古老的算法之一。但到目前為止,它的改進(jìn)形式仍不失為最有效的算法
3、之一,因?yàn)樗畲蟮膬?yōu)點(diǎn)是收斂速度比較快。由于一個(gè)函數(shù)在一點(diǎn)附近的性態(tài)與二次函數(shù)很接近,所以往往通過(guò)建立二次摸型來(lái)構(gòu)造有效的算法,最直接而自然的二次模型,顯然就是它的泰勒展開式中只到二次項(xiàng)的部分。由此,牛頓法的基本思想是:設(shè)已知f (x)的極小點(diǎn)x*的一個(gè)近似,在附近將f(x)作泰勒展開有:其中:若正定,則有極小點(diǎn)存在,設(shè)其為,并令便得到f (x)的極小點(diǎn)的一個(gè)新的近似,由于為二次凸函數(shù),它的極小點(diǎn)很容易求,事實(shí)上,令則有:當(dāng)用迭代式時(shí),且其中由上式定義時(shí),這種迭代便稱為牛頓迭代,而算法稱為牛頓法。由牛頓法的導(dǎo)出過(guò)程可知,牛頓法面臨兩個(gè)主要的困難。一是Hessian矩陣不正定。這時(shí)二次模型不一定
4、有極小點(diǎn),甚至沒有平穩(wěn)點(diǎn)。當(dāng)不定時(shí),二次模型函數(shù)是無(wú)界的。為了克服這一困難,人們提出了若干修正措施。Goldstein和Price提出一種修正牛頓辦法:當(dāng)非正定時(shí),采用最速下降方向。Giu和Murray 提出了一個(gè)數(shù)值穩(wěn)定的處理方法,從的修改Cholesky分解形式。 牛頓法的另一困難是,它在實(shí)際執(zhí)行的過(guò)程中,每次迭代都需要精確計(jì)算Hessian矩陣的值,這就需要大量的計(jì)算,有時(shí)甚至?xí)?dǎo)致數(shù)值實(shí)驗(yàn)的失敗。后來(lái),有人提出能否定義一種牛頓型方法來(lái)避免每次迭代都計(jì)算Hessian陣的值。這樣就導(dǎo)致了人們對(duì)經(jīng)典牛頓法的修正。 其中阻尼牛頓法(修正牛頓法)具有一定的代表性。其基本思想是:為了改變?cè)寂nD
5、法定步長(zhǎng)的搜索方式,以牛頓方向?yàn)樗阉鞣较蜻M(jìn)行一維最優(yōu)化搜索,求該方向上的最優(yōu)步長(zhǎng)因子,即迭代式改為:當(dāng)用迭代式時(shí),這種迭代便稱為阻尼牛頓迭代,而算法稱為阻尼牛頓法,稱為阻尼因子。顯然,阻尼牛頓法仍然保持了原始牛頓法的二次收斂性質(zhì),同時(shí)對(duì)于非二次函數(shù)又具有函數(shù)值穩(wěn)定下降的特點(diǎn)。3 MATLAB介紹自1994年美國(guó)Math Works公司推出MATLAB以來(lái),目前MATLAB己發(fā)展成為國(guó)際上最優(yōu)秀的科技應(yīng)用軟件之一,它以強(qiáng)大的科學(xué)計(jì)算與可視化功能、簡(jiǎn)單易用、開放式可擴(kuò)展環(huán)境,特別是所附帶的30多種面向不同領(lǐng)域的工具箱支持,使得MATLAB在許多科學(xué)領(lǐng)域中成為計(jì)算機(jī)輔助設(shè)計(jì)利分析、算法研究和應(yīng)用開發(fā)
6、的基本功聚合首選平臺(tái)。MATLAB最初用于自動(dòng)控制系統(tǒng)的輔助設(shè)計(jì),而后采用了開放性開發(fā)的思想,不斷吸收各學(xué)科領(lǐng)域所開發(fā)的實(shí)用程序,形成了一套規(guī)模大、覆蓋面積廣的工具箱,包括信號(hào)處理、工程優(yōu)化、圖像處理、小波分析、系統(tǒng)識(shí)別、通信仿真、模糊控制、神經(jīng)網(wǎng)絡(luò)、統(tǒng)計(jì)分析等許多現(xiàn)代工程技術(shù)學(xué)科的內(nèi)容,它的應(yīng)用范圍涵蓋了當(dāng)今所有的工業(yè)、電子、醫(yī)療、建筑等各領(lǐng)域。對(duì)于優(yōu)化工具箱(Optimization Toolbox),是將工程上的優(yōu)化方法進(jìn)行編譯并設(shè)定為固定函數(shù),使人們從繁瑣的程序代碼中解放出來(lái),其豐富的函數(shù)使開發(fā)者無(wú)需重復(fù)編程,用戶只需要按照要求進(jìn)行調(diào)用相應(yīng)函數(shù)即可,使得整個(gè)過(guò)程簡(jiǎn)單、直接。本文將分別按
7、兩種方式進(jìn)行編程計(jì)算案例,一種是按照牛頓法的運(yùn)算法則進(jìn)行編程,另一種是直接調(diào)用優(yōu)化工具箱函數(shù)計(jì)算,將體現(xiàn)出優(yōu)化工具箱極大的優(yōu)勢(shì)。4 程序設(shè)計(jì)思路和程序模塊根據(jù)牛頓法和阻尼牛頓法的計(jì)算法則,并依照Matlab的特點(diǎn),阻尼牛頓法程序設(shè)計(jì)思路一般步驟如下:(1) 根據(jù)目標(biāo)函數(shù),任意選取初始迭代點(diǎn),給定計(jì)算精度,并初始化k=0;(2) 判斷迭代次數(shù)是否超出設(shè)定迭代次數(shù),若超出迭代次數(shù),則跳出迭代運(yùn)算,返回迭代次數(shù)、最終迭代點(diǎn)和該點(diǎn)的函數(shù)值,并計(jì)算目標(biāo)函數(shù)f(x)在點(diǎn)處的梯度以及,其中;(3) 檢驗(yàn)終止條件,若時(shí),則說(shuō)明是在精度下的最優(yōu)值,計(jì)算并輸出,否則轉(zhuǎn)入第(4)步;(4) 計(jì)算f(x)在點(diǎn)的Hes
8、sian矩陣,并求其逆矩陣,;(5) 確定牛頓方向,并沿方向按照Armjijo準(zhǔn)則做一維沸精確線搜索,得到步長(zhǎng)因子,計(jì)算:并令k=k+1,轉(zhuǎn)入第(2)步,繼續(xù)運(yùn)算。按照上面的程序設(shè)計(jì)思路,阻尼牛頓法的程序模塊和程序說(shuō)明如下:function x,f,k=dampnm(fun,gfun,Hess,x0)maxk=500;%設(shè)定最大迭代次數(shù)rho=0.55;sigma=0.4;k=0;epsilon=1e-5;%給定計(jì)算精度while(k<maxk)%判斷迭代次數(shù)是否滿足是定值gk=feval(gfun,x0);%計(jì)算函數(shù)f在x0的梯度Gk=feval(Hess,x0);% 計(jì)算函數(shù)f在x0
9、的海瑟矩陣(Hessian)dk=-Gkgk;%計(jì)算搜索方向,解方程組-gk=Gk*dkif(norm(gk)<epsilon),break;%判斷終止迭代準(zhǔn)則,是否滿足設(shè)定精度end;m=0;mk=0;while(m<20)%運(yùn)用Armijo法做非精度線搜索,確定步長(zhǎng)因子if(feval(fun,x0+rhom*dk)<feval(fun,x0)+sigma*rhom*gk'*dk)mk=m;break;endm=m+1;endx0=x0+rhomk*dk;k=k+1;endx=x0;%賦值最后迭代點(diǎn),以便輸出f=feval(fun,x);計(jì)算最后迭代點(diǎn)x的函數(shù)值上
10、面的程序保存為dampnm.m文件,以便在案例中調(diào)用。5 計(jì)算案例(1) 已知無(wú)約束優(yōu)化問(wèn)題的目標(biāo)函數(shù)是,求在初始迭代點(diǎn)下,迭代次數(shù)不超過(guò)500次的目標(biāo)函數(shù)最優(yōu)值。因?yàn)楦玫倪m應(yīng)不同的目標(biāo)函數(shù),以便在求不同目標(biāo)函數(shù)的最優(yōu)值調(diào)用程序,所以在程序模塊中沒有存儲(chǔ)具體的函數(shù),調(diào)用該程序時(shí)還需建立目標(biāo)函數(shù)、梯度和海瑟矩陣的M文件。 目標(biāo)函數(shù)的M文件:function f=fun(x)f=100*(x(1)2-x(2)2+(x(1)-1)2;目標(biāo)函數(shù)梯度的M文件:function g=gfun(x)g=400*x(1)*(x(1)2-x(2)+2*(x(1)-1),-200*(x(1)2-x(2)'
11、;目標(biāo)函數(shù)海瑟矩陣的M文件:function He=Hess(x)n=length(x);He=zeros(n,n);He=1200*x(1)2-400*x(2)+2,-400*x(1);-400*x(1),200;調(diào)用上面的程序方式為:>> x0=0 0'>> x,f,k=dampnm('fun','gfun','Hess',x0)分別在下程序運(yùn)行結(jié)果如圖一所示。運(yùn)用Matlab優(yōu)化工具箱的fminunc函數(shù),可以很輕松的實(shí)現(xiàn)上述結(jié)果。為了要調(diào)用fminunc函數(shù),首先得編寫關(guān)于f(x)的M文件,其程序代碼如下:圖一 初始點(diǎn)分別在下按照阻尼牛頓法編寫模塊程序運(yùn)行的結(jié)果圖二 運(yùn)用Matlab優(yōu)化工具箱的fminunc函數(shù),調(diào)用計(jì)算結(jié)果目標(biāo)函數(shù)的M文件:function f=myfun(x)f=100*(x(1)2-x(2)2+(x(1)-1)2;函數(shù)調(diào)用計(jì)算:>> x0=0 0;>> x,fval=fminunc(myfun,x0)fminunc函數(shù)在下運(yùn)行結(jié)果如圖二所示。6 小結(jié)優(yōu)化設(shè)計(jì)的各種
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通過(guò)游戲促進(jìn)幼兒認(rèn)知發(fā)展計(jì)劃
- 團(tuán)隊(duì)文化塑造的重要性計(jì)劃
- 學(xué)校社團(tuán)工作計(jì)劃鼓勵(lì)學(xué)生寫詩(shī)
- 2025年羧甲淀粉鈉項(xiàng)目合作計(jì)劃書
- 七年級(jí)下冊(cè)《一元一次不等式的應(yīng)用》課件與練習(xí)
- 制冷空調(diào)培訓(xùn)課件
- 強(qiáng)化廢棄物管理推動(dòng)生物降解
- 構(gòu)建系統(tǒng)耦合度控制與優(yōu)化機(jī)制
- 關(guān)于員工培訓(xùn)的會(huì)議紀(jì)要及培訓(xùn)計(jì)劃
- 功能、使用與維護(hù)指南
- 雙溪漂流可行性報(bào)告
- 采購(gòu)流程各部門關(guān)系圖
- 力士樂(lè)工程機(jī)械液壓培訓(xùn)資料(共7篇)課件
- 英語(yǔ)單詞詞根
- 問(wèn)題學(xué)生轉(zhuǎn)化策略課件
- GMP附錄計(jì)算機(jī)化系統(tǒng)整體及條款解讀
- 村光伏發(fā)電申請(qǐng)書
- 腰椎間盤突出癥中醫(yī)特色療法課件
- 施工現(xiàn)場(chǎng)專項(xiàng)消防安全檢查表
- 如何當(dāng)好學(xué)校的中層干部
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語(yǔ)試卷
評(píng)論
0/150
提交評(píng)論