在《MATLAB數學建模方法與實踐》(第3版)(前兩版的名稱分別是《MATLAB在數學建模中的應用》(第1、2版))出版后, 幾位高職院校的數學建模指導老師建議再寫一本適合于高職高專數學建模的MATLAB參考書。隨著數學建模在高職高專院校影響力越來越大,教育部門對職業(yè)教育也越來越重視,因此,寫一本專門針對高職高專的MATLAB數學建模輔導書也是很有必要的。
相對于甲組(本科)的數學建模教學或競賽, 乙組(高職高專)的數學建模在方法上與之差異不大, 都會涉及數據處理、優(yōu)化等方法,只是在題目難度和MATLAB的程序量上有些差異,具體詳見歷年全國賽中的乙組賽題;谝陨戏治,本書的內容分為5個部分,基本思路是按照基礎、方法、實踐、賽后重研究、經驗展開的。主體的方法部分按照數學建模的類型展開,將數學模型分為數據、優(yōu)化、連續(xù)、評價、機理建模5個類型,MATLAB技術的介紹也按照這5類展開,介紹的方法正好就是5類模型需要的建模方法以及這些方法的MATLAB實現。
這樣更便于讀者準備競賽,有利于快速對數學建模有個全面的認識,也有利于快速建立對數學建模的興趣和信心。
賽后重研究部分是近幾年數學建模的新課題。數學建模是非常有用的技術,不能止步于競賽,而應該讓其在科研和產業(yè)界發(fā)揮更大、更實質的作用。MATLAB作為主要的數學建模實現工具,大家往往更關心它的科學計算能力,并沒有注意到它還有系統(tǒng)設計、系統(tǒng)仿真、代碼生成等產品開發(fā)功能。只要將數學模型遷移到Simulink中,借助“基于模型設計”的理念,就可以很快將數學模型轉化成產品,所以在賽后重研究部分,重點介紹如何借助MATLAB實現從數學模型到產品的轉化。現在的讀者思路更開闊,而且有豐富的智能硬件可以應用,如果將模型、工具與智能經驗結合起來,就可以真正地進行創(chuàng)新、產品研發(fā)。對于很多讀者來說,這也是建模之后非?崆矣幸饬x的事情。
本書特色
縱觀全書,可發(fā)現本書的特點鮮明,主要表現在:
① 方法務實,學以致用。本書介紹的方法都是數學建模中的主流方法,都經過了實踐的檢驗,具有較強的實用性。對于每種方法,本書基本都給出了完整、詳細的源代碼,這對于讀者來說,具有非常大的參考價值,很多程序可供讀者直接套用并加以學習。
② 知識系統(tǒng),結構合理。本書的內容編排從基本概念與技術到真題實踐,再到重研究和競賽經驗,使得概念、技術、實踐、經驗四位一體,自然形成全書的知識體系。而對于具體的技術,也是脈絡清晰、循序漸進,按照數據建模、優(yōu)化、連續(xù)、評價、機理建模展開,內容上整體是從基礎技術入手,再到融會貫通。正因為有完整的知識體系,讀者讀起來才有很好的系統(tǒng)性,從而更利于理解數學建模的知識體系,這對于學習是非常有幫助的。
③ 案例實用,易于借鑒。本書選擇的案例都來自數學建模中的經典案例和真實賽題,并且?guī)в袛祿统绦?所以很容易讓讀者對案例產生共鳴;同時可以利用案例的程序進行模仿式的學習,也能提高讀者的學習效率。
④ 理論與實踐相得益彰。對于本書的每種方法,除了理論的講解,都配有一個典型的應用案例,讀者可以通過案例加深對理論的理解,同時理論也讓案例的應用更有說服力。技術的介紹都以實現實例為目的,同時提供大量技術實現的源程序,方便讀者學習。
⑤ 內容獨特,趣味橫生,文字簡潔,易于閱讀。很多方法和內容是同類書籍中所沒有的,這無疑增強了本書的新穎性和趣味性。另外,在保證描述精準的前提下,我們摒棄了那些刻板、索然無味的文字,讓文字既有活力,又更易于閱讀。
如何閱讀本書
全書內容分5個部分,故成5篇。
第一部分(基礎篇)主要介紹一些基本概念和知識,包括MATLAB在數學建模中的地位、數學模型的分類及各類需要用到的MATLAB技術,以及MATLAB編程入門。
第二部分(方法篇)是本書的主體部分,系統(tǒng)介紹了MATLAB建模的主流方法。這個部分又按照數學建模的類型分為5個方面:
① 第3~6章主要講數據建模方法,包括數據的準備、常用的數學建模方法、機器學習、灰色預測、神經網絡以及小波分析。
② 第7~8章主要介紹優(yōu)化方法,包括標準規(guī)劃模型的求解、MATLAB全局優(yōu)化技術。
③ 第9章介紹了連續(xù)模型的MATLAB求解方法。
④ 第10章介紹的是評價模型的求解方法。
⑤ 第11章介紹的是機理建模的MATLAB實現方法。
第三部分(實踐篇)以歷年全國大學生數學建模競賽的經典賽題(乙組)為例,介紹MATLAB在其中的實際應用,包括詳細的建模過程、求解過程以及原汁原味的競賽論文,不僅讓讀者體會MATLAB的實戰(zhàn)技能,也能增強讀者的建模實戰(zhàn)水平。
第四部分(賽后重研究篇)主要介紹如何借助MATLAB的工程應用功能,將模型轉化成產品,并通過在轉化過程中強化反饋,倒逼模型和算法的提升。因為有很多模型不通過產品化,很難發(fā)現其中的缺陷。
第五部分(經驗篇)主要介紹數學建模的參賽經驗、心得、技巧,以及MATLAB的學習經驗,這些經驗會有助于競賽的準備和競賽成績的提升,至少讓讀者更從容地參與數學建模
活動。
其 中,前3篇為本書的重點內容,建議重點研讀;第四篇為選讀內容,適合賽后對研究或模型產品化感興趣的讀者;第五篇可以先了解一下,在實際準備數學建模的過程中如果遇到問題,可以再重新閱讀此篇。
讀者對象
數學建模參賽者;
數學、數學建模等學科的教師和學生;
從事數學建模相關工作的專業(yè)人士;
需要用到數學建模技術的各領域的科研工作者;
想要學習MATLAB的工程師或科研工作者,因為本書的代碼都是用MATLAB編寫的,所以對于想要學習MATLAB的讀者來說,也是一本很好的參考書;
其他對數學建模和MATLAB感興趣的人士。
致讀者
致教師
本書系統(tǒng)地介紹了MATLAB數學建模技術,可以作為數學、數學建模、統(tǒng)計、金融等專業(yè)本科或研究生的教材。書中的內容雖然系統(tǒng),但也相對獨立,教師可以根據課程的學時和專業(yè)方向,選擇合適的內容進行課堂教學,其他內容則可以作為參考。授課部分,一般會包含第一篇、第二篇的章節(jié),如果課時較多,則可以增加其他章節(jié)中一些項目案例的學習。
在課程準備的過程中,如果您需要書中的一些電子資料作為課件或授課支撐材料,可以直接給筆者發(fā)郵件(70263215@qq.com)說明您需要的材料和用途,筆者會根據具體情況,為您提供力所能及的幫助。
致學生
作為21世紀的大學生,數學建模是一項基本技能,尤其是以后有志于從事科研工作或希望從事工程類、設計類等職業(yè)的學生。數學建模競賽是非常好的競賽,不僅可以學習數學建模這一技能,還能認識很多優(yōu)秀的小伙伴,跟這些小伙伴們一起備戰(zhàn)建模,相信也會感受到別樣且有意義的大學生活。
致專業(yè)人士
對于從事數學建模的專業(yè)人士,大家可以關注整個數學建模技術體系,因為本書的知識體系應該是當前數學建模書籍中體系相對完善的。此外,書中的算法案例和項目案例,也算是本書的特色,值得借鑒。
配套資源
(一) 配套程序和數據
為了方便讀者學習,作者將提供書中所有的程序和數據,下載地址為:
(1) MATLAB中文論壇
https://www.ilovematlab.cn/thread-576947-1-1.html
(2) 百度網盤
https://pan.baidu.com/s/1voPLECNnNteQLxkGkXIDug(提取碼:ca6p)
(3) 北航出版社
http://www.buaapress.com.cn/mzs/file/index/id/8/c/d(官網→下載專區(qū)→隨書資料)
如遇到下載問題,也可以直接發(fā)郵件與作者聯(lián)系:70263215@qq.com。
(二) 配套教學課件
為了方便教師授課,我們也開發(fā)了本書配套的教學課件,如有需要,也可以與筆者聯(lián)系。
勘誤和支持
本書在MATLAB中文論壇設有專門的交流版塊(https://www.ilovematlab.cn/forum-274-1.html),供同行討論交流。對于書中出現的問題,也歡迎大家到勘誤版塊https://www.ilovematlab.cn/thread-576946-1-1.html及時反饋,以便該書進一步得到完善。
致 謝
感謝MathWorks公司在寫作期間提供給我最全面、最深入、最準確的參考材料,強大的官方文檔也是其他資料無法企及的。同時感謝MATLAB中文論壇為本書提供的交流討論專區(qū)。
感謝北航出版社陳守平老師一直以來的支持和鼓勵,使我們順利完成全部書稿。
作 者
2019年5月
第一篇 基礎篇
第1章 緒 論 3
1.1 MATLAB在數學建模中的地位 3
1.2 正確且高效的MATLAB編程理念 4
1.3 數學建模對MATLAB水平的要求 4
1.4 如何提高MATLAB建模水平 5
1.5 小 結 6
參考文獻 6
第2章 MATLAB數學建模快速入門 7
2.1 MATLAB快速入門 7
2.1.1 MATLAB概要 7
2.1.2 MATLAB的功能 8
2.1.3 快速入門案例 8
2.1.4 入門后的提高 15
2.2 MATLAB常用技巧 16
2.2.1 常用標點的功能 16
2.2.2 常用操作指令 16
2.2.3 指令編輯操作鍵 16
2.3 MATLAB數據類型 16
2.3.1 數值類型 17
2.3.2 字符類型 20
2.3.3 日期和時間 22
2.3.4 元胞數組 23
2.3.5 表 格 25
2.4 程序結構 26
2.4.1 標識命令 26
2.4.2 條件語句 27
2.4.3 循環(huán)語句 28
2.5 MATLAB開發(fā)模式 29
2.5.1 命令行模式 29
2.5.2 腳本模式 29
2.5.3 面向對象模式 29
2.5.4 三種模式的配合 30
2.6 小 結 30
參考文獻 30
第二篇 技術篇
第3章 數據建;A 33
3.1 數據的獲取 33
3.1.1 從Excel中讀取數據 33
3.1.2 從TXT中讀取數據 33
3.1.3 讀取圖片 36
3.1.4 讀取視頻 36
3.2 數據的預處理 37
3.2.1 缺失值處理 38
3.2.2 噪聲過濾 39
3.2.3 數據集成 41
3.2.4 數據歸約 42
3.2.5 數據變換 42
3.3 數據的統(tǒng)計 44
3.3.1 基本描述性統(tǒng)計 44
3.3.2 分布描述性統(tǒng)計 45
3.4 數據可視化 45
3.4.1 基本可視化 46
3.4.2 數據分布形狀可視化 47
3.4.3 數據關聯(lián)可視化 48
3.4.4 數據分組可視化 50
3.5 數據降維 51
3.5.1 主成分分析(PCA)基本原理 51
3.5.2 PCA 應用案例:企業(yè)綜合實力排序 53
3.5.3 相關系數降維 56
3.6 小 結 56
參考文獻 57
第4章 數據的擬合和回歸 58
4.1 一元回歸 58
4.1.1 一元線性回歸 58
4.1.2 一元非線性回歸 60
4.2 多元回歸 62
4.3 逐步回歸 64
4.4 Logistic回歸 65
4.5 小 結 67
參考文獻 67
第5章 MATLAB機器學習方法 68
5.1 MATLAB機器學習概況 68
5.2 分類方法 69
5.2.1 K 近鄰分類 69
5.2.2 貝葉斯分類 73
5.2.3 支持向量機分類 76
5.3 聚類方法 80
5.3.1 K-means聚類 80
5.3.2 層次聚類 85
5.3.3 模糊C 均值聚類 90
5.4 深度學習 92
5.4.1 深度學習的崛起 92
5.4.2 深度學習的原理 92
5.4.3 深度學習訓練過程 93
5.4.4 MATLAB深度學習訓練過程 94
5.5 小 結 96
參考文獻 96
第6章 其他數據建模方法 97
6.1 灰色預測方法 97
6.1.1 灰色預測概述 97
6.1.2 灰色模型的預測步驟 97
6.1.3 灰色預測典型MATLAB程序
結構 99
6.1.4 應用實例:與會代表人數(CUMCM 2009D) 100
6.1.5 灰色預測經驗小結 101
6.2 神經網絡 102
6.2.1 神經網絡的原理 102
6.2.2 神經網絡的實例 103
6.2.3 神經網絡的特點 104
6.3 小波分析 104
6.3.1 小波分析概述 104
6.3.2 常見的小波分析方法 105
6.3.3 小波分析應用實例 108
6.4 小 結 110
參考文獻 110
第7章 標準規(guī)劃模型的MATLAB求解 111
7.1 線性規(guī)劃 111
7.1.1 線性規(guī)劃的實例與定義 111
7.1.2 線性規(guī)劃的MATLAB標準形式 112
7.1.3 線性規(guī)劃問題的解的概念 112
7.1.4 線性規(guī)劃的MATLAB解法 113
7.2 非線性規(guī)劃 116
7.2.1 非線性規(guī)劃的實例與定義 116
7.2.2 非線性規(guī)劃的MATLAB解法 117
7.2.3 二次規(guī)劃 118
7.3 整數規(guī)劃 120
7.3.1 整數規(guī)劃的定義 120
7.3.2 0 1整數規(guī)劃 120
7.4 小 結 121
參考文獻 121
第8章 MATLAB全局優(yōu)化算法 122
8.1 MATLAB全局優(yōu)化概況 122
8.2 遺傳算法 122
8.2.1 遺傳算法的原理 122
8.2.2 遺傳算法的步驟 123
8.2.3 遺傳算法的實例 129
8.3 模擬退火算法 131
8.3.1 模擬退火算法的原理 131
8.3.2 模擬退火算法的步驟 133
8.3.3 模擬退火算法的實例 134
8.4 全局優(yōu)化求解器匯總 141
8.5 延伸閱讀 141
8.6 小 結 142
參考文獻 142
第9章 MATLAB連續(xù)模型求解方法 143
9.1 MATLAB常規(guī)微分方程的求解 143
9.1.1 MATLAB常微分方程的表達方法 143
9.1.2 常規(guī)微分方程的求解實例 144
9.2 ODE家族求解器 144
9.2.1 ODE求解器的分類 144
9.2.2 ODE求解器的應用實例 145
9.3 專用求解器 146
9.4 小 結 149
參考文獻 149
第10章 MATLAB評價型模型求解方法 150
10.1 線性加權法 150
10.2 層次分析法(AHP) 153
10.3 小 結 154
參考文獻 154
第11章 MATLAB機理建模方法 155
11.1 機理建模概述 155
11.2 推導法機理建模 155
11.2.1 問題描述 155
11.2.2 假設和符號說明 155
11.2.3 模型的建立 156
11.2.4 模型中參數的求解 156
11.3 元胞自動機仿真法機理建模 158
11.3.1 元胞自動機的定義 158
11.3.2 元胞自動機的MATLAB實現 158
11.4 小 結 160
參考文獻 160
第三篇 實踐篇
第12章 眾籌筑屋規(guī)劃方案設計模型(CUMCM 2015D) 163
12.0 摘 要 163
12.1 模型背景與問題的重述 163
12.1.1 模型的背景 163
12.1.2 問題重述 164
12.2 問題分析和基本思路 164
12.2.1 問題分析 164
12.2.2 建模思路與思路流程圖 165
12.3 基本符號說明與基本假設 165
12.3.1 基本符號說明 165
12.3.2 基本假設 166
12.4 模型的建立和求解 167
12.4.1 問題一 167
12.4.2 問題二 171
12.4.3 問題三 173
12.5 模型的檢驗及進一步討論 174
12.5.1 問題一 174
12.5.2 問題二 175
12.5.3 問題三 175
12.6 模型的改進方向 175
12.7 模型的優(yōu)缺點分析 176
12.7.1 模型的優(yōu)點分析 176
12.7.2 模型的缺點分析 176
12.8 模型的推廣 176
12.9 小 結 176
參考文獻 177
第13章 風電場運行狀況分析及優(yōu)化研究(CUMCM 2016D) 178
13.0 摘 要 178
13.1 問題的提出 179
13.1.1 問題背景 179
13.1.2 問題重述 179
13.2 問題的分析 179
13.2.1 預備知識 179
13.2.2 問題的分析 180
13.3 模型的假設與符號說明 180
13.3.1 模型的假設 180
13.3.2 符號說明 180
13.4 模型的建立與求解 181
13.4.1 問題一 181
13.4.2 問題二 185
13.4.3 問題三 189
13.5 誤差的分析與改善 193
13.5.1 誤差的分析 193
13.5.2 誤差的改善 193
13.6 模型的評價與推廣 193
13.6.1 模型的評價 193
13.6.3 模型的推廣 193
13.7 小 結 193
參考文獻 194
第四篇 賽后重研究篇
第14章 MATLAB基于模型的產品開發(fā)流程 197
14.1 Simulink簡介 197
14.2 Simulink建模實例 198
14.2.1 Simulink建模方法 198
14.2.2 鋰電池建模的實現 199
14.3 在Simulink中使用MATLAB數據和算法 203
14.4 基于模型設計的思想 204
14.5 小 結 205
第五篇 經驗篇
第15章 數學建模參賽經驗 209
15.1 如何準備數學建模競賽 209
15.2 數學建模隊員應該如何學習MATLAB 210
15.3 如何才能在數學建模競賽中取得好成績 211
15.4 數學建模競賽中的項目管理和時間管理 213
15.5 一種非常實用的數學建模方法:目標建模法 215
15.6 延伸閱讀:MATLAB在高校的授權模式 215
附件 實踐篇競賽原題 217
附件A 2015年全國大學生數學建模競賽D題 217
眾籌筑屋規(guī)劃方案設計 217
附件B 2016年全國大學生數學建模競賽D題 217
電場運行狀況分析及優(yōu)化 217