基本信息
工程最佳化設計與MATLAB實現(修訂版)
作者:張永恆等
圖書詳細信息:
ISBN:9787302266082
定價:34元
印次:1-1
裝幀:平裝
印刷日期:2011-8-19
圖書簡介
本書以工程實例為背景,以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.2Zoutendijk可行方向法141
7.3.3Rosen可行方向法144
7.3.4Rosen可行方向法的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.2BP網路209
10.5.3Hopfield神經網路模型212
習題222第11章MATLAB最佳化工具箱簡介223
11.1MATLAB常用內部數學函式223
11.2MATLAB最佳化工具箱的主要函式224
11.2.1MATLAB求解最佳化問題的主要函式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