內容簡介
《精通MATLAB最最佳化計算(第3版)》的主要內容是套用MATLAB來解決最最佳化問題,通過將“最最佳化問題”、“MATLAB最佳化工具箱”和“MATLAB編程”這三方面有機結合進行講述,實用性非常強,最佳化的方法也非常豐富,包括無約束極值求解、約束最佳化、非線性最小二乘最佳化、線性規劃、整數規劃、二次規劃、粒子群最佳化算法和遺傳算法。
《精通MATLAB最最佳化計算(第3版)》側重於最最佳化算法的MATLAB實現,同時精選了大量的最最佳化問題實例,通過實例的分析與求解,切實教會讀者掌握MATLAB在最最佳化問題方面的套用。
通過《精通MATLAB最最佳化計算(第3版)》,讀者不僅能掌握使用MATLAB最最佳化工具箱來快速解決實際問題,而且能學會分析最佳化算法和採用MATLAB編程解決最最佳化問題,從而提高分析和解決問題的能力。
《精通MATLAB最最佳化計算(第3版)》可供信息、數學、經濟、金融、管理、運籌、統計、計算機以及相關理工科專業的本科生和研究生作為教材、實驗或教學參考書,也可供相關工程技術與管理人員、數學建模愛好者參考。
內容提要
《精通MATLAB最最佳化計算(第3版)》的主要內容是套用MATLAB來解決最最佳化問題,通過將“最最佳化問題”、“MATLAB最佳化工具箱”和“MATLAB編程”這三方面有機結合進行講述,實用性非常強,最佳化的方法也非常豐富,包括無約束極值求解、約束最佳化、非線性最小二乘最佳化、線性規劃、整數規劃、二次規劃、粒子群最佳化算法和遺傳算法。
《精通MATLAB最最佳化計算(第3版)》側重於最最佳化算法的MATLAB實現,同時精選了大量的最最佳化問題實例,通過實例的分析與求解,切實教會讀者掌握MATLAB在最最佳化問題方面的套用。
通過《精通MATLAB最最佳化計算(第3版)》,讀者不僅能掌握使用MATLAB最最佳化工具箱來快速解決實際問題,而且能學會分析最佳化算法和採用MATLAB編程解決最最佳化問題,從而提高分析和解決問題的能力。
《精通MATLAB最最佳化計算(第3版)》可供信息、數學、經濟、金融、管理、運籌、統計、計算機以及相關理工科專業的本科生和研究生作為教材、實驗或教學參考書,也可供相關工程技術與管理人員、數學建模愛好者參考。
目錄
第1篇 MATLAB入門篇
第1章 MATLAB概述 2
1.1 MATLAB的產生與發展 2
1.2 MATLAB的優勢與特點 3
1.3 MATLAB系統的構成 4
1.4 MATLAB桌面操作環境 5
1.4.1 MATLAB啟動和退出 5
1.4.2 MATLAB主選單及功能 7
1.4.3 MATLAB命令視窗 9
1.4.4 MATLAB工作空間 11
1.4.5 M檔案編輯/調試器 14
1.4.6 圖形視窗 15
1.4.7 MATLAB檔案管理 16
1.4.8 MATLAB幫助使用 17
1.5 MATLAB的工具箱 17
1.6 小結 18
第2章 MATLAB計算基礎 19
2.1 MATLAB數值類型 19
2.2 關係運算和邏輯運算 21
2.3 矩陣及其運算 22
2.3.1 矩陣的創建 22
2.3.2 矩陣的運算 23
2.4 複數及其運算 25
2.4.1 複數的表示 25
2.4.2 複數的繪圖 26
2.4.3 複數的操作函式 27
2.5 符號運算 28
2.5.1 符號運算概述 28
2.5.2 常用的符號運算 30
2.6 小結 32
第3章 MATLAB繪圖基礎 33
3.1 MATLAB繪圖的基本步驟 33
3.2 在工作空間直接繪圖 34
3.3 利用繪圖函式繪圖 35
3.3.1 二維圖形 35
3.3.2 三維圖形 36
3.4 圖形的修飾 40
3.5 小結 42
第4章 MATLAB編程基礎 43
4.1 MATLAB編程概述 43
4.2 MATLAB編程原則 44
4.3 M檔案 45
4.4 MATLAB程式流程控制 47
4.5 MATLAB的函式及調用 50
4.5.1 函式類型 50
4.5.2 函式參數傳遞 53
4.6 函式句柄 57
4.7 MATLAB程式調試 59
4.7.1 常見程式錯誤 59
4.7.2 調試方法 61
4.7.3 調試工具 62
4.7.4 M檔案分析工具 65
4.8 MATLAB編程技巧 68
4.8.1 嵌套計算 68
4.8.2 循環計算 70
4.8.3 使用例外處理機制 70
4.8.4 使用全局變數 72
4.8.5 通過varargin傳遞參數 74
4.9 小結 75
第2篇 最佳化計算基礎篇
第5章 MATLAB最佳化工具箱 78
5.1 工具箱概述 78
5.1.1 工具箱的功能 78
5.1.2 工具箱的特色 78
5.1.3 工具箱的結構 79
5.2 工具箱函式 79
5.3 GUI最佳化工具 82
5.3.1 GUI最佳化工具的啟動 82
5.3.2 GUI最佳化工具的界面 83
5.3.3 GUI最佳化工具使用步驟 84
5.3.4 GUI最佳化工具套用實例 85
5.4 小結 92
第6章 無約束一維極值問題 93
6.1 進退法 93
6.2 黃金分割法 96
6.3 斐波那契法 98
6.4 牛頓法 102
6.4.1 基本牛頓法 102
6.4.2 全局牛頓法 104
6.5 割線法 107
6.6 拋物線法 109
6.7 三次插值法 112
6.8 可接受搜尋法 114
6.8.1 Goldstein法 114
6.8.2 Wolfe-Powell法 117
6.9 MATLAB工具箱套用實例 119
6.9.1 套用fminbnd函式 119
6.9.2 套用fminsearch函式 125
6.9.3 套用改進的fminbnd函式 125
6.9.4 套用maple函式 127
6.10 小結 129
第7章 無約束多維極值問題 130
7.1 直接法 130
7.1.1 模式搜尋法 130
7.1.2 Rosenbrock法 134
7.1.3 單純形搜尋法 137
7.1.4 Powell法 141
7.2 使用導數計算的間接法 144
7.2.1 最速下降法 145
7.2.2 共軛梯度法 146
7.2.3 牛頓法 149
7.2.4 修正牛頓法 150
7.2.5 擬牛頓法 152
7.2.6 信賴域法 158
7.2.7 顯式最速下降法 160
7.3 MATLAB工具箱套用實例 162
7.3.1 套用fminsearch函式 162
7.3.2 套用fminunc函式 168
7.3.3 套用fminimax函式 170
7.4 小結 174
第8章 約束最佳化問題 175
8.1 Rosen梯度投影法 175
8.2 罰函式法 179
8.2.1 外點罰函式法 179
8.2.2 內點罰函式法 186
8.2.3 混合罰函式法 188
8.2.4 乘子法 193
8.3 坐標輪換法 196
8.4 複合形法 200
8.5 MATLAB工具箱套用實例 204
8.6 小結 205
第9章 非線性最小二乘最佳化問題 207
9.1 G-N法 207
9.2 修正G-N法 210
9.3 L-M法 212
9.4 MATLAB工具箱套用實例 216
9.5 小結 217
第10章 線性規劃 218
10.1 單純形法 218
10.2 修正單純形法 225
10.3 大M法 229
10.4 變數有界單純形法 231
10.5 MATLAB工具箱套用實例 233
10.6 小結 236
第11章 整數規劃 237
11.1 割平面法 237
11.2 分支定界法 243
11.3 0-1規劃 249
11.4 MATLAB工具箱套用實例 252
11.5 小結 253
第12章 二次規劃 254
12.1 拉格朗日法 254
12.2 起作用集算法 256
12.3 路徑跟蹤法 260
12.4 MATLAB工具箱套用實例 263
12.5 小結 267
第3篇 最佳化計算高級篇
第13章 粒子群最佳化算法 270
13.1 粒子群算法概述 270
13.2 基本粒子群算法 271
13.3 帶壓縮因子的粒子群算法 275
13.4 權重改進的粒子群算法 279
13.4.1 線性遞減權重法 279
13.4.2 自適應權重法 283
13.4.3 隨機權重法 286
13.5 變學習因子的粒子群算法 288
13.5.1 同步變化的學習因子 288
13.5.2 異步變化的學習因子 291
13.6 二階粒子群算法 294
13.7 二階振盪粒子群算法 296
13.8 混沌粒子群算法 299
13.9 混合粒子群算法 303
13.9.1 基於自然選擇的算法 303
13.9.2 基於雜交的算法 306
13.9.3 基於模擬退火的算法 309
13.10 小結 312
第14章 遺傳算法 313
14.1 遺傳算法概述 313
14.2 基本遺傳算法 314
14.3 順序選擇遺傳算法 318
14.4 適值函式標定的遺傳算法 322
14.5 大變異遺傳算法 326
14.6 自適應遺傳算法 330
14.7 雙切點交叉遺傳算法 333
14.8 多變異位自適應遺傳算法 337
14.9 MATLAB工具箱套用實例 341
14.10 小結 344
第4篇 綜合實戰篇
第15章 工程最最佳化實戰 346
15.1 線性規劃實戰 346
15.1.1 生產任務分配問題 346
15.1.2 運輸問題 349
15.1.3 生產運輸問題 353
15.1.4 資源利用問題 359
15.2 整數規劃實戰 360
15.2.1 下料問題 360
15.2.2 配套問題 362
15.2.3 有限選址問題 364
15.2.4 生產組織與計畫問題 365
15.3 無約束最佳化實戰 366
15.3.1 選址問題 366
15.3.2 銷售利潤問題 368
15.3.3 庫存問題 369
15.4 約束最佳化實戰 371
15.4.1 最大體積問題 371
15.4.2 資源分配問題 372
15.4.3 和三角形有關的極值問題 373
15.4.4 點到曲線的距離 374
15.4.5 曲線到曲線的距離 378
15.5 小結 380
第16章 經濟金融最最佳化實戰 381
16.1 最大利潤問題 381
16.1.1 不考慮銷售影響 381
16.1.2 考慮銷售影響 382
16.2 最優消費問題 384
16.3 最優投資分配問題 385
16.4 最優資金使用問題 387
16.5 最優產量問題 388
16.5.1 古諾競爭模型 388
16.5.2 斯塔克爾伯格競爭模型 389
16.6 最優投資組合問題 390
16.6.1 標準均值-方差組合 391
16.6.2 有上界的均值-方差組合 392
16.6.3 有交易成本的均值-方差組合 393
16.6.4 自融資均值-方差投資組合 394
16.7 小結 395
附錄A MATLAB最佳化工具箱函式注釋 396
附錄B 本書所編寫的最佳化算法程式索引 398
參考文前 401
前言
第3版前言
5年修訂了3版,長期占據同類書的銷售前列,這樣的結果我們是點讚的。本書還因為簡單易學、內容全面、講解細緻、實例豐富而深受廣大讀者的喜愛,同時也積累了不少“冬粉”,而且還有不少冬粉給我們反饋,提出了非常不錯的意見和建議,這些冬粉,你們真是我們的“魚翅”,太謝謝了!
根據讀者的需求和軟體的升級,我們結合MATLAB軟體的最新版本,對全書的內容進行了完善與最佳化,使之更加適合讀者的需要。
新版導讀
全書分16章進行展開,分為MATLAB入門篇、最佳化計算基礎篇、最佳化計算高級篇和綜合實戰篇。
1.MATLAB入門篇(第1~4章)
包括MATLAB概述、MATLAB計算基礎、MATLAB繪圖基礎、MATLAB編程基礎等內容。
MATLAB具有強大的計算功能和數據可視化功能,是首選的計算軟體。了解軟體,掌握其計算和繪圖兩大功能,熟練使用MATLAB進行編程是套用MATLAB的基礎。
2.最佳化計算基礎篇(第5~12章)
包括MATLAB最佳化工具箱、無約束一維極值問題、無約束多維極值問題、約束最佳化問題、非線性最小二乘最佳化問題、線性規劃、整數規劃、二次規劃等內容。
從理論與實際結合的角度出發,介紹常用的7類最佳化方法及其算法,採用簡潔明了的套路講述:(1)算法原理,(2)算法步驟,(3)算法的MATLAB實現,(4)算法舉例。
書中不僅介紹MATLAB最佳化工具箱中這些算法的實現函式,還著重編寫了算法的MATLAB程式,並通過實例進行驗證。
3.最佳化計算高級篇(第13~14章)
包括粒子群最佳化算法、遺傳算法等內容。
講述兩類常用的現代最佳化方法,對其中的典型最佳化算法一一通過MATLAB編程實現,拓展了MATLAB解決最佳化問題中的難解問題。
4.綜合實戰篇(第15~16章)
包括工程最最佳化實戰和經濟金融最最佳化實戰等內容。
立足於典型、實際的最佳化套用問題,綜合展示套用MATLAB實現最佳化計算的全過程,即問題分析、數學建模、確定算法、運用MATLAB完成最佳化計算。
通過實戰教會讀者如何根據實際問題的特點抽象出不同類型的模型,然後選擇不同的方法進行計算並進行數值實現。而且還觸類旁通地向讀者介紹MATLAB在若干領域的最佳化問題中的套用,達到學以致用。
本書主要由龔純、王正林編寫。其他參與編寫的人員有肖靜、鍾頌飛、王曉麗、肖紹英、鄒求來、王殿祜、王偉欣、朱桂蓮、王龍躍、朱艷、王權、王盤桃、劉擁軍等。在此對所有參與編寫的人員表示感謝!
再次對博文視點公司的郭立老師表示衷心的感謝!對關心、支持我們的讀者,尤其是那些給我們反饋問題、促進我們不斷提高的讀者表示感謝!
作 者
2014年盛夏於北京