精通MATLAB最最佳化計算(第2版)

《精通MATLAB最最佳化計算(第2版)》是2012年 電子工業出版社 出版的圖書,作者是龔純 、王正林。

精通MATLAB最最佳化計算(第2版)

MATLAB精品叢書

精通MATLAB最最佳化計算(第2版)龔純 王正林 編著

ISBN 978-7-121-14734-0

2012年1月出版

定價:59.00元(含光碟1張)

16開

420頁

系統、全面的科學計算內容

豐富、詳盡的MATLAB源程式

簡介、實用的精選套用實例

內容簡介

本書的主要內容是套用MATLAB來解決最最佳化問題,通過將“最最佳化問題”、“MATLAB最佳化工具箱”和“MATLAB編程”這三方面有機結合進行講述,即一方面是使用工具箱來快速解決最最佳化問題,另一方面是通過算法編程深入解決最最佳化問題。

本書側重於最最佳化算法的MATLAB實現,同時精選了大量的最最佳化問題實例,通過實例的分析與求解,切實教會讀者掌握MATLAB在最最佳化問題方面的套用。

通過本書,讀者不僅能掌握使用MATLAB最最佳化工具箱來快速解決實際問題,而且能學會分析最佳化算法和採用MATLAB編程解決最最佳化問題,從而提高分析和解決問題的能力。

本書可作為信息、數學、經濟、金融、管理、運籌、統計、計算機以及相關理工科專業的本科生和研究生作為教材、實驗或教學參考書,也可供相關工程技術與管理人員、數學建模愛好者參考。

前 言

本書第1版已被多所院校作為數學、信息、計算機、金融、運籌類課程的教材和教輔參考書,而且由於簡單易學、內容全面、講解細緻、實例豐富而深受廣大讀者的喜愛,上市兩年多以來長期占據同類書的銷售前列,得到了讀者的認可。

根據讀者的需求和軟體的升級,我們結合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在各個領域的最佳化問題中的套用,達到學以致用。

網路下載

本書所編的源程式,都經過了反覆的調試,讀者可在博文視點網站下載,同時,我們還製作了本書的部分課件,也放在該網站上,方便讀者使用。

本書主要由龔純、王正林編寫。其他參與編寫的人員有肖靜、劉玉芳、王曉麗、肖紹英、鄧祈、王殿祜、王偉欣、朱桂蓮、王龍躍、朱艷、彭斌武、王盤桃、劉擁軍等。在此對所有參與編寫的人員表示感謝!

再次對博文視點公司的郭立老師、張月萍老師、朱沭紅老師表示衷心的感謝!對關心、支持我們的讀者表示感謝!

由於作者水平和經驗有限,書中錯漏之處在所難免,敬請讀者指正,我們的電子信箱是:

作 者

2011年盛夏於北京

目 錄

第1部分第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 小結 93

第6章 無約束一維極值問題 94

6.1 進退法 94

6.2 黃金分割法 97

6.3 斐波那契法 99

6.4 牛頓法 103

6.4.1 基本牛頓法 103

6.4.2 全局牛頓法 105

6.5 割線法 108

6.6 拋物線法 110

6.7 三次插值法 113

6.8 可接受搜尋法 115

6.8.1 Goldstein法 115

6.8.2 Wolfe-Powell法 118

6.9 MATLAB工具箱套用實例 120

6.9.1 套用fminbnd函式 120

6.9.2 套用fminsearch函式 126

6.9.3 套用改進的fminbnd函式 126

6.9.4 套用maple函式 128

6.10 小結 130

第7章 無約束多維極值問題 131

7.1 直接法 131

7.1.1 模式搜尋法 131

7.1.2 Rosenbrock法 135

7.1.3 單純形搜尋法 138

7.1.4 Powell法 142

7.2 使用導數計算的間接法 145

7.2.1 最速下降法 146

7.2.2 共軛梯度法 147

7.2.3 牛頓法 150

7.2.4 修正牛頓法 151

7.2.5 擬牛頓法 153

7.2.6 信賴域法 158

7.2.7 顯式最速下降法 161

7.3 MATLAB工具箱套用實例 163

7.3.1 套用fminsearch函式 163

7.3.2 套用fminunc函式 169

7.3.3 套用fminimax函式 171

7.4 小結 175

第8章 約束最佳化問題 176

8.1 Rosen梯度投影法 176

8.2 罰函式法 180

8.2.1 外點罰函式法 180

8.2.2 內點罰函式法 187

8.2.3 混合罰函式法 189

8.2.4 乘子法 194

8.3 坐標輪換法 197

8.4 複合形法 201

8.5 MATLAB工具箱套用實例 205

8.6 小結 206

第9章 非線性最小二乘最佳化問題 208

9.1 G-N法 208

9.2 修正G-N法 211

9.3 L-M法 213

9.4 MATLAB工具箱套用實例 217

9.5 小結 218

第10章 線性規劃 219

10.1 單純形法 219

10.2 修正單純形法 226

10.3 大M法 230

10.4 變數有界單純形法 232

10.5 MATLAB工具箱套用實例 234

10.6 小結 237

第11章 整數規劃 238

11.1 割平面法 238

11.2 分支定界法 244

11.3 0-1規劃 250

11.4 MATLAB工具箱套用實例 253

11.5 小結 254

第12章 二次規劃 255

12.1 拉格朗日法 255

12.2 起作用集算法 257

12.3 路徑跟蹤法 261

12.4 MATLAB工具箱套用實例 264

12.5 小結 268

第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 最優消費問題 383

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 396

附錄B 398

參考文獻 401

實 例 目 錄

第2章 MATLAB計算基礎

例2-1 元胞數組創建與顯示實例 20

例2-2 矩陣創建實例 22

例2-3 特殊矩陣生成函式使用實例 23

例2-4 矩陣基本運算實例 24

例2-5 矩陣函式運算實例 24

例2-6 矩陣分解運算函式使用實例 25

例2-7 複數構造實例 25

例2-8 複數矩陣構造實例 26

例2-9 複數函式繪圖實例 27

例2-10 符號表達式創建實例 29

例2-11 極限和極值的符號運算實例 31

例2-12 微積分的符號運算實例 31

例2-13 常微分方程符號運算實例 32

第3章 MATLAB繪圖基礎

例3-1 工作空間直接做圖法使用實例 34

例3-2 二維圖形繪製實例 35

例3-3 三維曲線繪製函式使用實例 38

例3-4 三維格線曲面圖繪製套用實例 38

例3-5 陰影曲面繪製函式surf使用實例 39

例3-6 繪圖命令使用實例 41

第4章 MATLAB程式設計基礎

例4-1 M檔案創建實例 46

例4-2 return語句使用實例 49

例4-3 匿名函式創建實例 51

例4-4 顯示函式輸入和輸出參數的數目實例 54

例4-5 可變數目的參數傳遞實例 55

例4-6 函式內部的輸入參數修改實例 56

例4-7 函式參數傳遞實例 56

例4-8 全局變數使用實例 57

例4-9 函式句柄創建和調用實例 58

例4-10 處理函式句柄的函式使用實例 58

例4-11 嵌套計算與直接求值的比較實例 69

例4-12 嵌套計算與非嵌套計算的比較實例 69

例4-13 例外處理機制使用實例 70

例4-14 nargin函式套用實例 71

例4-15 全局變數使用實例 72

例4-16 通過varargin傳遞參數的實例 74

第5章 MATLAB最佳化工具箱

例5-1 fminunc求解器套用實例 85

例5-2 fminsearch求解器套用實例 86

例5-3 fmincon求解器套用實例 88

例5-4 lsqnonlin求解器套用實例 89

例5-5 linprog求解器套用實例 90

例5-6 ga求解器套用實例 91

第6章 無約束一維極值問題

例6-1 進退法求解極值區間實例 96

例6-2 黃金分割法求解極值實例 99

例6-3 斐波那契法求解極值實例 102

例6-4 基本牛頓法求解極值實例 105

例6-5 全局牛頓法求解極值實例 107

例6-6 割線法求解極值實例 110

例6-7 拋物線法求解極值實例 112

例6-8 三次插值法求解極值實例 115

例6-9 Goldstein法求解極值實例 117

例6-10 Wolfe-Powell法求解極值實例 120

例6-11 fminbnd函式求解極值實例1 121

例6-12 fminbnd函式求解極值實例2 123

例6-13 fminbnd函式求解極值實例3 124

例6-14 fminbnd函式求解極值實例4 124

例6-15 fminbnd函式求解極值實例5 125

例6-16 fminsearch函式求解極值實例 126

例6-17 改進的fminbnd函式求解極值實例1 127

例6-18 改進的fminbnd函式求解極值實例2 127

例6-19 改進的fminbnd函式求解極值實例3 127

例6-20 改進的fminbnd函式求解極值實例4 128

例6-21 maple函式求極小值實例1 129

例6-22 maple函式求極小值實例2 129

例6-23 maple函式求極小值實例3 130

第7章 無約束多維極值問題

例7-1 模式搜尋法求解無約束多維極值問題實例 134

例7-2 Rosenbrock法求解無約束多維極值問題實例 137

例7-3 單純形搜尋法求解無約束多維極值問題實例 141

例7-4 Powell法求解無約束多維極值問題實例 145

例7-5 最速下降法求解無約束多維極值問題實例 147

例7-6 共軛梯度法求解無約束多維極值問題實例 149

例7-7 牛頓法求解無約束多維極值問題實例 151

例7-8 修正牛頓法求解無約束多維極值問題實例 153

例7-9 DFP法求解無約束多維極值問題實例 156

例7-10 BFGS法求解無約束多維極值問題實例 158

例7-11 信賴域法求解無約束多維極值問題實例 160

例7-12 顯式最速下降法求正定二次函式極值的套用實例 162

例7-13 fminsearch函式求解無約束多維極值問題實例1 164

例7-14 fminsearch函式求解無約束多維極值問題實例2 164

例7-15 fminsearch函式求解無約束多維極值問題實例3 169

例7-16 fminunc函式求解無約束多維極值問題實例 170

例7-17 fminimax函式求解無約束多維極值問題實例 174

第8章 約束最佳化問題

例8-1 Rosen梯度投影法求解約束最佳化問題實例 179

例8-2 外點罰函式法套用實例 182

例8-3 通用罰函式法套用實例 184

例8-4 外點混合罰函式法套用實例 186

例8-5 內點罰函式法求解約束最佳化問題實例 189

例8-6 混合罰函式法求解約束最佳化問題實例 192

例8-7 加速混合罰函式法求解約束最佳化問題實例 194

例8-8 乘子法求解約束最佳化問題實例 196

例8-9 坐標輪換法求解約束最佳化問題實例 200

例8-10 複合形法求解約束最佳化問題實例 204

例8-11 fmincon函式求解約束最佳化問題實例 205

第9章 非線性最小二乘最佳化問題

例9-1 G-N法求解非線性最小二乘最佳化問題實例 210

例9-2 修正G-N法求解非線性最小二乘最佳化問題實例 212

例9-3 L-M法求解非線性最小二乘最佳化問題實例 215

例9-4 lsqnonlin求解非線性最小二乘最佳化問題實例 217

第10章 線性規劃

例10-1 單純形法求解線性規劃實例1 222

例10-2 單純形法求解線性規劃實例2 223

例10-3 修正單純形法求解線性規劃實例 229

例10-4 大M法求解線性規劃實例 231

例10-5 變數有界單純形法求解線性規劃實例 232

例10-6 linprog函式求解線性規劃實例1 235

例10-7 linprog函式求解線性規劃實例2 235

例10-8 linprog函式求解線性規劃實例3 236

例10-9 linprog函式求解線性規劃實例4 236

第11章 整數規劃

例11-1 割平面法求解整數規劃實例 244

例11-2 分支定界法求解整數規劃實例1 249

例11-3 分支定界法求解整數規劃實例2 249

例11-4 0-1規劃套用實例 252

例11-5 bintprog函式求解0-1規劃實例 253

第12章 二次規劃

例12-1 拉格朗日法求解二次規劃實例 256

例12-2 起作用集法求解二次規劃實例 260

例12-3 路徑跟蹤法求解二次規劃實例 264

例12-4 quadprog函式求解二次規劃實例1 266

例12-5 quadprog函式求解二次規劃實例2 266

第13章 粒子群最佳化算法

例13-1 基本粒子群算法套用實例 273

例13-2 帶壓縮因子的粒子群算法套用實例 278

例13-3 線性遞減權重的粒子群算法套用實例 281

例13-4 自適應權重的粒子群算法套用實例 285

例13-5 隨機權重的粒子群算法套用實例 288

例13-6 同步變化的學習因子粒子群算法套用實例 290

例13-7 異步變化的學習因子粒子群算法套用實例 293

例13-8 二階粒子群算法套用實例 296

例13-9 二階振盪粒子群算法套用實例 299

例13-10 混沌粒子群算法套用實例 302

例13-11 基於自然選擇的粒子群算法套用實例 305

例13-12 基於雜交的粒子群算法套用實例 308

例13-13 基於模擬退火的粒子群算法套用實例 311

第14章 遺傳算法

例14-1 基本遺傳算法套用實例用 317

例14-2 順序選擇遺傳算法套用實例 321

例14-3 適值函式標定的遺傳算法套用實例 324

例14-4 大變異遺傳算法套用實例 329

例14-5 自適應遺傳算法套用實例 333

例14-6 雙切點交叉遺傳算法套用實例 336

例14-7 多變異位自適應遺傳算法套用實例 340

例14-8 最佳化工具的ga求解器套用實例1 341

例14-9 最佳化工具的ga求解器套用實例2 342

第15章 工程最最佳化問題實例

例15-1 生產任務分配問題套用實例1 346

例15-2 生產任務分配問題套用實例2 347

例15-3 運輸問題套用實例 350

例15-4 生產運輸問題套用實例1 354

例15-5 生產運輸問題套用實例2 356

例15-6 資源利用問題套用實例 359

例15-7 下料問題套用實例 360

例15-8 配套問題套用實例 362

例15-9 有限選址問題套用實例 364

例15-10 生產組織與計畫問題套用實例 365

例15-11 選址問題套用實例 366

例15-12 銷售利潤最大化問題套用實例 368

例15-13 庫存問題套用實例1 369

例15-14 庫存問題套用實例2 370

例15-15 庫存問題套用實例3 371

例15-16 最大體積問題套用實例 371

例15-17 資源分配問題套用實例 372

例15-18 和三角形有關的極值問題套用實例1 373

例15-19 和三角形有關的極值問題套用實例2 373

例15-20 點到曲線距離問題套用實例1 374

例15-21 點到曲線距離問題套用實例2 375

例15-22 點到曲線距離問題套用實例3 377

例15-23 曲線到曲線距離問題套用實例 379

第16章 經濟金融最最佳化問題實例

例16-1 未考慮銷售影響的利潤最大化問題實例 382

例16-2 考慮銷售影響的利潤最大化問題實例 383

例16-3 最優消費問題套用實例 384

例16-4 最優投資分配問題套用實例 385

例16-5 資金最優使用問題實例 387

例16-6 古諾競爭模型套用實例 389

例16-7 斯塔克爾伯格模型套用實例 390

例16-8 標準均值-方差投資組合套用實例 391

例16-9 有上界的均值-方差投資組合套用實例 392

例16-10 有交易成本的均值-方差投資組合套用實例 393

例16-11 自融資均值-方差投資組合套用實例 394

相關詞條

熱門詞條

聯絡我們