第Ⅰ部分 基礎知識
第1章 引言 3
1.1 使用MATLAB 4
1.1.1 算術 5
1.1.2 變量 6
1.1.3 數學函數 7
1.1.4 函數和命令 7
1.1.5 向量 7
1.1.6 線性方程組 9
1.1.7 教程和演示 10
1.2 Desktop 11
1.2.1 使用Editor和運行腳本 12
1.2.2 幫助、發布和視圖 14
1.2.3 符號與MuPAD Notebook
APP(記事本應用程序) 17
1.2.4 其他APP 20
1.2.5 附加特性 20
1.3 示例程序 22
1.3.1 剪切和粘貼 22
1.3.2 保存程序:腳本文件 23
1.3.3 程序實戰 25
1.4 本章小結 26
1.5 本章練習 26
第2章
MATLAB基礎 27
2.1 變量 27
2.2 工作空間 28
2.3 陣列:向量與矩陣 29
2.3.1 初始化向量:顯式列表 29
2.3.2 初始化向量:冒號運算符 31
2.3.3 linspace和logspace函數 31
2.3.4 轉置向量 32
2.3.5 下標 32
2.3.6 矩陣 32
2.3.7 捕獲輸出 33
2.3.8 結構規劃 34
2.4 重力作用下的垂直運動 35
2.5 運算符、表達式和語句 36
2.5.1 數字 37
2.5.2 數據類型 37
2.5.3 算術運算符 37
2.5.4 運算符的優先級 38
2.5.5 冒號運算符 39
2.5.6 轉置運算符 39
2.5.7 陣列算術運算 39
2.5.8 表達式 40
2.5.9 語句 41
2.5.10 語句、命令和函數 42
2.5.11 公式向量化 42
2.6 輸出 45
2.6.1 disp語句 45
2.6.2 format命令 46
2.6.3 比例因子 47
2.7 for循環 48
2.7.1 用牛頓法計算平方根 48
2.7.2 階乘! 49
2.7.3 數列的極限 49
2.7.4 基本for結構 50
2.7.5 單行中的for語句 51
2.7.6 更加一般化的for語句 51
2.7.7 通過向量化來避免使用for循環 52
2.8 判斷 54
2.8.1 單行if語句 54
2.8.2 if-else結構 56
2.8.3 單行if-else語句 57
2.8.4 elseif 57
2.8.5 邏輯運算符 58
2.8.6 多個if與elseif的對比 59
2.8.7 嵌套if 60
2.8.8 將if向量化? 60
2.8.9 switch語句 60
2.9 復數 61
2.10 本章小結 63
2.11 本章練習 64
第3章 程序設計與算法開發 71
3.1 程序設計流程 72
3.2 MATLAB函數編程 79
3.2.1 內聯對象:諧振子 79
3.2.2 MATLAB函數:y=f(x) 81
3.3 本章小結 82
3.4 本章練習 83
第4章
MATLAB函數與數據導入導出工具 85
4.1 常用函數 85
4.2 導入和導出數據 90
4.2.1 load和save命令 90
4.2.2 導出文本(ASCII)數據 90
4.2.3 導出文本(ASCII)數據 91
4.2.4 導出二進制數據 91
4.3 本章練習 92
第5章 邏輯向量 95
5.1 示例 96
5.1.1 不連續圖 96
5.1.2 避免除零 97
5.1.3 避免無窮 97
5.1.4 對隨機數進行計數 98
5.1.5 擲骰子 99
5.2 邏輯運算符 100
5.2.1 運算符的優先級 101
5.2.2 危險 101
5.2.3 邏輯運算符和向量 102
5.3 將邏輯向量作為下標 102
5.4 邏輯函數 104
5.5 用邏輯向量代替elseif階梯 105
5.6 本章小結 107
5.7 本章練習 107
第6章 矩陣和陣列 111
6.1 矩陣 111
6.1.1 具體示例 111
6.1.2 創建矩陣 113
6.1.3 下標 113
6.1.4 轉置 113
6.1.5 冒號運算符 114
6.1.6 復制行和列 116
6.1.7 刪除行和列 117
6.1.8 初等矩陣 118
6.1.9 特殊矩陣 119
6.1.10 對矩陣使用MATLAB函數 119
6.1.11 操縱矩陣 120
6.1.12 對矩陣進行陣列(元素對元素)運算 120
6.1.13 矩陣和for循環 121
6.1.14 矩陣的可視化 121
6.1.15 將嵌套for循環向量化:貸款償還表格 121
6.1.16 多維陣列 124
6.2 矩陣運算 124
6.2.1 矩陣乘法 124
6.2.2 矩陣求冪運算 126
6.3 其他矩陣函數 126
6.4 種群增長:萊斯利矩陣 126
6.5 馬爾可夫過程 129
6.6 線性方程 131
6.6.1 MATLAB中的解法 132
6.6.2 殘量 133
6.6.3 超定方程組 133
6.6.4 欠定方程組 134
6.6.5 病態 134
6.6.6 矩陣除法 135
6.7 稀疏矩陣 136
6.8 本章小結 138
6.9 本章練習 138
第7章 函數M-文件 141
7.1 示例:再看牛頓法 141
7.2 基本規則 143
7.2.1 子函數 147
7.2.2 私有函數 147
7.2.3 P-code文件 147
7.2.4 使用分析工具提高M-文件的性能 147
7.3 函數句柄 148
7.4 命令/函數對偶性 149
7.5 函數名解析 150
7.6 調試M-文件 150
7.6.1 調試腳本文件 150
7.6.2 調試函數 152
7.7 遞歸 152
7.8 本章小結 153
7.9 本章練習 154
第8章 循環 157
8.1 使用連續for語句的確定循環 157
8.1.1 二項式系數 157
8.1.2 更新過程 158
8.1.3 嵌套for語句 159
8.2 使用連續while語句的不確定循環 160
8.2.1 猜謎游戲 160
8.2.2 while語句 161
8.2.3 投資翻倍的時間 161
8.2.4 質數 162
8.2.5 拋射體軌跡 163
8.2.6 break和continue語句 165
8.2.7 目錄 165
8.3 本章小結 166
8.4 本章練習 166
第9章
MATLAB圖形 171
9.1 基本二維圖形 171
9.1.1 標簽 172
9.1.2 在相同的坐標軸上繪制多個圖形 173
9.1.3 線型、標記和顏色 173
9.1.4 坐標軸限制 174
9.1.5 在一幅圖中繪制多個圖形:subplot 175
9.1.6 figure、clf和cla函數 176
9.1.7 圖形輸入 176
9.1.8 對數作圖 176
9.1.9 極坐標作圖 177
9.1.10 繪制快速變化的數學函數:
fplot 178
9.1.11 屬性編輯器 179
9.2 三維作圖 179
9.2.1 plot3 179
9.2.2 使用comet3繪制三維動畫 180
9.2.3 網面 180
9.2.4 等高線圖 182
9.2.5 使用NaN剪切曲面 183
9.2.6 可視化向量場 183
9.2.7 矩陣的可視化 184
9.2.8 三維圖形的旋轉 185
9.3 句柄圖形 186
9.3.1 獲得句柄 186
9.3.2 圖形對象的屬性和修改方法 187
9.3.3 句柄向量 188
9.3.4 圖形對象創建函數 189
9.3.5 指定父對象 189
9.3.6 定位圖形 190
9.4 編輯繪圖 191
9.4.1 繪圖編輯模式 191
9.4.2 屬性編輯器 191
9.5 動畫 192
9.6 顏色等屬性 195
9.6.1 色圖 195
9.6.2 曲面繪圖的顏色 196
9.6.3 Truecolor(真彩) 197
9.7 光照和鏡頭 198
9.8 保存、打印和導出圖形 198
9.8.1 保存和打開圖像文件 198
9.8.2 打印圖形 199
9.8.3 導出圖形 199
9.9 本章小結 199
9.10 本章練習 200
第10章 作為陣列的向量以及其他數據結構 203
10.1 更新過程 203
10.1.1 單位時間步長 204
10.1.2 非單位時間步長 206
10.1.3 使用函數 207
10.1.4 精確解 208
10.2 頻率、柱狀圖和直方圖 209
10.2.1 隨機漫步 209
10.2.2 直方圖 210
10.3 排序 211
10.3.1 冒泡排序 211
10.3.2 MATLAB中的sort函數 212
10.4 結構體 213
10.5 元胞陣列 215
10.5.1 將數據賦給元胞陣列 215
10.5.2 訪問元胞陣列中的數據 216
10.5.3 使用元胞陣列 217
10.5.4 顯示和可視化元胞陣列 218
10.6 類和對象 218
10.7 本章小結 218
第11章 錯誤和陷阱 221
11.1 語法錯誤 221
11.1.1 向量的大小不匹配 222
11.1.2 名稱屏蔽 222
11.2 邏輯錯誤 222
11.3 舍入誤差 223
11.4 本章小結 224
11.5 本章練習 224
第Ⅱ部分 實踐應用
第12章 動力系統 227
12.1 懸臂梁 228
12.2 電流 230
12.3 自由落體 232
12.4 摩擦力作用下的投射體問題 239
12.5 本章小結 241
12.6 本章練習 242
第13章 仿真 243
13.1 隨機數的生成 243
13.2 旋轉硬幣 244
13.3 投擲骰子 245
13.4 細菌分裂 245
13.5 隨機游走 246
13.6 交通流量 247
13.7 正態(高斯)隨機數 250
13.8 總結 250
13.9 本章練習 250
第14章 數值方法入門 253
14.1 方程組 253
14.1.1 牛頓法 253
14.1.2 二分法 255
14.1.3 fzero函數 257
14.1.4 roots函數 257
14.2 積分 257
14.2.1 梯形法則 257
14.2.2 辛普森法則 258
14.2.3 quad函數 259
14.3 數值微分 259
14.4 一階微分方程 260
14.4.1 歐拉方法 261
14.4.2 示例:細菌生長 261
14.4.3 另一種下標表示法 263
14.4.4 預估-校正法 264
14.5 線性常微分方程(LODE) 264
14.6 龍格-庫塔法 264
14.6.1 單獨的微分方程 265
14.6.2 差分方程組:混沌 265
14.6.3 將額外參數傳遞給ODE求解程序 268
14.7 偏微分方程 269
14.8 其他數值方法 271
14.9 本章小結 273
14.10 本章練習 273
第15章 信號處理 277
15.1 諧波分析 278
15.2 快速傅里葉變換(FFT) 281
第16章
Simulink工具箱 285
16.1 彈簧-質塊-阻尼器動力系統 290
16.2 彈跳球動力系統 291
16.3 范德波爾振子 293
16.4 杜芬振子 294
16.5 本章練習 295
第17章
Symbolic工具箱 297
17.1 代數 298
17.1.1 多項式 298
17.1.2 向量 300
17.1.3 矩陣 301
17.2 微積分 304
17.3 拉普拉斯變換和Z變換 305
17.4 廣義函數* 307
17.5 微分方程 308
17.6 funtool、MuPAD和幫助文檔的使用 309
17.6.1 funtool 309
17.6.2 MuPAD記事本和幫助文檔 309
17.7 本章練習 311
附錄A 語法快速參考 313
附錄B 命令與函數快速參考 317
附錄C ASCII字符編碼表 327
附錄D 部分練習的答案 329