MATLAB/Simulink實用教程——編程、計算與仿真(第2版)
薛定宇
相關主題
商品描述
"本書系統地介紹科學研究與工程應用領域使用廣泛的 MATLAB語言,全面介紹其基本編程方法,包 括數據結構、語句結構、流程控制、函數編寫、圖形繪制與面向對象編程技術等,並介紹 MATLAB語言在微 積分、線性代數、代數方程、微分方程、**化與數據處理領域的問題求解方法;本書還介紹基於 Simulink 的系統建模與仿真方法. 本書適合理工科各專業本科生、研究生以及工程技術人員學習 MATLAB語言,並利用 MATLAB 語 言解決科學運算、系統建模與仿真方法等問題."
作者簡介
薛定宇,1985年、1988年、1992年分別在沈陽工業大學、東北大學和英國Sussex大學獲得學士(1985年)、碩士(1988年)和博士學位(1992年),1997年任東北大學信息學院教授。深耕於計算機在數學與自動控制學科的應用,主持了國家精品課程建設,並於1996年在清華大學出版社出版《控制系統計算機輔助設計——MATLAB與應用》,該教材被認為是國內MATLAB應用領域具有深遠影響的一部圖書,為MATLAB在國內高校教學與科研中的普及起到了巨大的作用。薛定宇教授先後被評為遼寧省教學名師、遼寧省優秀教師,獲得國家教學成果二等獎。其主講的“控制系統仿真與CAD”課程被評為國家精品課程、國家精品資源共享課程;主講的“現代科學運算——MATLAB語言與應用”課程被評為遼寧省精品資源共享課程,配套錄制的全新慕課課程均上線於愛課程與中國慕課網站。
目錄大綱
目 錄
第1 章MATLAB 語言簡介…………………………………1
1.1 科學運算與仿真問題演示……………………………1
1.1.1 科學運算問題求解………………………………1
1.1.2 常規計算機語言的局限性…………………………2
1.2 MATLAB 語言…………………………………4
1.2.1 MATLAB 的出現與發展……………………………4
1.2.2 MATLAB 語言的特色……………………………5
1.3 科學運算問題的三步求解方法…………………………6
1.4 本書的結構……………………………………8
1.5 小項目………………………………………9
1.5.1 代數方程求解…………………………………9
1.5.2 微積分問題求解………………………………9
本章習題…………………………………………10
參考文獻…………………………………………10
第2 章MATLAB 的編程基礎…………………………………12
2.1 MATLAB 的基本操作………………………………12
2.1.1 MATLAB 主窗口………………………………12
2.1.2 MATLAB 工作路徑……………………………13
2.1.3 MATLAB 聯機幫助系統……………………………14
2.1.4 MATLAB 的顯示格式……………………………15
2.1.5 MATLAB 的工作空間與管理…………………………16
2.1.6 MATLAB 的其他輔助工具…………………………16
2.2 MATLAB 數據結構………………………………17
2.2.1 保留的常量…………………………………17
2.2.2 變量名與命名規則………………………………18
2.2.3 雙精度數據結構………………………………18
2.2.4 符號型數據結構與符號函數…………………………19
2.2.5 任意符號型矩陣的生成……………………………21
2.2.6 其他數據結構…………………………………21
2.2.7 數據結構的識別………………………………22
2.3 MATLAB 語句結構………………………………22
2.3.1 基本賦值語句…………………………………22
2.3.2 函數調用語句…………………………………23
2.3.3 冒號表達式…………………………………24
2.3.4 子矩陣的提取…………………………………24
VI MATLAB/Simulink 實用教程——編程、計算與仿真(第2 版)
2.3.5 MATLAB 的人機交互函數…………………………25
2.4 MATLAB 基本運算………………………………25
2.4.1 算術運算…………………………………25
2.4.2 超越函數運算…………………………………28
2.4.3 邏輯運算…………………………………29
2.4.4 比較運算…………………………………30
2.4.5 字符串運算…………………………………30
2.4.6 符號表達式的處理………………………………32
2.5 MATLAB 的文件操作………………………………33
2.5.1 MATLAB 工作空間變量的存取………………………33
2.5.2 文件讀寫函數…………………………………34
2.5.3 Microsoft Excel 文件的操作…………………………34
2.6 小項目………………………………………35
2.6.1 表格數據結構…………………………………35
2.6.2 獲得π 的更多位數字……………………………36
本章習題…………………………………………36
參考文獻…………………………………………37
第3 章MATLAB 的流程結構…………………………………38
3.1 循環結構……………………………………38
3.1.1 for 循環結構…………………………………38
3.1.2 while 循環結構………………………………40
3.1.3 循環語句的嵌套………………………………41
3.1.4 向量化編程與循環結構……………………………42
3.2 轉移結構……………………………………43
3.2.1 簡單的條件轉移結構……………………………43
3.2.2 條件轉移結構的一般形式…………………………44
3.2.3 其他流程控制命令………………………………44
3.2.4 分段函數的向量化計算……………………………44
3.3 開關結構……………………………………46
3.4 試探結構……………………………………47
3.5 小項目………………………………………48
3.5.1 學習向量化編程………………………………48
3.5.2 第一次接觸最優化問題……………………………48
本章習題…………………………………………49
參考文獻…………………………………………51
第4 章MATLAB 的函數編程…………………………………52
4.1 MATLAB 腳本文件………………………………52
4.1.1 MATLAB 的程序編輯器……………………………53
4.1.2 MATLAB 實時編輯器……………………………53
目 錄VII
4.2 函數的基本結構…………………………………55
4.2.1 為什麼需要MATLAB 函數…………………………55
4.2.2 函數的結構…………………………………55
4.2.3 函數名的命名規則………………………………56
4.2.4 輸入、輸出變元的個數……………………………57
4.2.5 輸入變元的檢驗………………………………58
4.2.6 M-函數的遞歸調用……………………………60
4.2.7 匿名函數…………………………………61
4.3 函數變量的傳遞…………………………………62
4.3.1 輸入、輸出變元的傳遞與提取…………………………62
4.3.2 局部變量與全局變量……………………………64
4.3.3 工作空間變量的存取……………………………64
4.3.4 由MATLAB 調用Python 函數………………………65
4.4 M-函數調試方法與處理………………………………65
4.4.1 M-函數的跟蹤調試……………………………66
4.4.2 偽代碼技術…………………………………67
4.5 小項目………………………………………67
4.5.1 遞推算法的推導與實現……………………………67
4.5.2 矩陣函數的遞推實現……………………………68
本章習題…………………………………………68
參考文獻…………………………………………70
第5 章MATLAB 的科學可視化………………………………71
5.1 簡單二維圖形……………………………………71
5.1.1 基於數據的繪圖………………………………71
5.1.2 基於函數表達式的繪圖……………………………75
5.1.3 參數方程曲線繪制………………………………76
5.1.4 雙y 軸曲線…………………………………77
5.1.5 圖形修飾與編輯………………………………78
5.1.6 圖形數據的提取………………………………79
5.2 特殊二維圖形……………………………………79
5.2.1 極坐標……………………………………79
5.2.2 離散數據的圖形表示……………………………81
5.2.3 統計圖形繪制…………………………………82
5.2.4 填充圖……………………………………83
5.2.5 對數圖繪制…………………………………84
5.2.6 動態軌跡繪制與動畫制作…………………………85
5.2.7 圖形窗口的分割………………………………86
5.3 MATLAB 三維繪圖………………………………87
5.3.1 三維曲線繪制…………………………………87
5.3.2 三維參數方程的曲線繪制…………………………87
5.3.3 三維曲面繪制…………………………………88
5.3.4 視角設置…………………………………89
5.3.5 二元參數方程的曲面繪制…………………………90
VIII MATLAB/Simulink 實用教程——編程、計算與仿真(第2 版)
5.3.6 三維動畫的制作與播放……………………………90
5.4 隱函數繪制……………………………………91
5.4.1 二維隱函數曲線繪制……………………………91
5.4.2 三維隱函數曲面繪制……………………………93
5.5 小項目………………………………………94
5.5.1 Mandelbrot 圖………………………………94
5.5.2 曲面的交線…………………………………95
本章習題…………………………………………95
參考文獻…………………………………………97
第6 章MATLAB 的面向對象編程………………………………98
6.1 面向對象程序的基本概念……………………………98
6.2 類與對象的設計…………………………………99
6.2.1 類的數據結構…………………………………99
6.2.2 類的輸入與顯示………………………………100
6.2.3 加減法運算重載函數……………………………102
6.2.4 乘法運算重載函數………………………………103
6.2.5 乘方運算重載函數………………………………105
6.2.6 合並同類項重載函數……………………………105
6.3 應用程序的界面設計………………………………106
6.3.1 圖形用戶界面的對象……………………………106
6.3.2 簡易對話框…………………………………107
6.3.3 標準對話框的編程與使用…………………………108
6.3.4 用App Designer 設計應用程序………………………108
6.4 小項目………………………………………113
6.4.1 分數階傳遞函數………………………………113
6.4.2 一個App 設計任務………………………………113
本章習題…………………………………………114
參考文獻…………………………………………114
第7 章微積分與積分變換…………………………………115
7.1 微積分問題的解析求解………………………………115
7.1.1 單變量函數的極限………………………………115
7.1.2 多元函數的極限………………………………119
7.1.3 函數的導數…………………………………121
7.1.4 函數的積分…………………………………126
7.2 序列與函數的級數…………………………………129
7.2.1 級數求和…………………………………130
7.2.2 序列乘積…………………………………132
7.2.3 無窮級數的收斂性判定……………………………133
7.2.4 Taylor 級數…………………………………135
7.2.5 Fourier 級數…………………………………136
目 錄IX
7.3 微積分問題的數值求解………………………………138
7.3.1 數值微分…………………………………138
7.3.2 數值積分…………………………………140
7.4 積分變換入門……………………………………144
7.4.1 Laplace 變換…………………………………145
7.4.2 數值Laplace 變換………………………………146
7.4.3 Fourier 變換…………………………………147
7.4.4 z 變換……………………………………148
7.5 小項目………………………………………149
7.5.1 曲線積分…………………………………149
7.5.2 多變量積分的數值解……………………………150
本章習題…………………………………………150
參考文獻…………………………………………155
第8 章線性代數與矩陣分析…………………………………157
8.1 特殊矩陣的輸入…………………………………157
8.1.1 零矩陣、幺矩陣與單位矩陣…………………………157
8.1.2 隨機數矩陣…………………………………159
8.1.3 對角矩陣…………………………………159
8.1.4 特殊矩陣的表現形式……………………………160
8.2 矩陣分析……………………………………160
8.2.1 矩陣的簡單分析………………………………161
8.2.2 逆矩陣……………………………………164
8.2.3 Moore–Penrose 廣義逆矩陣…………………………166
8.2.4 矩陣的特征值…………………………………167
8.3 矩陣的變換與分解…………………………………168
8.3.1 矩陣的相似變換………………………………168
8.3.2 相伴矩陣變換…………………………………168
8.3.3 一般矩陣的對角變換與Jordan 變換……………………169
8.3.4 矩陣的三角分解………………………………170
8.3.5 對稱矩陣的Cholesky 分解…………………………171
8.3.6 奇異值分解…………………………………172
8.4 矩陣函數……………………………………173
8.4.1 矩陣的指數函數………………………………173
8.4.2 矩陣的三角函數………………………………174
8.4.3 任意矩陣函數…………………………………174
8.5 小項目………………………………………175
本章習題…………………………………………176
參考文獻…………………………………………178
第9 章代數方程………………………………………179
9.1 線性代數方程組…………………………………179
9.1.1 線性方程的一般形式……………………………179
9.1.2 線性方程唯一解的數值與解析解法………………………180
X MATLAB/Simulink 實用教程——編程、計算與仿真(第2 版)
9.1.3 無窮解的構造…………………………………181
9.1.4 矛盾方程的最小二乘解……………………………182
9.1.5 XA=B方程…………………………………183
9.2 特殊線性方程……………………………………183
9.2.1 線性方程的Kronecker 變換…………………………183
9.2.2 AXB=C 方程………………………………184
9.2.3 Lyapunov 方程………………………………185
9.2.4 Sylvester 方程…………………………………185
9.3 一般非線性方程…………………………………187
9.3.1 非線性方程的圖解法……………………………187
9.3.2 多項式類方程的準解析解方法………………………190
9.3.3 二次型方程的準解析解方法…………………………191
9.3.4 非線性方程的數值解……………………………192
9.3.5 方程求解的參數控制……………………………193
9.4 多解非線性矩陣方程………………………………194
9.4.1 多解方程求解的思路與代碼實現………………………194
9.4.2 矩陣方程…………………………………197
9.4.3 偽多項式方程…………………………………197
9.5 小項目………………………………………197
9.5.1 化學反應方程式的配平……………………………197
9.5.2 聯立非線性方程求解……………………………198
本章習題…………………………………………199
參考文獻…………………………………………201
第10 章常微分方程……………………………………202
10.1 常微分方程的解析解………………………………202
10.1.1 高階線性常系數微分方程…………………………202
10.1.2 高階微分方程組………………………………204
10.1.3 時變微分方程………………………………205
10.1.4 非線性微分方程………………………………206
10.2 微分方程的初值問題………………………………207
10.2.1 一階顯式微分方程的標準型…………………………207
10.2.2 微分方程的直接求解……………………………207
10.2.3 微分方程解的檢驗……………………………209
10.2.4 微分方程的變換方法……………………………210
10.2.5 剛性微分方程………………………………215
10.3 特殊微分方程…………………………………216
10.3.1 微分代數方程………………………………216
10.3.2 隱式微分方程………………………………217
10.3.3 延遲微分方程………………………………218
10.4 微分方程的邊值問題………………………………222
10.4.1 邊值問題的數學形式……………………………222
10.4.2 一般邊值問題………………………………223
10.4.3 含有參數的邊值問題……………………………224
目 錄XI
10.5 小項目………………………………………225
10.5.1 一個比較復雜的微分方程…………………………225
10.5.2 用其他的方法求解邊值問題…………………………226
本章習題…………………………………………226
參考文獻…………………………………………231
第11 章最優化………………………………………233
11.1 無約束最優化…………………………………233
11.1.1 無約束最優化問題的數學形式………………………233
11.1.2 無約束最優化問題的求解…………………………234
11.1.3 無約束最優化問題的求解精度控制……………………235
11.1.4 尋優過程的可視化……………………………235
11.1.5 基於問題的描述與求解……………………………236
11.2 線性規劃與二次型規劃………………………………237
11.2.1 線性規劃…………………………………237
11.2.2 二次型規劃…………………………………240
11.2.3 基於問題的描述與求解……………………………240
11.3 一般非線性規劃…………………………………242
11.3.1 非線性規劃的數學形式……………………………242
11.3.2 非線性規劃的直接求解……………………………242
11.3.3 局部最優解與全局最優解…………………………244
11.3.4 基於問題的非線性規劃描述與求解……………………245
11.4 全局最優解的探討…………………………………246
11.4.1 MATLAB 全局優化工具箱簡介………………………246
11.4.2 無約束全局最優解的程序實現………………………247
11.4.3 有約束全局最優解的程序實現………………………250
11.5 小項目………………………………………252
11.5.1 一個應用問題………………………………252
11.5.2 混合整數規劃問題……………………………252
本章習題…………………………………………253
參考文獻…………………………………………256
第12 章數據處理與數理統計………………………………257
12.1 數據插值……………………………………257
12.1.1 一維數據插值………………………………257
12.1.2 二維與多維插值………………………………258
12.1.3 樣條插值…………………………………260
12.1.4 基於樣條插值的數值微積分運算………………………261
12.2 由數據擬合函數模型………………………………262
12.2.1 多項式擬合…………………………………263
12.2.2 最小二乘曲線擬合……………………………264
12.2.3 基於神經網絡的數據擬合…………………………265
XII MATLAB/Simulink 實用教程——編程、計算與仿真(第2 版)
12.3 數據的統計分析…………………………………267
12.3.1 概率密度與分布函數……………………………267
12.3.2 偽隨機數生成………………………………268
12.3.3 均值與方差…………………………………269
12.3.4 離群值檢測…………………………………270
12.4 假設檢驗與方差分析………………………………272
12.4.1 數據的假設檢驗………………………………272
12.4.2 方差分析…………………………………274
12.5 小項目………………………………………276
本章習題…………………………………………277
參考文獻…………………………………………278
第13 章Simulink 建模與仿真…………………………………280
13.1 Simulink 的界面…………………………………280
13.1.1 Simulink 的模塊庫與空白模型窗口……………………281
13.1.2 Simulink 的工具欄……………………………281
13.2 Simulink 的常用模塊組………………………………283
13.2.1 輸入、輸出模塊………………………………283
13.2.2 連續與離散系統模塊……………………………283
13.2.3 運算模塊…………………………………285
13.2.4 Simulink 模型的建模與仿真舉例………………………285
13.3 Simulink 參數設置…………………………………288
13.3.1 求解器參數設置………………………………288
13.3.2 輸入、輸出參數設置……………………………289
13.3.3 模型參數預設值………………………………289
13.4 基於Simulink 的微分方程建模與求解………………………290
13.4.1 Simulink 建模規則……………………………291
13.4.2 底層建模…………………………………291
13.4.3 向量化建模…………………………………293
13.4.4 標準微分方程建模的統一框架………………………294
13.4.5 一般微分方程組建模……………………………296
13.4.6 隱式微分方程建模……………………………296
13.4.7 延遲微分方程建模……………………………297
13.5 小項目………………………………………299
本章習題…………………………………………300
參考文獻…………………………………………301
第14 章Simulink 建模與仿真進階……………………………303
14.1 基於命令的仿真方法………………………………303
14.1.1 仿真參數設置………………………………303
14.1.2 用MATLAB 啟動仿真過程…………………………304
14.1.3 Simulink 仿真的輸入與輸出數據結構……………………305
14.1.4 並行仿真…………………………………306
目 錄XIII
14.2 精確仿真與快速仿真………………………………306
14.2.1 過零點檢測…………………………………306
14.2.2 代數環處理…………………………………307
14.2.3 仿真過程的快速重啟……………………………310
14.3 子系統與模塊封裝…………………………………311
14.3.1 子系統……………………………………311
14.3.2 封裝模塊的參數對話框設計…………………………312
14.3.3 封裝模塊的圖標設計……………………………314
14.4 S-函數的編程與應用………………………………316
14.4.1 系統的狀態方程描述……………………………317
14.4.2 S-函數的基本結構……………………………317
14.4.3 S-函數的運行機制……………………………318
14.4.4 S-函數的響應函數……………………………319
14.4.5 S-函數舉例…………………………………319
14.4.6 S-函數模塊的封裝……………………………324
14.4.7 二級S-函數簡介………………………………325
14.5 小項目………………………………………327
本章習題…………………………………………328
參考文獻…………………………………………330
附錄A 基於DeepSeek 的半自動編程……………………………331
附錄習題…………………………………………336
參考文獻…………………………………………336
MATLAB 函數名索引……………………………………337
術語索引…………………………………………343







