在《MATLAB數(shù)學建模方法與實踐》(第3版)(前兩版的名稱分別是《MATLAB在數(shù)學建模中的應(yīng)用》(第1、2版))出版后, 幾位高職院校的數(shù)學建模指導(dǎo)老師建議再寫一本適合于高職高專數(shù)學建模的MATLAB參考書。隨著數(shù)學建模在高職高專院校影響力越來越大,教育部門對職業(yè)教育也越來越重視,因此,寫一本專門針對高職高專的MATLAB數(shù)學建模輔導(dǎo)書也是很有必要的。
 相對于甲組(本科)的數(shù)學建模教學或競賽, 乙組(高職高專)的數(shù)學建模在方法上與之差異不大, 都會涉及數(shù)據(jù)處理、優(yōu)化等方法,只是在題目難度和MATLAB的程序量上有些差異,具體詳見歷年全國賽中的乙組賽題;谝陨戏治,本書的內(nèi)容分為5個部分,基本思路是按照基礎(chǔ)、方法、實踐、賽后重研究、經(jīng)驗展開的。主體的方法部分按照數(shù)學建模的類型展開,將數(shù)學模型分為數(shù)據(jù)、優(yōu)化、連續(xù)、評價、機理建模5個類型,MATLAB技術(shù)的介紹也按照這5類展開,介紹的方法正好就是5類模型需要的建模方法以及這些方法的MATLAB實現(xiàn)。
 這樣更便于讀者準備競賽,有利于快速對數(shù)學建模有個全面的認識,也有利于快速建立對數(shù)學建模的興趣和信心。
 賽后重研究部分是近幾年數(shù)學建模的新課題。數(shù)學建模是非常有用的技術(shù),不能止步于競賽,而應(yīng)該讓其在科研和產(chǎn)業(yè)界發(fā)揮更大、更實質(zhì)的作用。MATLAB作為主要的數(shù)學建模實現(xiàn)工具,大家往往更關(guān)心它的科學計算能力,并沒有注意到它還有系統(tǒng)設(shè)計、系統(tǒng)仿真、代碼生成等產(chǎn)品開發(fā)功能。只要將數(shù)學模型遷移到Simulink中,借助“基于模型設(shè)計”的理念,就可以很快將數(shù)學模型轉(zhuǎn)化成產(chǎn)品,所以在賽后重研究部分,重點介紹如何借助MATLAB實現(xiàn)從數(shù)學模型到產(chǎn)品的轉(zhuǎn)化,F(xiàn)在的讀者思路更開闊,而且有豐富的智能硬件可以應(yīng)用,如果將模型、工具與智能經(jīng)驗結(jié)合起來,就可以真正地進行創(chuàng)新、產(chǎn)品研發(fā)。對于很多讀者來說,這也是建模之后非常酷且有意義的事情。
 本書特色
 縱觀全書,可發(fā)現(xiàn)本書的特點鮮明,主要表現(xiàn)在:
 ① 方法務(wù)實,學以致用。本書介紹的方法都是數(shù)學建模中的主流方法,都經(jīng)過了實踐的檢驗,具有較強的實用性。對于每種方法,本書基本都給出了完整、詳細的源代碼,這對于讀者來說,具有非常大的參考價值,很多程序可供讀者直接套用并加以學習。
 ② 知識系統(tǒng),結(jié)構(gòu)合理。本書的內(nèi)容編排從基本概念與技術(shù)到真題實踐,再到重研究和競賽經(jīng)驗,使得概念、技術(shù)、實踐、經(jīng)驗四位一體,自然形成全書的知識體系。而對于具體的技術(shù),也是脈絡(luò)清晰、循序漸進,按照數(shù)據(jù)建模、優(yōu)化、連續(xù)、評價、機理建模展開,內(nèi)容上整體是從基礎(chǔ)技術(shù)入手,再到融會貫通。正因為有完整的知識體系,讀者讀起來才有很好的系統(tǒng)性,從而更利于理解數(shù)學建模的知識體系,這對于學習是非常有幫助的。
 ③ 案例實用,易于借鑒。本書選擇的案例都來自數(shù)學建模中的經(jīng)典案例和真實賽題,并且?guī)в袛?shù)據(jù)和程序,所以很容易讓讀者對案例產(chǎn)生共鳴;同時可以利用案例的程序進行模仿式的學習,也能提高讀者的學習效率。
 ④ 理論與實踐相得益彰。對于本書的每種方法,除了理論的講解,都配有一個典型的應(yīng)用案例,讀者可以通過案例加深對理論的理解,同時理論也讓案例的應(yīng)用更有說服力。技術(shù)的介紹都以實現(xiàn)實例為目的,同時提供大量技術(shù)實現(xiàn)的源程序,方便讀者學習。
 ⑤ 內(nèi)容獨特,趣味橫生,文字簡潔,易于閱讀。很多方法和內(nèi)容是同類書籍中所沒有的,這無疑增強了本書的新穎性和趣味性。另外,在保證描述精準的前提下,我們摒棄了那些刻板、索然無味的文字,讓文字既有活力,又更易于閱讀。
 如何閱讀本書
 全書內(nèi)容分5個部分,故成5篇。
 第一部分(基礎(chǔ)篇)主要介紹一些基本概念和知識,包括MATLAB在數(shù)學建模中的地位、數(shù)學模型的分類及各類需要用到的MATLAB技術(shù),以及MATLAB編程入門。
 第二部分(方法篇)是本書的主體部分,系統(tǒng)介紹了MATLAB建模的主流方法。這個部分又按照數(shù)學建模的類型分為5個方面:
 ① 第3~6章主要講數(shù)據(jù)建模方法,包括數(shù)據(jù)的準備、常用的數(shù)學建模方法、機器學習、灰色預(yù)測、神經(jīng)網(wǎng)絡(luò)以及小波分析。
 ② 第7~8章主要介紹優(yōu)化方法,包括標準規(guī)劃模型的求解、MATLAB全局優(yōu)化技術(shù)。
 ③ 第9章介紹了連續(xù)模型的MATLAB求解方法。
 ④ 第10章介紹的是評價模型的求解方法。
 ⑤ 第11章介紹的是機理建模的MATLAB實現(xiàn)方法。
 第三部分(實踐篇)以歷年全國大學生數(shù)學建模競賽的經(jīng)典賽題(乙組)為例,介紹MATLAB在其中的實際應(yīng)用,包括詳細的建模過程、求解過程以及原汁原味的競賽論文,不僅讓讀者體會MATLAB的實戰(zhàn)技能,也能增強讀者的建模實戰(zhàn)水平。
 第四部分(賽后重研究篇)主要介紹如何借助MATLAB的工程應(yīng)用功能,將模型轉(zhuǎn)化成產(chǎn)品,并通過在轉(zhuǎn)化過程中強化反饋,倒逼模型和算法的提升。因為有很多模型不通過產(chǎn)品化,很難發(fā)現(xiàn)其中的缺陷。
 第五部分(經(jīng)驗篇)主要介紹數(shù)學建模的參賽經(jīng)驗、心得、技巧,以及MATLAB的學習經(jīng)驗,這些經(jīng)驗會有助于競賽的準備和競賽成績的提升,至少讓讀者更從容地參與數(shù)學建模
 活動。
 其 中,前3篇為本書的重點內(nèi)容,建議重點研讀;第四篇為選讀內(nèi)容,適合賽后對研究或模型產(chǎn)品化感興趣的讀者;第五篇可以先了解一下,在實際準備數(shù)學建模的過程中如果遇到問題,可以再重新閱讀此篇。
 讀者對象
 數(shù)學建模參賽者;
 數(shù)學、數(shù)學建模等學科的教師和學生;
 從事數(shù)學建模相關(guān)工作的專業(yè)人士;
 需要用到數(shù)學建模技術(shù)的各領(lǐng)域的科研工作者;
 想要學習MATLAB的工程師或科研工作者,因為本書的代碼都是用MATLAB編寫的,所以對于想要學習MATLAB的讀者來說,也是一本很好的參考書;
 其他對數(shù)學建模和MATLAB感興趣的人士。
 致讀者
 致教師
 本書系統(tǒng)地介紹了MATLAB數(shù)學建模技術(shù),可以作為數(shù)學、數(shù)學建模、統(tǒng)計、金融等專業(yè)本科或研究生的教材。書中的內(nèi)容雖然系統(tǒng),但也相對獨立,教師可以根據(jù)課程的學時和專業(yè)方向,選擇合適的內(nèi)容進行課堂教學,其他內(nèi)容則可以作為參考。授課部分,一般會包含第一篇、第二篇的章節(jié),如果課時較多,則可以增加其他章節(jié)中一些項目案例的學習。
 在課程準備的過程中,如果您需要書中的一些電子資料作為課件或授課支撐材料,可以直接給筆者發(fā)郵件(70263215@qq.com)說明您需要的材料和用途,筆者會根據(jù)具體情況,為您提供力所能及的幫助。
 致學生
 作為21世紀的大學生,數(shù)學建模是一項基本技能,尤其是以后有志于從事科研工作或希望從事工程類、設(shè)計類等職業(yè)的學生。數(shù)學建模競賽是非常好的競賽,不僅可以學習數(shù)學建模這一技能,還能認識很多優(yōu)秀的小伙伴,跟這些小伙伴們一起備戰(zhàn)建模,相信也會感受到別樣且有意義的大學生活。
 致專業(yè)人士
 對于從事數(shù)學建模的專業(yè)人士,大家可以關(guān)注整個數(shù)學建模技術(shù)體系,因為本書的知識體系應(yīng)該是當前數(shù)學建模書籍中體系相對完善的。此外,書中的算法案例和項目案例,也算是本書的特色,值得借鑒。
 配套資源
 (一) 配套程序和數(shù)據(jù)
 為了方便讀者學習,作者將提供書中所有的程序和數(shù)據(jù),下載地址為:
 (1) MATLAB中文論壇
 https://www.ilovematlab.cn/thread-576947-1-1.html
 (2) 百度網(wǎng)盤
 https://pan.baidu.com/s/1voPLECNnNteQLxkGkXIDug(提取碼:ca6p)
 (3) 北航出版社
 http://www.buaapress.com.cn/mzs/file/index/id/8/c/d(官網(wǎng)→下載專區(qū)→隨書資料)
 如遇到下載問題,也可以直接發(fā)郵件與作者聯(lián)系:70263215@qq.com。
 (二) 配套教學課件
 為了方便教師授課,我們也開發(fā)了本書配套的教學課件,如有需要,也可以與筆者聯(lián)系。
 勘誤和支持
 本書在MATLAB中文論壇設(shè)有專門的交流版塊(https://www.ilovematlab.cn/forum-274-1.html),供同行討論交流。對于書中出現(xiàn)的問題,也歡迎大家到勘誤版塊https://www.ilovematlab.cn/thread-576946-1-1.html及時反饋,以便該書進一步得到完善。
 致 謝
 感謝MathWorks公司在寫作期間提供給我最全面、最深入、最準確的參考材料,強大的官方文檔也是其他資料無法企及的。同時感謝MATLAB中文論壇為本書提供的交流討論專區(qū)。
 感謝北航出版社陳守平老師一直以來的支持和鼓勵,使我們順利完成全部書稿。
作 者
 2019年5月
 
第一篇 基礎(chǔ)篇
 第1章 緒 論 3
 1.1 MATLAB在數(shù)學建模中的地位 3
 1.2 正確且高效的MATLAB編程理念 4
 1.3 數(shù)學建模對MATLAB水平的要求 4
 1.4 如何提高MATLAB建模水平 5
 1.5 小 結(jié) 6
 參考文獻 6
 第2章 MATLAB數(shù)學建?焖偃腴T 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數(shù)據(jù)類型 16
 2.3.1 數(shù)值類型 17
 2.3.2 字符類型 20
 2.3.3 日期和時間 22
 2.3.4 元胞數(shù)組 23
 2.3.5 表 格 25
 2.4 程序結(jié)構(gòu) 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 面向?qū)ο竽J?29
 2.5.4 三種模式的配合 30
 2.6 小 結(jié) 30
 參考文獻 30
 第二篇 技術(shù)篇
 第3章 數(shù)據(jù)建;A(chǔ) 33
 3.1 數(shù)據(jù)的獲取 33
 3.1.1 從Excel中讀取數(shù)據(jù) 33
 3.1.2 從TXT中讀取數(shù)據(jù) 33
 3.1.3 讀取圖片 36
 3.1.4 讀取視頻 36
 3.2 數(shù)據(jù)的預(yù)處理 37
 3.2.1 缺失值處理 38
 3.2.2 噪聲過濾 39
 3.2.3 數(shù)據(jù)集成 41
 3.2.4 數(shù)據(jù)歸約 42
 3.2.5 數(shù)據(jù)變換 42
 3.3 數(shù)據(jù)的統(tǒng)計 44
 3.3.1 基本描述性統(tǒng)計 44
 3.3.2 分布描述性統(tǒng)計 45
 3.4 數(shù)據(jù)可視化 45
 3.4.1 基本可視化 46
 3.4.2 數(shù)據(jù)分布形狀可視化 47
 3.4.3 數(shù)據(jù)關(guān)聯(lián)可視化 48
 3.4.4 數(shù)據(jù)分組可視化 50
 3.5 數(shù)據(jù)降維 51
 3.5.1 主成分分析(PCA)基本原理 51
 3.5.2 PCA 應(yīng)用案例:企業(yè)綜合實力排序 53
 3.5.3 相關(guān)系數(shù)降維 56
 3.6 小 結(jié) 56
 參考文獻 57
 第4章 數(shù)據(jù)的擬合和回歸 58
 4.1 一元回歸 58
 4.1.1 一元線性回歸 58
 4.1.2 一元非線性回歸 60
 4.2 多元回歸 62
 4.3 逐步回歸 64
 4.4 Logistic回歸 65
 4.5 小 結(jié) 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 小 結(jié) 96
 參考文獻 96
 第6章 其他數(shù)據(jù)建模方法 97
 6.1 灰色預(yù)測方法 97
 6.1.1 灰色預(yù)測概述 97
 6.1.2 灰色模型的預(yù)測步驟 97
 6.1.3 灰色預(yù)測典型MATLAB程序
 結(jié)構(gòu) 99
 6.1.4 應(yīng)用實例:與會代表人數(shù)(CUMCM 2009D) 100
 6.1.5 灰色預(yù)測經(jīng)驗小結(jié) 101
 6.2 神經(jīng)網(wǎng)絡(luò) 102
 6.2.1 神經(jīng)網(wǎng)絡(luò)的原理 102
 6.2.2 神經(jīng)網(wǎng)絡(luò)的實例 103
 6.2.3 神經(jīng)網(wǎng)絡(luò)的特點 104
 6.3 小波分析 104
 6.3.1 小波分析概述 104
 6.3.2 常見的小波分析方法 105
 6.3.3 小波分析應(yīng)用實例 108
 6.4 小 結(jié) 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 整數(shù)規(guī)劃 120
 7.3.1 整數(shù)規(guī)劃的定義 120
 7.3.2 0 1整數(shù)規(guī)劃 120
 7.4 小 結(jié) 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 小 結(jié) 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求解器的應(yīng)用實例 145
 9.3 專用求解器 146
 9.4 小 結(jié) 149
 參考文獻 149
 第10章 MATLAB評價型模型求解方法 150
 10.1 線性加權(quán)法 150
 10.2 層次分析法(AHP) 153
 10.3 小 結(jié) 154
 參考文獻 154
 第11章 MATLAB機理建模方法 155
 11.1 機理建模概述 155
 11.2 推導(dǎo)法機理建模 155
 11.2.1 問題描述 155
 11.2.2 假設(shè)和符號說明 155
 11.2.3 模型的建立 156
 11.2.4 模型中參數(shù)的求解 156
 11.3 元胞自動機仿真法機理建模 158
 11.3.1 元胞自動機的定義 158
 11.3.2 元胞自動機的MATLAB實現(xiàn) 158
 11.4 小 結(jié) 160
 參考文獻 160
 第三篇 實踐篇
 第12章 眾籌筑屋規(guī)劃方案設(shè)計模型(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 基本符號說明與基本假設(shè) 165
 12.3.1 基本符號說明 165
 12.3.2 基本假設(shè) 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 小 結(jié) 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 預(yù)備知識 179
 13.2.2 問題的分析 180
 13.3 模型的假設(shè)與符號說明 180
 13.3.1 模型的假設(shè) 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 小 結(jié) 193
 參考文獻 194
 第四篇 賽后重研究篇
 第14章 MATLAB基于模型的產(chǎn)品開發(fā)流程 197
 14.1 Simulink簡介 197
 14.2 Simulink建模實例 198
 14.2.1 Simulink建模方法 198
 14.2.2 鋰電池建模的實現(xiàn) 199
 14.3 在Simulink中使用MATLAB數(shù)據(jù)和算法 203
 14.4 基于模型設(shè)計的思想 204
 14.5 小 結(jié) 205
 第五篇 經(jīng)驗篇
 第15章 數(shù)學建模參賽經(jīng)驗 209
 15.1 如何準備數(shù)學建模競賽 209
 15.2 數(shù)學建模隊員應(yīng)該如何學習MATLAB  210
 15.3 如何才能在數(shù)學建模競賽中取得好成績 211
 15.4 數(shù)學建模競賽中的項目管理和時間管理 213
 15.5 一種非常實用的數(shù)學建模方法:目標建模法 215
 15.6 延伸閱讀:MATLAB在高校的授權(quán)模式 215
 附件 實踐篇競賽原題 217
 附件A 2015年全國大學生數(shù)學建模競賽D題 217
 眾籌筑屋規(guī)劃方案設(shè)計 217
 附件B 2016年全國大學生數(shù)學建模競賽D題 217
 電場運行狀況分析及優(yōu)化 217