




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄摘要3關鍵詞3一、概述3二、優化方法介紹3(一)、一維搜索方法3(二)無約束優化方法51)共軛方向的生成62)基本算法63)改進算法的基本步驟如下7三、優化設計實例101)模型102)變量103)優化設計源程序104)分析結果20四、課程總結20機械優化設計課程設計論文摘要:隨著社會經濟的迅速發展,機械優化設計作為一門為工程設計提供手段的學科,在這樣的時代背景下應運而生。針對具體的課題,通過一些設計變量而建立起目標函數的過程,稱為數學建模;應用優化方法為工程設計尋找出最優解是現代優化設計所研究的主要課題與方向。關鍵詞:機械優化設計;設計變量;目標函數;數學模型;優化方法一、 概述 優化設計
2、是20世紀60年代初發展起來的一門新學科,它是將最優化原理與計算技術應用于設計領域,為工程設計提供一種重要的科學設計方法的手段。利用這種新的設計方法,人們就可以從眾多的設計方案中尋找出最佳設計方案,從而大大提高設計效率和設計質量。因此優化設計是現代設計理論和方法的一個重要領域,它已廣泛應用于各個工業部門,成為現代工程設計的一個重要手段!二、優化方法介紹 (一)、一維搜索方法一維搜索方法可分為兩類,一類稱為試探法,這類方法是按某種給定的規律來確定區間內插入點的位置,此點位置的確定僅僅按照區間縮短如何加快,而不顧及函數值的分布關系,例如黃金分割法,裴波那契法等。另一類一維搜索法稱作插值法或函數逼近
3、法。這類方法是根據某些點處的某些信息,如函數值,一階導數,二階導數等,構造一個插值函數來逼近原來的函數,用插值函數的極小點作為區間的插入點,這類方法主要有二次插值法,三次插值法等。在此重點討論黃金分割法。黃金分割法適用于a, b區間上的任何單谷函數求極小值問題,對函數除要求“單谷”外不作其他要求,甚至可以不連續。因此,這種方法的適應面相當廣。黃金分割法也是建立在區間消去法原理基礎上的試探方法,即在搜索區間a, b內適當插入兩點1,2,并計算其函數值。1,2將區間分為三段,應用函數的單谷性質,通過函數值大小的比較,刪去其中一段,使搜索區間得以縮短。然后再在保留下來的區間上作同樣的處置,如此迭代下
4、去,使搜索區間無限縮小,從而得到極小點的數值近似解。黃金分割法要求插入點1、2的位置相對于區間a, b兩端點具有對稱性,即1bba2aba其中,為待定常數。 圖3-6除對稱要求外,黃金分割法還要求在保留下來的區間內再插入一點所形成的區間新三段,與原來區間的三段具有相同的比例分布 。設原區間a, b長度為1如圖3-6所示,保留下來的區間a, 2長度為,區間縮短率為。為了保持相同的比例分布,新插入點3應在1位置上,1在原區間的1位置應相當于在保留區間的位置。故有110取方程正數解,得(51)20.618若保留下來的區間為1, b,根據插入點的對稱性,也能推得同樣的 值。所謂的黃金分割是指將一線段劃
5、分為兩段的方法,使整段長與較長段的長度比值等于較長段與較短段的比值,即11同樣算的0.618 。可見黃金分割法能使得相鄰兩次搜索區間都具有相同的縮短率0.618,所以黃金分割法又稱為0.618法。1)黃金分割法的搜索過程是:給出初始搜索區間a, b及收斂精度,將賦以0.618 。2)按坐標點計算公式計算1 和2,并計算其對應的函數值f(1) ,f(2) 。根據消去法原理縮短搜索區間。為了能用原來的坐標點計算公式,需進行區間名稱的代換,并在保留區間中計算一個新的試驗點及其函數值。4)檢查區間是否縮短到足夠小和函數值收斂到足夠近,如果條件不滿足則返回到步驟2 。5)如果條件滿足,則取最后2試驗點的
6、平均值作為極小點的數值近似解。黃金分割法的程序框圖如圖3-7所示。 圖3-7(二)無約束優化方法前面所舉的機械優化設計問題都是在一定的限制條件下追求某一指標為最小,所以它們都屬于約束優化問題。但是有些實際問題,其數學模型本身就是一個無約束優化問題,或者除了在非常接近最終極小值的情況下,都可以按無約束優化問題來解決。研究約束優化問題的另一個原因是,通過熟悉它的解法可以為研究無約束優化問題打下良好的基礎。第三個原因,約束優化問題的求解可以通過一系列無約束優化方法來達到。由此可見,無約束優化問題的解法是優化設計方法的基本組成,也是優化方法的基礎。屬于無約束優化方法的主要有:1、最速下降法2、牛頓型法
7、3、共軛方向及共軛方向法4、共軛梯度法5、變尺度法6、坐標輪換法7、鮑威爾法8、單形替換法下面主要介紹鮑威爾法的原理及應用。鮑威爾法是直接利用函數值來構造共軛方向的一種共軛方向法。這種方法是在研究具有正定矩陣G的二次函數f(x)=1/2 xTGxbTxc的極小化問題時形成的。其基本思想是在不用導數的前提下,在迭代中逐次構造G的共軛方向。1)共軛方向的生成 設xk、 xk+1為從不同點出發,沿著同一方向dj進行一維搜索而得到的兩個極小點,如圖所示。根據梯度和等值面相互垂直的特性,dj和xk、xk+1兩點處的梯度gg、gg+1之間存在關系(dj)Tgk=0(dj)Tgk+1=0另一方面,對于上述二
8、次函數,其xk、xk+1兩點處的梯度可表示為gk=Gxk+bgk+1=G xk+1+b兩式相減得gk+1gk=G(xk+1xk)因而有(dj)T( gk+1gk)=(dj)TG(xk+1xk)=0若取方向dk= xk+1xk,如圖4-15所示,則dk和dj對G共軛。這說明只要沿著dj方向分別對函數作兩次一維搜索,得到兩個極小值xk和xk+1。那么這兩點的連線所給出的方向就是與一起對G共軛的方向。對于二維問題,f(x)的等值線為一簇橢圓,A、B為沿x1軸方向上的兩個極小值點,分別處于等值線與x1軸方向的切點上,如圖4-16所示 。根據上述分析,則A、B兩點的連線AB就是與x1軸一起對G共軛的方向
9、。沿此共軛方向進行一維搜索就可以找到函數f(x)的極小值點x*。2)基本算法 現在針對二維情況來描述鮑威爾的基本算法,如圖4-17所示。任選一初始點x0,再選兩個線性無關的向量,如坐標軸單位向量e1= 1 0T和 e2=0 1T作為初始搜索方向。從x0出發,順次沿e1、e 2作一維搜索得點x10、x20,兩點連線得一新方向dl= x20x10用dl代替e1形成兩個線性無關向量e 2、dl,作為下一輪迭代的搜索方向。再從x20出發,沿dl作一維搜索得點x01,作為下一輪迭代的初始點。從x1出發,順次沿e2、d1作一維搜索,得到點x11、x21,兩點連線得一新方向d2= x21x01x01、x21
10、兩點是從不同點x0、x11出發,分別沿d1方向進行一維搜索而得的極小點,所以x01、x21兩點連線的方向d2同d1一同對G共軛。再從x21出發,沿d2作一維搜索得點x2 。因為x2相當于從x0出發分別沿G的兩個共軛方向d1、d2進行兩次一維搜索而得到的點,所以x2點即是二維問題的極小值點x*3)改進算法的基本步驟如下:給定初始點x0(記作x00),選取初始方向組,它由n個線性無關的向量d10,d20,,dn0(如n個坐標軸單位向量e1,e2,en)所組成,置k0 。從x0k出發,順次沿d1k,d2k,,dnk作一維搜索得x1k,x2k,xnk,接著以xnk為起點,沿方向dkn+1=xnk-x0
11、k移動一個xnk-x0k的距離,得到xn+1k=xnk+(xnk-x0k)=2xnk-x0kx0k、xnk、xn+1k分別稱為一輪迭代的始點、終點和反射點。始點、終點和反射點所對應的函數值分別表示為F0=f(x0k)F2=f(xnk)F3=f(xn+1k)同時計算各中間點處的函數值,并記為fi=f(xik)(i=0,1,2,n)因此有F0=f0,F2=fn 。計算n個函數值之差f0-f1, f1-f2, fn-1-fn 。記作i=fi-1-fi(i=1,2,n)其中最大者記為m=maxi= fm-1-fm根據是否滿足判定條件F3F0和(F0-2F2+F3)(F0-F2-m)20.5m(F0-F
12、3)2來確定是否要對原方向組進行替換。若不滿足判別條件,則下輪迭代仍用原方向組,并以xnk、xn+1k中函數值小者作為下輪迭代的始點。若滿足上述判別條件,則下輪迭代應對原方向組進行替換,將dn+1k補充到原方向組的最后位置,而除掉dmk 。即新方向組為d1k,d2k,,dm-1k,dm+1k,dnk,dn+1k作為下輪迭代的搜索方向。下輪迭代的始點取為沿dn+1k方向進行一維搜索的極小點x0k+1。判斷是否滿足收斂準則。若滿足則取x0k+1為極小點,否則應置kk+1,返回2,繼續進行下一輪迭代。這樣重復迭代的結果,后面加進去的向量都彼此對G共軛,經n輪迭代即可得到一個由n個共軛方向所組成的方向
13、組。對于2次函數,最多不超過n次就可以找到極小點,而對于一般函數,往往要超過n次才能找到極小點(這里的“n”表示設計空間的維數)。改進后的鮑威爾法程序框圖如下 開始給定x0、x00x0;di0eii=n?if(xi1k) f(xik)xikxi1k+ikdikik:minf(xi1k+dik) =i1否是K0ii+1結束否是否否是kk+1x0k+1xn+1kx0k+1xnk+n+1kdn+1kn+1k:minf(xnk+dn+1k) 判別條件是否滿足?x0k+1xnkx*x0k+1|xnkx0k|?dik+1di+1k(i=m,m+1,n)dik+1di+1k(i=1,2,m1)xn+1kxn
14、kx0k xn+1k2xnkx0k 是F2F3F0f(x0k) F2f(xnk) F3f(xn+1k) imax i三、優化設計實例用鮑威爾法解決二維問題1)模型 f(x)=4(x15)2+(x26)22)變量 x1、x23)優化設計源程序#include stdio.h#include stdlib.h#include math.hdouble objf(double x)double ff;ff=4*x0*x0+x1*x1-40*x0-12*x1+136;return(ff);void jtf(double x0,double h0,double s,int n,double a,doub
15、le b)int i;double *x3,h,f1,f2,f3;for(i=0;i3;i+)xi=(double *)malloc(n*sizeof(double);h=h0;for(i=0;in;i+)*(x0+i)=x0i;f1=objf(x0);for(i=0;i=f1)h=-h0; for(i=0;in;i+) *(x2+i)=*(x0+i); f3=f1; for(i=0;in;i+) *(x0+i)=*(x1+i); *(x1+i)=*(x2+i); f1=f2; f2=f3; for(;) h=2*h; for(i=0;in;i+) *(x2+i)=*(x1+i)+h*si;
16、f3=objf(x2); if(f2f3) break; else for(i=0;in;i+) *(x0+i)=*(x1+i); *(x1+i)=*(x2+i); f1=f2; f2=f3; if(h0) for(i=0;in;i+) ai=*(x2+i); bi=*(x0+i); else for(i=0;in;i+) ai=*(x0+i); bi=*(x2+i); for(i=0;i3;i+) free(xi);double gold(double a,double b,double eps,int n,double xx)int i;double f1,f2,*x2,ff,q,w;fo
17、r(i=0;i2;i+)xi=(double *)malloc(n*sizeof(double);for(i=0;if2) for(i=0;in;i+) bi=*(x0+i); *(x0+i)=*(x1+i); f1=f2; for(i=0;in;i+) *(x1+i)=ai+0.382*(bi-ai); f2=objf(x1); else for(i=0;in;i+) ai=*(x1+i); *(x1+i)=*(x0+i); f2=f1; for(i=0;in;i+) *(x0+i)=ai+0.618*(bi-ai); f1=objf(x0); q=0;for(i=0;ieps);for(i
18、=0;in;i+) xxi=0.5*(ai+bi);ff=objf(xx);for(i=0;i2;i+)free(xi);return(ff);double oneoptim(double x0,double s,double h0,double epsg,int n,double x)double *a,*b,ff;a=(double *)malloc(n*sizeof(double);b=(double *)malloc(n*sizeof(double);jtf(x0,h0,s,n,a,b);ff=gold(a,b,epsg,n,x);free(a);free(b);return (ff)
19、;double powell(double p,double h0,double eps,double epsg,int n,double x)int i,j,m;double *xx4,*ss,*s;double f,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;ss=(double *)malloc(n*(n+1)*sizeof(double);s=(double *)malloc(n*sizeof(double);for(i=0;in;i+)for(j=0;j=n;j+) *(ss+i*(n+1)+j)=0; *(ss+i*(n+1)+i)=1;for(i=0;i4;i+)
20、xxi=(double *)malloc(n*sizeof(double);for(i=0;in;i+)*(xx0+i)=pi;for(;)for(i=0;in;i+) *(xx1+i)=*(xx0+i); xi=*(xx1+i); f0=f1=objf(x); dlt=-1; for(j=0;jn;j+) for(i=0;idlt) dlt=df; m=j; sdx=0; for(i=0;in;i+) sdx=sdx+fabs(xi-(*(xx1+i); if(sdxeps) free(ss); free(s); for(i=0;i4;i+) free(xxi); return(f); for(i=0;in;i+) *(xx2+i)=xi; f2=f; for(i=0;in;i+) *(xx
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司用人與薪酬管理制度
- 公司電話卡使用管理制度
- 公司第三方支付管理制度
- 公司組織機構iso管理制度
- 公司網絡布線機房管理制度
- 公司營業執照等管理制度
- 人工智能時代職業技能提升的影響探討
- 公司設置母嬰室管理制度
- 公司車輛gps監控管理制度
- 公司食堂工程廚具管理制度
- 媽咪愛心小屋管理制度
- 浙江省金華市卓越聯盟2024-2025學年高二下學期5月階段性聯考語文試卷(含答案)
- 中國狼瘡腎炎診治和管理指南(2025版)解讀
- 福建省廈門市2023-2024學年高二下學期期末質量監測歷史試題(解析版)
- 醫美機構醫廢管理制度
- 2025CSCOCSCO宮頸癌的診療指南更新
- 居家適老化改造指導手冊(2025年版)
- 職業技能等級認定考試保密協議書
- 2025年安全月主題宣貫課件
- 廣東省深圳市2025年高三年級下學期第二次調研考試語文試題(含答案)
- 一種砂仁精油的應用
評論
0/150
提交評論