MATLAB適合多學科、多種工作平臺,功能強大、界面友好且開放性很強的交互式大型優(yōu)秀應用軟件,特別適合科學計算、數值分析、數字信號處理、自動控制及工程應用等。 本書在第1版廣泛應用的基礎上,吸收眾多讀者的寶貴建議進行改版,大幅完善了圖書內容,以MATLAB R2017b版軟件為平臺,注重實際應用,通過大量實例,結合科學計算中的重要問題,從MATLAB的入門知識開始,詳細講解MATLAB圖形處理及圖形用戶界面,Simulink動態(tài)系統(tǒng)仿真,線性方程組求解,非線性方程(組)求解,矩陣特征值求解、優(yōu)化、統(tǒng)計,微分方程數值解,有限元方法編程等,并在每章中都有非常豐富的綜合實例。
謝龍漢,華南理工大學機械與汽車工程學院,副院長,教授。2002年畢業(yè)于浙江大學過程裝備與控制工程專業(yè)本科、碩士,之后在廣州本田汽車有限公司研發(fā)中心工作過兩年,2010年獲得香港中文大學機械與自動化工程系的博士學位。國內外學術期刊上發(fā)表30多篇學術論文,寫作經驗豐富,作品技術含量高,實用性強。
目 錄
第1部分 入 門 知 識
第1章 MATLAB基礎概述 1
1.1 MATLAB科學計算概述 1
1.2 MATLAB科學計算的優(yōu)勢 3
1.3 MATLAB工作環(huán)境 4
1.3.1 操作界面的菜單欄 4
1.3.2 桌面平臺的工具欄 13
1.3.3 桌面組件 14
1.3.4 屬性設置 15
1.3.5 工作空間常用命令 20
1.4 功能模塊 20
1.4.1 基礎工具 21
1.4.2 控制 22
1.4.3 實時目標系統(tǒng) 23
1.4.4 應用接口 24
1.4.5 數學與金融 24
1.4.6 信號通信處理及系統(tǒng)開發(fā) 26
1.4.7 測試測量 26
1.4.8 其他工具箱 27
1.5 數據輸入/輸出與文件操作 27
1.5.1 數據輸入與輸出 27
1.5.2 文件的打開與關閉 30
1.5.3 二進制文件的讀/寫操作 31
1.5.4 文本文件的讀/寫操作 32
1.5.5 數據文件定位 33
1.6 在線幫助系統(tǒng) 34
1.7 MATLAB的學習方法 37
1.8 MATLAB的安裝方法 37
第2章 MATLAB程序設計 43
2.1 程序基礎 43
2.2 數據類型和運算 45
2.2.1 常量和變量 45
2.2.2 數值數據 46
2.2.3 字符數據 48
2.2.4 邏輯數據類型 51
2.2.5 日期和時間 53
2.2.6 單元數組和結構體 54
2.3 數組與矩陣 56
2.3.1 創(chuàng)建數組 56
2.3.2 數組運算 58
2.3.3 數組處理函數 60
實例2-1 判斷數組元素是否在另一數組中出現 68
2.3.4 矩陣及其運算 69
實例2-2 簡單線性方程組求解 70
2.3.5 特殊矩陣 71
實例2-3 利用特殊矩陣快速構造矩陣 72
2.3.6 稀疏矩陣及函數 73
實例2-4 稀疏矩陣函數的巧用 74
2.4 控制語句 76
2.4.1 for循環(huán)語句 76
2.4.2 while循環(huán)語句 77
2.4.3 if-else-end語句 77
2.4.4 switch-case語句 78
2.4.5 try-catch語句 79
實例2-5 判斷矢量單調性 79
2.5 M函數 81
2.5.1 M函數構造規(guī)則 81
2.5.2 輸入/輸出參數 82
2.5.3 函數調用 83
2.5.4 用Feval進行函數運算 83
實例2-6 矢量單調性(包含子函數調用) 86
2.6 程序調試 88
實例2-7 程序調試實例 89
2.7 MATLAB編程技巧 91
2.8 綜合實例 93
實例2-8 漢諾塔問題 93
實例2-9 結構體的處理 94
第3章 繪圖與界面 97
3.1 二維繪圖 97
3.1.1 plot函數及設置 97
實例3-1 繪制二維圖的應用實例 101
3.1.2 子圖 102
3.1.3 特殊二維圖形 103
3.2 三維繪圖 105
3.2.1 三維曲線圖 105
3.2.2 特殊三維圖形 107
實例3-2 繪制三維圖應用實例 109
3.3 打印和導出圖形 110
3.3.1 用菜單打印和導出 111
3.3.2 命令行打印和導出 113
3.4 圖形用戶界面 115
3.4.1 圖形用戶界面 115
3.4.2 GUI如何工作 116
3.4.3 創(chuàng)建GUI途徑 116
3.5 用GUIDE創(chuàng)建GUI 117
3.5.1 新建一個GUI 117
3.5.2 添加組件 119
3.5.3 GUI的存儲 122
3.5.4 GUI的編程 123
3.6 菜單和工具欄 126
3.6.1 菜單的創(chuàng)建 126
3.6.2 工具欄的創(chuàng)建 129
3.7 組件 130
3.7.1 組件類型 130
3.7.2 組件屬性 131
3.8 綜合實例 132
實例3-3 稀疏矩陣排列圖 132
實例3-4 交互式用戶界面設計實例 133
第4章 Simulink仿真 134
4.1 Simulink概述 134
4.2 Simulink模塊庫 136
4.2.1 公共模塊庫 136
4.2.2 功能模塊庫 136
4.3 創(chuàng)建Simulink模型 137
4.3.1 建立或打開仿真結構圖 137
4.3.2 菜單與工具欄功能 139
4.3.3 模塊處理 139
4.3.4 線的處理 141
4.3.5 運行仿真 142
實例4-1 仿真結構圖應用實例 146
4.4 子系統(tǒng)與封裝 149
4.4.1 子系統(tǒng) 149
實例4-2 子系統(tǒng)設計應用實例 150
4.4.2 封裝 152
實例4-3 封裝設計應用實例 154
4.5 Simulink模型調試 156
4.5.1 Simulink調試器 156
4.5.2 命令行調試 158
4.6 S函數 160
4.6.1 S函數模塊 160
4.6.2 S函數工作原理 162
4.6.3 M文件的S函數編寫 163
4.6.4 M文件的S函數模板 164
實例4-4 S函數應用實例 166
4.7 綜合實例 168
實例4-5 食餌—捕食者模型 168
實例4-6 S函數種群競爭模型 169
實例4-7 動畫演示單擺運動 172
第2部分 MATLAB在科學計算中的應用
第5章 線性方程組求解 175
5.1 直接解法 176
5.1.1 Gauss消去法 176
實例5-1 Gauss消去法應用實例 177
5.1.2 選主元Gauss消去法 178
實例5-2 選主元Gauss消去法應用實例 178
5.1.3 Cholesky分解法 180
實例5-3 Cholesky分解法應用實例 181
5.2 迭代法 181
5.2.1 Jacobi迭代法 182
實例5-4 Jacobi迭代法應用實例 182
5.2.2 Gauss-Seidel迭代法 183
實例5-5 Gauss-Seidel迭代法應用實例 183
5.2.3 超松弛迭代法 184
實例5-6 超松弛迭代法應用實例 184
5.2.4 共軛梯度法 185
實例5-7 共軛梯度法應用實例 186
5.2.5 Bicg迭代法 186
實例5-8 Bicg迭代法應用實例 187
5.2.6 Bicgstab迭代法 188
實例5-9 Bicgstab迭代法應用實例 188
5.3 綜合實例 189
實例5-10 Dirichlet問題中的線性方程組求解問題 189
實例5-11 兩點邊值問題差分法線性方程組求解問題 191
第6章 非線性方程(組)求解 194
6.1 二分法 194
實例6-1 二分法應用實例 195
6.2 迭代法 196
6.2.1 牛頓法 196
實例6-2 牛頓法應用實例 197
6.2.2 割線法 198
實例6-3 割線法應用實例 198
6.2.3 擬牛頓法 199
實例6-4 擬牛頓法應用實例 199
6.2.4 Halley迭代法 200
實例6-5 Halley迭代應用實例 200
6.3 綜合實例 201
實例6-6 牛頓法求解非線性方程組 201
實例6-7 Halley迭代法求解非線性方程組 203
第7章 矩陣特征值求解 205
7.1 非對稱特征值問題 205
7.1.1 冪法 205
實例7-1 冪法實例 206
7.1.2 反冪法 207
實例7-2 反冪法實例 208
7.1.3 QR方法 210
實例7-3 QR方法實例 210
7.2 對稱特征值問題 212
7.2.1 對稱QR法 212
實例7-4 對稱QR方法實例 212
7.2.2 Jacobi方法 214
實例7-5 Jacobi方法實例 215
7.2.3 二分法 218
實例7-6 二分法實例 218
7.3 綜合實例 221
實例7-7 病態(tài)實陣的特征值問題 221
實例7-8 二點邊值問題差分離散矩陣特征值實例 221
第8章 微分方程(組)求解 224
8.1 單步法 224
8.1.1 顯式Euler方法 224
實例8-1 顯式Euler方法實例 225
8.1.2 改進的Euler方法 226
實例8-2 改進的Euler方法實例 227
8.1.3 Runge-Kutta方法 228
實例8-3 Runge-Kutta方法實例 229
8.2 線性多步法 231
8.2.1 Adams外插法 231
實例8-4 Adams外插法實例 232
8.2.2 Adams內插法 234
實例8-5 Adams內插法實例 235
8.3 有限差分法 238
8.3.1 網格剖分 238
8.3.2 數值微分 238
8.3.3 差分定解 239
實例8-6 差分法邊值問題實例 239
8.4 常微分方程組求解 241
實例8-7 微分方程組實例 241
8.5 綜合實例 242
實例8-8 一維拋物型方程差分法求解 242
實例8-9 二維波動方程求解 245
第9章 擬合與插值 249
9.1 插值運算 249
9.1.1 一維插值 249
實例9-1 一維插值實例 252
9.1.2 二維插值 254
實例9-2 二維插值實例 255
9.2 曲線擬合 256
9.2.1 多項式最小二乘擬合 256
實例9-3 多項式擬合實例 257
9.2.2 曲線擬合工具箱 259
實例9-4 曲線擬合工具箱應用實例 261
9.3 綜合實例 262
實例9-5 溫度曲線問題 262
實例9-6 根據山區(qū)地形選點海拔確定地貌 264
實例9-7 流水量與供水量問題 265
第10章 優(yōu)化 268
10.1 方程求根 268
10.2 一維最小值問題 271
10.3 多維最小值問題 272
10.4 線性規(guī)劃 273
10.4.1 線性規(guī)劃問題及數學模型 273
10.4.2 線性規(guī)劃求解 274
實例10-1 線性規(guī)劃實例 275
10.5 整型規(guī)劃 276
實例10-2 整型規(guī)劃實例 277
10.6 0-1規(guī)劃 282
實例10-3 0-1規(guī)劃實例 283
10.7 無約束非線性規(guī)劃 284
10.7.1 一維搜索 285
實例10-4 一維搜索實例 286
10.7.2 黃金分割法 288
實例10-5 黃金分割法實例 289
10.7.3 牛頓法 290
實例10-6 牛頓法無約束非線性規(guī)劃實例 291
10.8 有約束非線性規(guī)劃 292
實例10-7 有約束非線性規(guī)劃實例 293
10.9 二次規(guī)劃 294
實例10-8 二次規(guī)劃實例 296
10.10 綜合實例 297
實例10-9 運輸問題 297
實例10-10 供應與選址問題 299
實例10-11 連續(xù)投資問題 301
第11章 變換及分析 304
11.1 Fourier變換 304
11.1.1 基本Fourier變換 305
實例11-1 函數的Fourier變換 305
11.1.2 基本Fourier逆變換 306
實例11-2 函數的Fourier逆變換 307
11.1.3 離散Fourier變換 308
11.1.4 快速Fourier變換 309
11.2 Laplace變換 312
11.2.1 Laplace變換 312
實例11-3 函數的Laplace變換 313
11.2.2 Laplace逆變換 314
實例11-4 函數的Laplace逆變換 314
11.2.3 Laplace變換與LTI系統(tǒng) 316
11.3 Z變換 316
11.3.1 Z變換 316
11.3.2 Z逆變換 317
11.3.3 Z變換與離散LTI系統(tǒng) 318
11.4 濾波器的設計 320
11.5 綜合實例 323
實例11-5 濾波器的設計 323
實例11-6 濾波器的應用 327
第12章 概率及統(tǒng)計分析 329
12.1 概率密度函數與分布函數 329
12.2 隨機變量的數字特征 333
12.2.1 數學期望 333
12.2.2 方差與標準差 335
12.2.3 協方差與相關系數 336
12.2.4 中心矩 338
12.2.5 分布函數的統(tǒng)計量 338
12.3 逆分布函數及隨機數生成 339
12.3.1 逆分布函數 339
12.3.2 隨機數生成 340
實例12-1 隨機數生成 341
12.4 參數估計 342
實例12-2 參數估計實例 345
實例12-3 統(tǒng)計圖實例 350
12.5 假設檢驗 351
12.5.1 單個正態(tài)總體均值的檢驗 351
實例12-4 單個正態(tài)總體均值假設檢驗實例 352
12.5.2 兩個正態(tài)總體均值差的檢驗 353
實例12-5 兩個正態(tài)總體均值差假設檢驗實例 354
12.6 回歸分析 354
12.6.1 一元線性回歸分析 355
實例12-6 一元線性回歸分析實例 355
12.6.2 多元線性回歸分析 356
實例12-7 多元線性回歸分析實例 357
12.7 綜合實例 358
實例12-8 巖石成分分析模型 358
實例12-9 槲寄生問題 358
第13章 數值積分及復變函數 361
13.1 數值積分 361
13.1.1 中點公式 361
13.1.2 Newton-Cotes公式 362
13.1.3 Gauss求積公式 364
13.1.4 三角形上的求積公式 365
13.1.5 MATLAB提供的求積函數 366
實例13-1 數值積分公式比較 368
13.2 復變函數 369
13.2.1 復變函數的極限求導和積分 369
13.2.2 復變函數的Taylor展開 370
13.2.3 復變函數圖像 371
13.2.4 留數 371
實例13-2 復變函數留數的計算及應用 372
13.3 綜合實例 372
實例13-3 復變函數洛朗展開 372
實例13-4 三角形上的積分實例 373
第14章 有限元分析法 375
14.1 網格生成 375
14.1.1 網格生成工具 375
14.1.2 數據保存 377
實例14-1 網格生成實例 378
14.2 協調元 379
實例14-2 協調元實例 380
14.3 非協調元 382
實例14-3 非協調元實例 383
14.4 離散格式 384
14.5 構造線性方程組 385
實例14-4 構造線性方程組實例 386
14.6 線性方程組求解及誤差分析 388
實例14-5 線性方程組求解及誤差分析實例 388
14.7 綜合實例 390
實例14-6 變系數泊松方程有限元求解 390
實例14-7 求解Helmholtz方程 392
第15章 工程實例 395
15.1 特征值問題求解 395
15.1.1 網格生成 395
15.1.2 離散格式 396
15.1.3 線性方程組特征值問題求解及誤差 397
15.1.4 程序實現 398
實例15-1 特征值問題求解程序 398
15.2 對流擴散方程求解 400
15.2.1 網格生成 401
15.2.2 離散格式 402
15.2.3 線性方程組求解及誤差 402
15.2.4 程序實現 403
實例15-2 對流擴散方程求解程序 403
15.3 熱傳導方程求解 408
15.3.1 網格生成 408
15.3.2 離散格式 409
15.3.3 線性方程組的求解及誤差 410
15.3.4 程序實現 410
實例15-3 熱傳導方程求解程序 410