❶ 地震反射層析成像
在已知反射波到達時間的情況下,根據費馬原理,可以導出求解射線端點的方程組。按照史蒂文的演算法,設震源位置為(x0,y0,z0),接收點位置為(xn,yn,zn),v1和vn為震源和接收點處介質的速度。如果把地層分為n/2層,各層內速度均勻,界面與射線的交點坐標為(xi,yi,zi),各界面將反射波射線分成幾個直線段。如圖13-3-1所示,四個地層的三個分界面把反射波射線分成八個直線段。反射波的旅行時間可表示為
物探數字信號分析與處理技術
根據費馬原理,波沿射線傳播時旅行時間最短,即旅行時間t滿足
物探數字信號分析與處理技術
式(13-3-2)是(2n-2)個關於射線端點坐標(xi,yi,zi)的非線性方程組。為了求解方程,將介質模型簡化。假定界面可用多項式表示,即
物探數字信號分析與處理技術
式中:di為i界面的平均深度;L為界面數;f為多項式。若界面比較圓滑,f取三階左右,此時方程(13-3-2)可得到簡化。用鮑威爾演算法及廣義線性反演迭代可求解方程(13-3-2)。
假設地下構造和速度模型如圖13-3-2所示,用層析的方法,把虛射點上O*當作射點來確定速度,並根據此速度做波動方程偏移來修正反射界面的形態,然後再做層析處理求速度,如此反復迭代,直到得到比較正確的速度和深度為止。
圖13-3-1 反射波射線的分段
圖13-3-2 構造與速度模型
進行反射層析處理時首先需要輸入測線下方的初始速度和深度模型,並從CDP道集中拾取反射時間。每個拾取的反射波時間與一個CDP點、一個炮檢距和一個層位相對應,對其進行層析處理,直到修改後模型的旅行時與實測旅行時之差為最小,最終輸出經修正的速度-深度模型。層析成像法得出的深度剖面的准確度高於常規疊加時間剖面。
圖13-3-3和圖13-3-4為三板溪水電站邊坡潰屈體上用各種方法處理兩條地震剖面的結果對比。
圖13-3-3 P3剖面各種方法處理結果對比
圖13-3-4 S1剖面各種方法處理結果對比
在S1剖面上,鑽孔ZK4測定的潰屈體厚度為38m,反射層析成像法求出的第一層速度為880m/s,第二層速度為1600m/s。根據地質資料,第一層屬全風化層,第二層屬強風化層,共同構成了潰屈體。在ZK4處,計算的潰屈體深度是37m,二者相差1m,誤差為2.6%。
圖13-3-3是潰屈體上布置的另一條反射觀測剖面,同時開展了地震折射勘探。在兩剖面相交處反演結果見表13-3-1。
表13-3-1 反射層析成像法在兩剖面交會處的反演結果
由表中數據可見,第一、第二層處的速度和深度相差均較小,第三層深度相差偏大。經分析認為,這主要由第三層的走時誤差所引起。
由反射層析成像法、折射法和常規反射法對P3剖面和S1剖面處理的結果示於圖13-3-3和圖13-3-4。各結果之間的差異主要是由於工作方法、處理手段、觀測點距等影響所致。與常規反射波法相比,地震反射層析成像法具有計算量小、運算速度快的特點。由於是用疊前記錄數據,使反演結果更細致、可靠,計算精度高。地震反射層析成像法適用於水平層狀和彎曲界面地層,能對多層介質進行反演計算。
如有條件,剖面反射層析與井間透射層析聯合反演結果將會更好。另外,剖面反射層析的資料結果的正確性,主要與各層反射波走時的拾取有很大關系。野外工作中,在最佳窗口范圍內應盡量減小偏移距,炮間距不易過大。
❷ 鮑威爾方法是什麼
鮑威爾方法是鮑威爾於1964年提出的,以後又經過他本人的改進。該方法是一種有效的共軛梯度方向法,它可以在有限步內找到二次函數的極小點。對於非二次函數只要具有連續的二階導數,用這種方法也是有效的。
演算法:在每一輪迭代中總是有一個始點(第一輪的始點是任選的初始點)和n個線形獨立的搜索方向。從初始點出發順次沿n個方向作一維搜索得到終點。由始點和終點決定了一個新的搜索方向。判斷原向量是否需要用新的搜索方向替換。如需替換,還要進一步判斷原向量組中那個向量最壞,然後再用新產生的向量替換這個最壞的向量,以保證逐次生成共軛方向。
❸ 鮑威爾共軛方向法求解無約束優化問題之MATLAB實現
題目好像科幻武俠小說中的一章
❹ 鮑威爾方法的基本演算法與改進演算法的區別
鮑威爾基本演算法的問題在於,可能發生退化問題,具體而言就是可能在某一環迭代中出現基本方向組線性相關的情況,這種情況下按新方向替代第一個方向的方法進行替換,就會導致搜索在降維的空間中進行,無法得到原本n維空間的函數極小值,計算將失敗。
而改進的方法和原來方法本質區別在於替換方向的規則不同。改進的方法,能夠保證每輪迭代中搜索方向都線性無關,而且隨著迭代的延續,共軛的程度會逐漸增加。
具體展開比較復雜,簡單來說就是每次產生了新生方向,都要判斷一下這個方向好不好,如果不好就不換進來;如果覺得這個方向好,就看一下舊方向中哪個函數下降量最大,把這個下降量最大的方向替換掉。
❺ 用matlab寫個powell優化演算法的程序,目標函數是多元的,而尋找最優步長時只針對一元函數, 怎麼二元轉一元
obj=@(lam)f(x0+s*lam);試試這個,希望對你有所幫助
❻ 工程優化設計與MATLAB實現的其他圖書
書名:工程優化設計與MATLAB實現(修訂版)
書號:9787302266082
作者:張永恆等
定價:34元
出版日期:2011-9-5
出版社:清華大學出版社
內容簡介
本書以工程實例為背景,以MATLAB語言為工具,較全面地介紹了優化設計的理論及應用。本書主要內容包括:優化設計基本模型;優化設計數學基礎知識;一維搜索方法;無約束優化問題、有約束優化問題的經典演算法;啟發式優化演算法,包括蟻群優化、粒子群優化演算法、遺傳演算法、模擬退火演算法、禁忌演算法和人工神經網路演算法;MATLAB優化工具箱函數及應用;優化演算法工程應用實例及MATLAB基礎知識。書中配有完整的MATLAB程序。本書可作為高等工科院校有關專業優化設計方面課程的教材和教學參考書,也可供有關專業的師生和工程技術人員參考。
前言
優化設計是一門古老而新興的理論,既有著很強的應用背景,又有著堅實的數學基礎。它的數學基礎可以追溯到牛頓(Newton,1642-1727) 、萊布尼茨(W.Leibniz,1646-1716)創立的微積分理論。優化設計與運籌學有著密切的聯系,前者是後者在非線性規劃方向的延伸和發展。優化設計主要研究連續函數在有約束和無約束條件下單目標函數或多目標函數的最優值問題,而運籌學主要研究經濟活動和軍事活動中能用數量來表達的有關策劃、管理方面的問題。隨著科學技術和生產的發展,運籌學已滲入到多個領域,其本身也在不斷發展,包含了多個數學分支,如數學規劃(又包含線性規劃、非線性規劃、整數規劃、組合規劃等)、圖論、網路流、決策分析、排隊論、可靠性數學理論、庫存論、對策論、搜索論、模擬等。在運籌學方面,我國著名科學家錢學森、許國志、數學家華羅庚等作出了重要貢獻。1956年錢學森和許國志共同創建了中國第一個運籌學研究組織。從20世紀60年代開始,華羅庚持續近20年在全國范圍內推廣優選法和統籌法,產生了巨大的經濟效益。其中優選法採用的黃金分割搜索方法也是優化設計中一維搜索常用的一種方法。各種啟發式(heuristic)演算法或智能演算法,如遺傳演算法、蟻群演算法、粒子群演算法、神經網路演算法等不但能解決連續函數的優化問題,也能解決離散函數的優化問題,它們將優化設計與運籌學緊密結合起來。
廣義來說優化設計採用的方法是搜索的方法,傳統的優化設計方法主要採用線搜索方法,而啟發式優化方法採用多方位的隨機搜索方法。對非線性函數來說,在極值點附近可以用二次函數來逼近,若存在極小值,則極值點附近的函數值均大於極值點處的函數值。求連續函數極值的問題,一部分人可能會想到用求導數的方法來解決,另一部分人可能不採用求導數的方法,而直接用比較的方法來確定搜索區間和極小值。與求導數的方法相比,直接搜索法是優化設計中更基礎的方法。從優化設計的數學模型來分,優化設計問題可分為有約束的優化問題和無約束的優化設計問題;而從求解方法來分,優化設計方法可分為基於導數的方法和直接搜索方法。隨機方向法、復合型法、鮑威爾法、可行方向法均屬於直接搜索法,值得注意的是遺傳演算法、蟻群演算法、粒子群演算法等啟發式演算法均含有隨機方向法的基本內涵。
優化設計廣泛應用於航空、汽車、化工、電力、建築、機械製造等眾多領域,由於優化問題的多樣性,相應出現了多種優化設計方法,每一種方法都有其自身的特點和適用范圍,在實際應用中,特別對於大型優化設計問題,不應以一次計算結果或一種方法得出的結果作為最終的最優結果。
優化設計是以工程設計問題為背景,將最優化原理與計算技術相結合的產物。不論是從學習的角度還是從應用的角度,實踐都是非常重要的,實踐既是學習的終點又是學習的起點。本書特別強調理論與實踐的結合。實踐包括多個方面,最基本的是通過簡單的例子用手工演算來驗證演算法,然後是通過編程利用計算機實現和驗證優化演算法,最後是針對工程設計問題建立優化設計模型,選擇合適的優化演算法解決設計問題。MATLAB不但是實現數值計算的計算機高級語言,同時也是解決多種工程和數學問題的模擬軟體。本書以MATLAB語言作為程序設計語言和實踐環境,針對每一種演算法編寫了學習程序,方便讀者學習。這些程序主要為驗證優化演算法而設計,讀者可以以此為基礎編寫自己的程序。MATLAB本身包含有命令格式和GUI格式的優化工具箱,並隨著版本的升級不斷加入新的優化演算法。本書第11章簡要介紹了MATLAB優化工具箱命令格式的各種優化函數,優化工具箱函數為實現優化設計提供了極大的方便,但從學習的角度來說,應盡可能自己編程以便深刻領會和掌握所學的優化演算法。
本書修訂版保持了原書的內容,對部分內容作了修訂,完善了各章習題。本書配有電子教案,需要者可與清華大學出版社聯系。
本書由張永恆主編並統稿,蔡慧林、褚衍東審閱,何瑋、馬斌、朱凌雲(蘭州交通大學)、嚴軍(西北師范大學)參加編寫。第1章、第12.1~12.3節由張永恆編寫;第9章和第12.10節由何瑋編寫;第5、6、7章由馬斌編寫;第2、4、8章由朱凌雲編寫;第3、10、11章和第12.4~12.9節由嚴軍編寫;習題由張永恆、馬斌、朱凌雲編寫。在編寫過程中,張鵬、劉金平、程明、周志勇、寧珍、劉軍強、唐強完成了部分程序的調試工作,在此表示感謝。在編寫過程中參考了網路中有關作者的資料在此一並表示感謝。
由於作者水平有限,書中一定有不少錯誤和缺點,敬請廣大讀者提出寶貴意見。
目錄
目 錄
第1章 緒論1
1.1 最優化問題的提出1
1.2 最優化問題的分類4
1.3 優化模型的圖形表示5
1.4 有限元法引例10
1.5 多學科設計優化集成軟體iSIGHT簡介12
習題16第2章 優化設計的數學基礎18
2.1 向量與矩陣的范數18
2.1.1 向量的范數18
2.1.2 矩陣的范數18
2.2 方向導數與梯度19
2.2.1 方向導數19
2.2.2 梯度20
2.3 函數的泰勒級數展開21
2.4 無約束優化問題的極值條件22
2.5 凸集與凸函數25
2.5.1 凸集25
2.5.2 凸函數25
2.6 有約束優化問題的極值條件27
2.6.1 等式約束優化問題的極值條件27
2.6.2 不等式約束優化問題的極值條件29
習題36第3章 線性規劃37
3.1 線性規劃的標准形式37
3.2 單純形法38
3.2.1 基本解與基本可行解38
3.2.2 基本可行解的轉換42
3.2.3 單純形法的計算步驟44
3.2.4 單純形法列表計算47
3.3 單純形法的MATLAB程序及實例49
3.4 改進的單純形法51
3.4.1 改進的單純形法的基本思想52
3.4.2 改進的單純形法的計算步驟52
3.5 改進的單純形法的MATLAB程序及實例55
習題57第4章 一維搜索方法60
4.1 確定初始單峰區間的方法--進退法60
4.1.1 進退法原理60
4.1.2 進退法程序框圖及MATLAB程序61
4.2 黃金分割法63
4.2.1 黃金分割法的基本原理63
4.2.2 黃金分割法的計算方法63
4.2.3 黃金分割法的計算框圖和MATLAB程序64
4.3 拉格朗日插值多項式66
4.3.1 線性插值66
4.3.2 二次函數插值66
4.3.3 ?n?次拉格朗日插值多項式70
4.4 插值與擬合的其他方法71
4.4.1 差商與牛頓插值71
4.4.2 列維爾插值法72
4.4.3 曲線擬合的最小二乘法75
4.4.4 正交多項式及其在曲線擬合中的應用76
4.5 一元及多元非線性方程求根81
4.5.1 一元非線性方程求根81
4.5.2 多元非線性方程組求根84
習題85第5章 無約束優化問題的導數解法87
5.1 最速下降法87
5.1.1 最速下降法的基本原理87
5.1.2 最速下降法的MATLAB程序89
5.2 牛頓法90
5.2.1 牛頓法的基本原理90
5.2.2 阻尼牛頓法92
5.2.3 阻尼牛頓法的MATLAB程序93
5.3 共軛梯度法94
5.3.1 共軛方向的概念94
5.3.2 共軛方向與函數極值的關系94
5.3.3 共軛梯度法的幾種形式95
5.3.4 共軛梯度法的MATLAB程序99
5.4 變尺度法100
5.4.1 變數的尺度100
5.4.2 變尺度矩陣的建立103
5.4.3 變尺度法的MATLAB程序106
習題108第6章 無約束優化問題的直接解法109
6.1 坐標輪換法109
6.1.1 坐標輪換法的基本原理109
6.1.2 搜索方向與步長的確定109
6.1.3 坐標輪換法的MATLAB程序110
6.2 單形替換法112
6.2.1 單形替換法(一)113
6.2.2 單形替換法(二)114
6.2.3 單形替換法的MATLAB程序115
6.3 鮑威爾法119
6.3.1 鮑威爾法的原理120
6.3.2 鮑威爾基本演算法的步驟120
6.3.3 改進的鮑威爾方法121
6.4 鮑威爾法的MATLAB程序及實例125
習題127第7章 約束優化問題的直接解法129
7.1 隨機方向法129
7.1.1 隨機方向法的基本原理129
7.1.2 隨機方向法的步驟129
7.1.3 隨機方向法的MATLAB程序130
7.2 復合形法133
7.2.1 復合形法的步驟133
7.2.2 復合形法的MATLAB程序135
7.3 可行方向法140
7.3.1 可行方向法的搜索策略140
7.3.2 Zoutendijk可行方向法141
7.3.3 Rosen可行方向法144
7.3.4 Rosen可行方向法的MATLAB程序146
習題150第8章 約束優化問題的間接解法152
8.1 罰函數法152
8.1.1 內點罰函數法152
8.1.2 外點罰函數法156
8.1.3 混合罰函數法158
8.2 增廣乘子法160
8.2.1 拉格朗日乘子法160
8.2.2 等式約束的增廣乘子法162
8.2.3 不等式約束的增廣乘子法165
習題169第9章 多目標函數優化設計171
9.1 多目標優化問題172
9.1.1 多目標優化問題的數學模型172
9.1.2 多目標優化設計解的類型172
9.2 多目標優化問題的求解方法173
9.2.1 線性組合法173
9.2.2 理想點法174
9.2.3 乘除法175
習題175第10章 最優化問題的啟發式演算法177
10.1 蟻群演算法177
10.1.1 蟻群演算法求解TSP的基本原理177
10.1.2 用蟻群演算法求解函數優化問題181
10.2 粒子群優化演算法185
10.2.1 粒子群優化演算法的基本原理185
10.2.2 用粒子群演算法求解函數優化問題185
10.3 遺傳演算法189
10.3.1 遺傳演算法的基本原理189
10.3.2 混合遺傳演算法196
10.3.3 十進制編碼遺傳演算法199
10.3.4 用遺傳演算法求解TSP問題203
10.4 模擬退火演算法204
10.5 人工神經網路演算法208
10.5.1 人工神經網路的特徵及分類208
10.5.2 BP網路209
10.5.3 Hopfield神經網路模型212
習題222第11章 MATLAB優化工具箱簡介223
11.1 MATLAB常用內部數學函數223
11.2 MATLAB優化工具箱的主要函數224
11.2.1 MATLAB求解優化問題的主要函數224
11.2.2 優化函數控制參數225
11.3 線性規劃問題226
11.4 一元和多元函數的優化問題228
11.4.1 一元函數的優化問題228
11.4.2 多元函數的無約束優化問題228
11.4.3 多元函數的有約束優化問題230
11.4.4 二次規劃問題231
11.5 半無限約束多元函數優化問題233
11.6 多目標優化問題234
11.6.1 理想點法234
11.6.2 線性加權和法237
11.6.3 最大最小法239
11.6.4 目標達到法240
11.7 最小二乘法在優化及數據擬合中的應用242
11.7.1 有約束線性最小二乘243
11.7.2 最小二乘法數據(曲線)擬合之一244
11.7.3 最小二乘法數據(曲線)擬合之二245
11.7.4 最小二乘法數據(曲線)擬合之三246
11.8 非線性方程的求解247
11.8.1 一元非線性方程的解247
11.8.2 非線性方程組的解247
習題251第12章 工程優化設計實例254
12.1 平面連桿機構的優化設計254
12.1.1 曲柄搖桿機構優化設計數學模型255
12.1.2 曲柄搖桿機構優化設計的MATLAB程序及運行結果256
12.2 凸輪優化設計257
12.2.1 凸輪型線優化設計目標函數258
12.2.2 優化函數約束條件259
12.2.3 凸輪機構優化設計的MATLAB程序及計算實例259
12.3 螺栓連接的優化設計261
12.3.1 螺栓連接受力分析261
12.3.2 螺栓連接的設計變數、目標函數及約束條件262
12.3.3 螺栓連接的優化數學模型263
12.3.4 螺栓連接優化設計的MATLAB程序及運行結果263
12.4 圓柱齒輪傳動的優化設計264
12.4.1 模糊綜合評判的一般流程264
12.4.2 圓柱齒輪傳動優化設計的目標函數和設計變數266
12.4.3 圓柱齒輪傳動優化設計的約束條件267
12.4.4 最優截集水平值?λ???的確定269
12.4.5 圓柱齒輪傳動優化設計的MATLAB程序及計算結果270
12.5 圓柱螺旋彈簧的優化設計272
12.5.1 圓柱螺旋彈簧優化設計的數學模型272
12.5.2 圓柱螺旋彈簧優化設計實例274
12.6 軸的優化設計275
12.6.1 扭轉軸的優化設計275
12.6.2 圓形等截面軸的優化設計276
12.6.3 車床主軸的優化設計278
12.7 桁架的優化設計281
12.7.1 靜定桁架的優化設計281
12.7.2 三桿桁架的優化設計284
12.8 換熱器的優化設計286
12.8.1 換熱器優化設計(一)286
12.8.2 換熱器優化設計(二)289
12.9 基於優化方法的常微分方程邊值問題數值解291
12.9.1 基於MATLAB函數的求解方法291
12.9.2 求解兩點邊值問題的打靶法292
12.9.3 邊界層微分方程組及相似解293
12.9.4 流函數方程和溫度方程的求解295
12.10 含間隙機械繫統的參數優化設計306
12.10.1 力學模型及運動微分方程307
12.10.2 系統的分岔和通向混沌的道路308
12.10.3 系統優化設計的MATLAB程序309
習題312參考文獻316
❼ 用matlab編程求解powell法問題。
1/目標函數程序清單
function m=f(x1,x2)
m=x1^2+2*x2^2-4*x1-2*x1*x2
2/關於α的目標函數
function m=y(x1,x2,d1,d2,alpha)
m=(x1+alpha*d1)^2+(x2+alpha*d2)^2-(x1+alpha*d1)*(x2+alpha*d2)-10*(x1+alpha*d1)-4*(x2+
alpha*d2)+60;
3\
function [a,b]=section(x1,x2,d1,d2)
x11=x1; %給出起始點坐標x1,x2和搜索方向d1,d2
x22=x2;
d11=d1;
d22=d2;
h0=1; %初始化
h=h0;alpha1=0;
y1=y(x11,x22,d11,d22,alpha1); %代入α1求解y1
alpha2=h;y2=y(x11,x22,d11,d22,alpha2);
t=0;
if y2>y1
h=-h;alpha3=alpha1;y3=y1;t=1; %如果y2>y1,則改變搜索方向
end
while(1)
if t==1
alpha1=alpha2;y1=y2; %實現交換
alpha2=alpha3;y2=y3;
else t=1;
end
alpha3=alpha2+h;y3=y(x11,x22,d11,d22,alpha3);
if y3<y2
h=2*h; %改變搜索步長,將其加倍
else
break;
end
end
if alpha1>alpha3
tem=alpha1;alpha1=alpha3;alpha3=tem; %比較大小,保證輸出區間為【a,b】
a=alpha1;b=alpha3;
else a=alpha1;b=alpha3;
end
4\
function alpha=ALPHA(x1,x2,d1,d2,A,B)
x11=x1;x22=x2; %給出起始點坐標x1,x2和搜索方向d1,d2
d11=d1;d22=d2;
a=A;b=B; %獲取區間
epsilon=0.000001; %初始化,給定進度
r=0.618;
alpha1=b-r*(b-a);
y1=y(x11,x22,d11,d22,alpha1); %代入α1求解y1
alpha2=a+r*(b-a);
y2=y(x11,x22,d11,d22,alpha2);
while(1)
if y1>=y2 %根據區間消去法原理縮短搜索空間
a=alpha1;alpha1=alpha2;
y1=y2;
alpha2=a+r*(b-a);
y2=y(x11,x22,d11,d22,alpha2);
else
b=alpha2;alpha2=alpha1;
y2=y1;
alpha1=b-r*(b-a);
y1=y(x11,x22,d11,d22,alpha1);
end
if abs(b-a)<epsilon &
abs(y2-y1)<epsilon %判斷是否滿足進度要求
break; %滿足進度要求則退出循環迭代過程
end
end
alpha=0.5*(a+b); %返回值
5\主程序
clear all
clc
k=0;n=2;
x=[0;0;];ff(1)=f(x(1),x(2)); %初始化
epsilon=0.00001;
d=[1;
0;
0;
1;];
while(1)
x00=[x(1);x(2);];
for i=1:n
[a(i),b(i)]=section(x(2*i-1),x(2*i),d(2*i-1),d(2*i)); %調用section()函數求解一元函數有y(α)最小值時的區間
alpha(i)=ALPHA(x(2*i-1),x(2*i),d(2*i-1),d(2*i),a(i),b(i)); %調用ALPHA()函數求解y(α)最小值點α*
x(2*i+1)=x(2*i-1)+alpha(i)*d(2*i-1); %沿di方向搜索
x(2*i+2)=x(2*i)+alpha(i)*d(2*i);
ff(i+1)=f(x(2*i+1),x(2*i+2)); %搜索到的點對應的函數值
end
for i=1:n
Delta(i)=ff(i)-ff(i+1);
end
delta=max(Delta); %求出函數值之差的最大值
for i=1:n %尋找函數值之差最大值的下標
if delta==Delta(i)
m=i;
break;
end
end
d(2*n+1)=x(2*n+1)-x(1); %求出反射點搜索方向dn+1
d(2*n+2)=x(2*n+2)-x(2);
x(2*n+3)=2*x(2*n+1)-x(1); %搜索到反射點Xn+1
x(2*n+4)=2*x(2*n+2)-x(2);
ff(n+2)=f(x(2*n+3),x(2*n+4)); %反射點所對應的函數值
f0=ff(1);f2=ff(n+1);f3=ff(n+2);
k=k+1; %記錄迭代次數
R(k,:)=[k,x',d',ff]; %保存迭代過程的中間運算結果
if f3<f0 &
(f0-2*f2+f3)*(f0-f2-delta)^2<0.5*delta*(f0-f3)^2 %判斷是否需要對原方向組進行替換
[a(n+1),b(n+1)]=section(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2));
alpha(n+1)=ALPHA(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2),a(n+1),b(n+1));
x(1)=x(2*n+1)+alpha(n+1)*d(2*n+1); %沿反射方向進行搜索,將搜索結果作為下一輪迭代的始點
x(2)=x(2*n+2)+alpha(n+1)*d(2*n+2);
for i=m:n %根據函數值之差最大值的下標值m,對原方向組進行替換
d(2*i-1)=d(2*i+1);
d(2*i)=d(2*i+2);
end
else
if f2<f3 %如果不需要對原方向組進行替換,選取終點及反射點中函數值較小者作為下一輪迭代的始點
x(1)=x(2*n+1);
x(2)=x(2*n+2);
else
x(1)=x(2*n+3);
x(2)=x(2*n+4);
end
end
RR(k,:)=alpha; %保存迭代過程的中間運算結果
ff(1)=f(x(1),x(2)); %計算下一輪迭代過程需要的f0值
if
(((x(2*n+1)-x00(1))^2+(x(2*n+2)-x00(2))^2)^(1/2))<epsilon %判斷是否滿足精度要求
break; %滿足進度要求則退出循環迭代過程
end
end
xx=[x(1);x(2)]
fmin=f(x(1),x(2)) %顯示最小值及其所對應的坐標
❽ 什麼叫鮑威爾法
鮑威爾法——多維無約束優化演算法是在無約束優化演算法之一,首先選取一組共軛方向,從某個初始點出發,求目標函數在這些方向上的極小值點,然後以該點為新的出發點,重復這一過程直到獲得滿意解,其優點是不必計算目標函數的梯度就可以在有限步內找到極值點。 鮑威爾法是以共軛方向為基礎的收斂較快的直接法之一,是一種十分有效的演算法。在無約束方法中許多演算法都是以共軛方向作為搜索方向,它們具有許多特點。根據構造共軛方向的原理不同,可以形成不同的共軛方向法。 http://meccol.dhu.e.cn/JiXieYouHuaSheJi/third3.htm
❾ 關於Powell法中一維搜索的方法(matlab)
不影響,只要你的函數性質比較好,比如說充分光滑,有沒有解析表達式並不重要。
fminsearch的演算法你可以看幫助文件,上面寫的有
Algorithm
fminsearch uses the simplex search method of [1]. This is a direct search method that does not use numerical or analytic gradients.
simplex method 就是單純形法了
simplex method 一般是對多元函數優化的,Powell一般是對一元函數
課本上的simplex method一般都是針對線性規劃的,不過也有一些可以針對非線性的,比較復雜就是了,我也不明白 :)
其實優化是個很復雜的很專業的東西,MM不用搞那麼清楚,看例子會照著做就行了,如果什麼都重新自己做,還要Matlab幹嘛?