前言
人類的進步離不開科學研究和實驗,數學是一門基礎科學理論,也是一種非常有用的技術。有識之士指出:“數學建模與仿真正成為工程設計過程中的關鍵工具。科學家正日益依賴於計算方法以及在仿真結果精度和可靠性方面的經驗。”目前,MATLAB已發展成為國際公認的優秀數學套用軟體之一,用於算法開發、數據可視化、數據分析以及數值計算的高級計算語言和互動式環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易於使用的環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,代表了當今國際科學計算軟體的先進水平,尤其在數學建模和仿真方面更是首屈一指。然而,要精通MATLAB所有功能幾乎是不可能的,所以針對需要有選擇的學習是一種事半功倍的方法。目前,關於MATLAB的書籍很多,數學建模的書也不少,但是真正將MATLAB與數學建模和仿真結合在一起的數據卻不多。本書正是基於此從數學建模與仿真的角度來介紹MATLAB的套用,充分使用MATLAB的功能,使抽象、枯燥的套用數學變得直觀、明了和有趣,是從簡單算例通向科學研究和工程設計實際問題的一條捷徑。
本書針對MATLAB的學習特點,結合作者多年使用MATLAB的教學和實踐經驗,由淺入深、圖文並茂,詳細介紹了數值計算、符號運算、圖形圖像和Simulink仿真等方面的內容。在講解的過程中配合以大量實例操作,使讀者循序漸進地熟悉軟體,學習軟體,掌握軟體。每章都是從最基礎知識開始介紹,然後是實例分析,前10章還配有習題,使理論與實踐緊密結合。本書共15章,各章主要內容如下:
內容簡介
本書從數學建模與仿真的角度對MATLAB進行詳細介紹和講解。全書共2篇,即基礎篇和套用篇,涵蓋絕大部分數學建模問題的MATLAB求解方法。前10章為基礎篇,講解有關MATLAB的基礎知識,包括MATLAB的入門、數值運算、符號運算和圖形功能、M檔案編程、Simulink仿真模型和科學計算等內容,在此基礎上介紹套用數學領域的問題求解,如基於MATLAB的微積分問題、線性代數、積分變換、常微分方程、機率論與數理統計問題的數值解法等。第11章至第15章為套用篇,介紹如何利用MATLAB求解實際的數學建模問題,給出了螞蟻算法、模擬退火算法、神經元網路、圖論算法和遺傳算法等詳細的算法原理、問題描述、數學模型建立與求解、模型驗證和仿真代碼的全部建模過程。本書適合作為各大中專院校理工科學生的專業教材,也可作為廣大科研人員、學者、工程技術人員及MATLAB專業人員的參考用書。
作者簡介
王健 博士(後),副教授,哈爾濱理工大學計算機科學與技術學院碩士生導師。近年來一直從事有關可信計算及認知網路等方面相關理論研究及套用系統研發,作為骨幹成員參加了國家自然科學基金、高等學校博士點專項基金及863計畫等科研項目的研究工作。在包括計算機研究與發展、通信學報、高技術通訊、LNCS等在內的國內外期刊會議發表學術論文30餘篇,其中被SCI/EI檢索20餘篇。在計算機網路仿真模擬方面有十多年的科研經驗。在實踐方面,作者團隊多年來一直從事MATLAB理論研究工作,熟悉MATLAB並掌握該領域的發展方向,具有紮實的理論基礎和豐富的實踐經驗。
圖書目錄
第1章概述
1.1MATLAB簡介
1.2MATLAB的安裝
1.3MATLAB的目錄結構
1.4MATLAB的套用視窗
1.4.1主界面介紹
1.4.2組件視窗
1.5MATLAB的通用命令
1.6MATLAB的幫助系統
1.6.1命令行視窗查詢幫助
1.6.2MATLAB在線上幫助系統
1.7本章小結
1.8習題
第2章數值運算
2.1數據類型
2.1.1字元串
2.1.2數值
2.1.3函式句柄
2.1.4邏輯類型和關係運算
2.1.5結構類型
2.1.6元胞數組類型
2.2數組及操作
2.2.1創建數組
2.2.2數組操作
2.3矩陣及操作
2.3.1創建矩陣
2.3.2矩陣的運算
2.3.3矩陣的分析
2.3.4稀疏矩陣
2.4多項式運算
2.4.1創建多項式
2.4.2計算多項式
2.5本章小結
2.6習題
第3章符號運算
3.1符號運算基礎
3.1.1創建符號對象
3.1.2創建表達式
3.1.3基本操作
3.1.4相關運算符
3.1.5確定自變數
3.2表達式運算
3.2.1提取分子和分母
3.2.2數值轉換
3.2.3變數替換
3.2.4化簡與格式化
3.2.5表達式的相互轉換
3.2.6反函式
3.2.7替換函式
3.3運算精度
3.4符號矩陣運算
3.4.1基本代數運算
3.4.2線性代數運算
3.4.3科學計算
3.5積分及其變換
3.5.1傅立葉變換及其反變換
3.5.2拉普拉斯變換及其反變換
3.5.3Z變換及其反變換
3.6繪製符號函式圖形
3.6.1繪製曲線
3.6.2繪製等值線
3.6.3繪製曲面圖及表面圖
3.7本章小結
3.8習題
第4章圖形圖像
4.1二維繪圖
4.1.1line函式
4.1.2semilogx和semilogy函式
4.1.3logspace函式
4.1.4plot函式
4.1.5plotyy函式
4.1.6axis函式
4.1.7subplot函式
4.1.8其他特殊函式
4.2三維繪圖
4.2.1mesh函式
4.2.2surf函式
4.2.3peaks函式
4.2.4特殊函式
4.3圖形處理
4.3.1調整坐標軸
4.3.2標示文字
4.3.3修飾文字
4.3.4圖例註解
4.3.5圖形保持
4.3.6控制網路
4.3.7分割圖形視窗
4.4圖像分析的常用函式
4.4.1像素及其處理
4.4.2常用函式
4.5本章小結
4.6習題
第5章M檔案
5.1概述
5.1.1創建M檔案
5.1.2打開M檔案
5.1.3基本內容
5.1.4M檔案分類
5.2數據共享
5.2.1數據基本操作
5.2.2數據檔案調用
5.3流程控制
5.3.1順序結構
5.3.2選擇結構
5.3.3循環結構
5.4腳本檔案
5.5函式
5.5.1主函式
5.5.2子函式
5.5.3私有函式
5.5.4嵌套函式
5.5.5重載函式
5.6P碼檔案和變數作用域
5.6.1P碼檔案
5.6.2局部變數、全局變數和持存變數
5.7M檔案調試
5.7.1出錯信息
5.7.2調試方法
5.8本章小結
5.9習題
第6章Simulink仿真模型
6.1預備知識
6.1.1概述
6.1.2建模環境
6.1.3建模原理
6.2Simulink基本模組
6.2.1基本模組
6.2.2設定模組參數和屬性
6.2.3簡單模組的使用
6.3仿真模型創建
6.3.1模組操作
6.3.2基本步驟
6.3.3仿真示例
6.4子系統及其封裝
6.4.1創建子系統
6.4.2封裝子系統
6.5仿真模型執行
6.5.1過零檢測和代數環
6.5.2仿真的運行
6.6仿真模型調試
6.7S函式
6.7.1S函式的定義
6.7.2工作原理
6.7.3S函式模板
6.7.4使用S函式
6.7.5套用示例
6.8複雜系統的仿真與分析
6.8.1連續系統仿真
6.8.2離散系統仿真
6.8.3仿真結構參數化
6.9本章小結
6.10習題
第7章科學計算
7.1常見方程求解
7.1.1求解線性方程組
7.1.2求解非線性方程組
7.1.3求解常微分方程
7.2數據的統計處理
7.2.1最大值與最小值
7.2.2求和與求積
7.2.3平均值與中值
7.2.4標準方差
7.2.5相關係數
7.2.6排序
7.3數據的插值
7.3.1一維插值
7.3.2二維插值
7.3.3三維插值
7.4數值積分函式
7.4.1一元函式積分
7.4.2矢量積分
7.4.3二元函式積分
7.4.4三元函式積分
7.5求解最最佳化問題
7.5.1無約束非線性極小化
7.5.2有約束極小化
7.5.3二次規劃和線性規劃
7.5.4線性最小二乘
7.5.5非線性最小二乘
7.5.6多目標尋優方法
7.6本章小結
7.7習題
第8章MATLAB在高等數學中的套用
8.1極限
8.1.1數列{an}的極限
8.1.2函式極限定義及性質
8.1.3函式極限計算的重要結論
8.1.4有關函式極限計算的MATLAB命令
8.2導數及其套用
8.2.1函式導數定義及性質
8.2.2函式導數計算的重要結論
8.2.3有關函式導數計算的MATLAB命令
8.2.4極值問題
8.3不定積分
8.3.1不定積分定義及性質
8.3.2有關計算函式不定積分的MATLAB命令
8.4定積分
8.4.1定積分定義及性質
8.4.2有關計算函式定積分的MATLAB命令
8.4.3數值積分及軟體實現
8.5二重積分
8.6無窮級數
8.6.1常數項級數的概念
8.6.2常數項級數的收斂性判別方法
8.6.3用MATLAB實現級數求和
8.6.4冪級數
8.7方程數值的求解方法
8.8常微分方程的求解
8.8.1基本概念
8.8.2常微分方程的解法
8.8.3MATLAB求解微分方程的命令
8.9綜合實例
8.10本章小結
8.11習題
第9章MATLAB線上性代數中的套用
9.1矩陣的基本函式運算
9.1.1矩陣的逆運算
9.1.2矩陣的行列式運算
9.1.3向量的點乘(內積)
9.1.4混合積
9.2秩與線性相關性
9.2.1矩陣和向量組的秩以及向量組的線性相關性
9.2.2向量組的最大無關組
9.3線性方程組的求解
9.3.1求線性方程組的唯一解或特解
9.3.2求線性齊次方程組的通解
9.3.3求非齊次線性方程組的通解
9.4特徵值與二次型
9.4.1矩陣的特徵值與特徵向量
9.4.2正交矩陣及二次型
9.5綜合實例
9.6本章小結
9.7習題
第10章MATLAB在數理統計中的套用
10.1數據分析
10.1.1總體與樣本
10.1.2幾種均值
10.1.3數據比較
10.1.4累和與累積
10.1.5簡單隨機樣本
10.1.6有限總體的無放回樣本
10.2離散型隨機變數的機率及機率分布
10.2.1幾個常見分布
10.2.2機率密度函式值
10.3連續型隨機變數的機率及其分布
10.3.1幾個常見的分布
10.3.2機率密度函式值
10.3.3累積機率函式值(分布函式)
10.3.4逆累計機率值
10.4統計量
10.4.1樣本k階矩
10.4.2順序統計量
10.4.3經驗分布函式
10.5數字特徵
10.5.1隨機變數的期望
10.5.2方差與標準差
10.5.3常用分布的期望與方差求法
10.6二維隨機向量的數字特徵
10.6.1期望
10.6.2協方差
10.6.3相關係數
10.7參數估計
10.7.1點估計
10.7.2區間估計
10.7.3最大似然估計法
10.8假設檢驗
10.8.1假設檢驗的基本概念
10.8.2正態總體參數的假設檢驗
10.8.33個常用的非參數檢驗
10.8.4檢驗的功效函式
10.8.5總體分布的假設檢驗
10.9本章小結
10.10習題
第11章蟻群算法的仿真與實現
11.1蟻群算法介紹
11.2蟻群算法原理
11.2.1蟻群行為描述
11.2.2基本蟻群算法的機制原理
11.2.3對螞蟻個體的抽象
11.2.4問題空間的描述
11.2.5尋找路徑的抽象
11.2.6信息素揮發的抽象
11.2.7啟發因子的引入
11.3基本蟻群算法的數學模型
11.3.1P、NP、NPC、NPhard問題描述
11.3.2基本蟻群算法的數學模型
11.4基本蟻群算法的實現步驟
11.5蟻群算法的MATLAB實現
11.6用蟻群算法建模求解旅行商問題
11.6.1問題描述與算法思想
11.6.2實現步驟
11.6.3算法驗證及結論
11.7用蟻群算法建模求解智慧型組卷系統問題
11.7.1試卷質量評價的指標體系構建
11.7.2自動組卷系統的數學模型
11.7.3蟻群算法的自動組卷問題求解
11.8本章小結
第12章模擬退火算法的仿真與實現
12.1模擬退火算法介紹
12.1.1物理退火過程
12.1.2Metropolis準則
12.1.3模擬退火算法要素
12.1.4模擬退火算法流程圖
12.2模擬退火算法原理
12.2.1基本內容
12.2.2算法描述
12.2.3模擬退火算法的偽代碼實現
12.2.4旅行商問題的解決
12.3調度問題的算法實現
12.3.1解空間的實現
12.3.2目標函式
12.3.3初始解的選擇
12.3.4新解的產生和接受機制
12.3.5停止準則的擴充
12.3.6仿真結果及分析
12.4模擬退火算法的改進
12.5本章小結
第13章神經元網路及MATLAB仿真
13.1神經元網路的簡介
13.1.1神經元網路的發展史
13.1.2生物神經元
13.2人工神經網路結構
13.2.1人工神經網路簡介
13.2.2人工神經元模型
13.2.3神經元作用函式
13.2.4神經網路模型
13.2.5人工神經網路的典型結構
13.3神經網路的學習方式和學習規則
13.3.1神經網路的學習方式
13.3.2BP神經網路及MATLAB實現
13.4神經元網路的算法實例
13.5本章小結
第14章圖論算法及MATLAB仿真
14.1圖論的起源
14.2相關概念
14.2.1圖
14.2.2特殊圖類
14.2.3有向圖
14.2.4路
14.3圖的矩陣表示
14.3.1鄰接矩陣
14.3.2關聯矩陣
14.4圖論的基本性質和定理
14.5計算有向圖的可達矩陣的算法及其MATLAB實現
14.6最短路問題
14.7連通圖最短距離的算法實現
14.7.1問題描述與算法思想
14.7.2實現步驟
14.7.3算法驗證及MATLAB實現
14.8Dijkstra算法
14.8.1問題描述與算法思想
14.8.2Dijkstra算法的步驟
14.8.3算法驗證及MATLAB實現
14.9WarshallFloyd算法
14.9.1WarshallFloyd算法的基本思想
14.9.2WarshallFloyd算法的基本步驟
14.9.3WarshallFloyd算法的MATLAB實現
14.10動態規劃求解最短路徑
14.10.1問題描述與算法思想
14.10.2實現步驟
14.10.3算法驗證及MATLAB實現
14.11棋盤覆蓋問題
14.11.1問題描述與算法思想
14.11.2實現步驟
14.11.3算法驗證及MATLAB實現
14.12最優樹的套用實例
14.12.1問題描述與算法思想
14.12.2實現步驟
14.12.3算法驗證及MATLAB實現
14.13本章小結
第15章遺傳算法的仿真與實現
15.1遺傳算法介紹
15.2遺傳算法基本原理
15.2.1編碼
15.2.2適應度評價函式
15.2.3選擇運算元
15.2.4交叉運算元
15.2.5變異運算元
15.2.6終止代數
15.3遺傳算法最佳化工具箱
15.4遺傳算法的MATLAB實現
15.5遺傳算法實例及MATLAB實現
15.6暴雨強度公式最佳化及MATLAB實現
15.6.1暴雨強度公式
15.6.2遺傳算法各運算元及MATLAB的實現
15.6.3計算實例與結果
15.7遺傳算法中的選擇操作及MATLAB實現
15.7.1遺傳操作
15.7.2初始種群的選擇
15.7.3交配個體群的選擇
15.7.4交叉算法中的選擇操作
15.7.5變異中的選擇操作
15.7.6主控程式
15.7.7結果分析
15.8本章小結
參考文獻