工程優化設計與MATLAB實現
工程優化設計與MATLAB實現
主要是以簡潔、完整的基本理論為基礎,以實用、多角度的工程實例為對象,以MATLAB語言為工具,介紹了優化設計的理論及應用。主要內容包括:優化設計基本模型;優化設計的數學基礎知識;線性規劃;一維搜索方法;無約束優化問題、有約束優化問題的經典演演算法;啟髮式優化演演算法,包括蟻群演演算法、粒子群優化演演算法、遺傳演演算法、模擬退火演演算法和人工神經網路演演算法;MATLAB優化工具箱函數及應用;優化演演算法工程應用實例。
《工程優化設計與MATLAB實現》可作為高等工科院校有關專業優化設計方面的教材和教學參考書,也可供有關專業師生和工程技術人員參考。
第1章 緒論
1.1 最優化問題的提出
1.2 最優化問題的分類
1.3 優化模型的圖形表示
1.4有限元法引例
1.5 多學科設計優化集成軟體iSIGHT簡介
第2章 優化設計的數學基礎
2.1 向量與矩陣的范數
2.1.1 向量的范數
2.1.2 矩陣的范數
2.2 方嚮導數與梯度
2.2.1 方嚮導數
2.2.2 梯度
2.3 函數的泰勒級數展開
2.4 無約束優化問題的極值條件
2.5 凸集與凸函數
2.5.1 凸集
2.5.2 凸函數
2.6 有約束優化問題的極值條件
2.6.1 等式約束優化問題的極值條件
2.6.2 不等式約束優化問題的極值條件
習題
第3章 線性規劃
3.1 線性規劃的標準形式
3.2 單純形法
3.2.1 基本解與基本可行解
3.2.2 基本可行解的轉換
3.2.3 單純形法的計算步驟
3.2.4 單純形法列表計算
3.3 單純形法的MATLAB程序及實例
3.4 改進的單純形法
3.4.1 改進的單純形法的基本思想
3.4.2 改進的單純形法的計算步驟
3.5 改進的單純形法的MATLAB程序及實例
習題
第4章 一維搜索方法
4.1 確定初始單峰區間的方法——進退法
4.1.1 進退法原理
4.1.2 進退法程序框圖及MATLAB程序
4.2 黃金分割法
4.2.1 黃金分割法的基本原理
4.2.2 黃金分割法的計算方法
4.2.3 黃金分割法的計算框圖和MATLAB程序
4.3 拉格朗日插值多項式
4.3.1 線性插值
4.3.2 二次函數插值
4.3.3 n次拉格朗日插值多項式
4.4 插值與擬合的其他方法
4.4.1 差商與牛頓插值
4.4.2 列維爾插值法
4.4.3 曲線擬合的最小二乘法
4.4.4 正交多項式及其在曲線擬合中的應用
4.5 一元及多元非線性方程求根
4.5.1 一元非線性方程求根
4.5.2 多元非線性方程組求根
習題
第5章 無約束優化問題的導數解法
5.1 最速下降法
5.1.1 最速下降法的基本原理
5.1.2 最速下降法的MATLAB程序
5.2 牛頓法
5.2.1 牛頓法的基本原理
5.2.2 阻尼牛頓法
5.2.3 阻尼牛頓法的MATLAB程序
5.3 共軛梯度法
5.3.1 共軛方向的概念
5.3.2 共軛方向與函數極值的關係
5.3.3 共軛梯度法的幾種形式
5.3.4 共軛梯度法的MATLAB程序
5.4 變尺度法
5.4.1 變數的尺度
5.4.2 變尺度矩陣的建立
5.4.3 變尺度法的MATLAB程序
習題
第6章 無約束優化問題的直接解法
6.1 坐標輪換法
6.1.1 坐標輪換法的基本原理
6.1.2 搜索方向與步長的確定
6.1.3 坐標輪換法的MATLAB程序
6.2 單形替換法
6.2.1 單形替換法(一)
6.2.2 單形替換法(二)
6.2.3 單形替換法的MATLAB程序
6.3 鮑威爾法
6.4 鮑威爾法的MATLAB程序及實例
習題
第7章 約束優化問題的直接解法
7.1 隨機方向法
7.1.1 隨機方向法的基本原理
7.1.2 隨機方向法的步驟
7.1.3 隨機方向法的MATLAB程序
7.2 複合形法
7.2.1 複合形法的步驟
7.2.2 複合形法的MATLAB程序
7.3 可行方向法
7.3.1 可行方向法的搜索策略
7.3.2 Zoutendijk可行方向法
7.3.3 Rosen可行方向法
7.3.4 Rosen可行方向法的MATLAB程序
習題
第8章 約束優化問題的間接解法
8.1 罰函數法
8.1.1 內點罰函數法
8.1.2 外點罰函數法
8.1.3 混合罰函數法
8.2 增廣乘子法
8.2.1 拉格朗日乘子法
8.2.2 等式約束的增廣乘子法
8.2.3 不等式約束的增廣乘子法
習題
第9章 多目標函數優化設計
9.1 多目標優化問題
9.1.1 多目標優化問題的數學模型
9.1.2 多目標優化設計解的類型
9.2 多目標優化問題的求解方法
9.2.1 線性組合法
9.2.2 理想點法
9.2.3 乘除法
第10章 最優化問題的啟髮式演演算法
10.1 蟻群演演算法
10.2 粒子群優化演演算法
10.2.1 粒子群優化演演算法的基本原理
10.2.2 用粒子群演演算法求解函數優化問題
10.3 遺傳演演算法
10.3.1 遺傳演演算法的基本原理
10.3.2 混合遺傳演演算法
10.3.3 十進位編碼遺傳演演算法
10.3.4 用遺傳演演算法求解TSP問題
10.4 模擬退火演演算法
10.5 人工神經網路演演算法
10.5.1 人工神經網路的特徵及分類
10.5.2 BP網路
10.5.3 Hopfield神經網路模型
第11章 MATLAB優化工具箱簡介
11.1 MATLAB常用內部數學函數
11.2 MATLAB優化工具箱的主要函數
11.2.1 MATLAB求解優化問題的主要函數
11.2.2 優化函數控制參數
11.3 線性規劃問題
11.4 一元和多元函數的優化問題
11.4.1 一元函數的優化問題
11.4.2 多元函數的無約束優化問題
11.4.3 多元函數的有約束優化問題
11.4.4 二次規劃問題
11.5 半無限約束多元函數優化問題
11.6 多目標優化問題
11.6.1 理想點法
11.6.2 線性加權和法
11.6.3 最大最小法
11.6.4 目標達到法
11.7 最小二乘法在優化及數據擬合中的應用
11.7.1 有約束線性最小二乘
11.7.2 最小二乘法數據(曲線)擬合之一
11.7.3 最小二乘法數據(曲線)擬合之二
11.7.4 最小二乘法數據(曲線)擬合之三
11.8 非線性方程的求解
11.8.1 一元非線性方程的解
11.8.2 非線性方程組的解
第12章 工程優化設計實例
12.1 平面連桿機構的優化設計
12.1.1 曲柄搖桿機構優化設計數學模型
12.1.2 曲柄搖桿機構優化設計的MATLAB程序及運行結果
12.2 凸輪優化設計
12.2.1 凸輪型線優化設計目標函數
12.2.2 優化函數約束條件
12.2.3 凸輪機構優化設計的MATLAB程序及計算實例
12.3 螺栓連接的優化設計
12.3.1 螺栓連接受力分析
12.3.2 螺栓連接的設計變數、目標函數及約束條件
12.3.3 螺栓連接的優化數學模型
12.3.4 螺栓連接優化設計的MATLAB程序及運行結果
12.4 圓柱齒輪傳動的優化設計
12.4.1 模糊綜合評判的一般流程
12.4.2 圓柱齒輪傳動優化設計的目標函數和設計變數
12.4.3 圓柱齒輪傳動優化設計的約束條件
12.4.4 最優截集水平值γ的確定
12.4.5 圓柱齒輪傳動優化設計的MATLAB程序及計算結果
12.5 圓柱螺旋彈簧的優化設計
12.5.1 圓柱螺旋彈簧優化設計的數學模型
12.5.2 圓柱螺旋彈簧優化設計實例
12.6 軸的優化設計
12.6.1 扭轉軸的優化設計
12.6.2 圓形等截面軸的優化設計
12.6.3 車床主軸的優化設計
12.7 桁架的優化設計
12.7.1 靜定桁架的優化設計
12.7.2 三桿桁架的優化設計
12.8 換熱器的優化設計
12.8.1 換熱器優化設計(一)
12.8.2 換熱器優化設計(二)
12.9 基於優化方法的常微分方程邊值問題數值解
12.9.1 基於MATLAB函數的求解方法
12.9.2 求解兩點邊值問題的打靶法
12.9.3 邊界層微分方程組及相似解
12.9.4 流函數方程和溫度方程的求解
12.10 含間隙機械系統的參數優化設計
12.10.1 力學模型及運動微分方程
12.10.2 系統的分岔和通向混沌的道路
12.10.3 系統優化設計的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