一、內容的主要變化
在《MATLAB在數學建模中的應用》第2版出版兩年后,也就是2016年,跟北京航空航天大學出版社陳守平老師討論第3版的規(guī)劃,當時就感覺受到書名的限制,有些內容不容易展開。有幾位從事數學建模教育工作的讀者也曾發(fā)郵件反饋內容的設置問題,其中一點就是能不能調整書名。所以第2版之后,便調整了書名,原因有三:一是新書名的外延更廣闊些;二是部分院校在選用作為教材時避免書名局限的問題;三是,也是最重要的原因,經歷了兩版以后,數學建模和MATLAB發(fā)展了,書中的內容也應該有相應的變化。
從第3版開始,書名變更為《MATLAB數學建模方法與實踐》。除了書名外,全書的布局和內容也有較大的變化,內容上更適合數學建模競賽的訓練,包括基礎、技術、實踐、賽后重研究和經驗五個部分,由淺入深,層層遞進。作為主體的技術部分,是按照數學建模賽題的類型展開的,并且將數學模型分為數據、優(yōu)化、連續(xù)、評價、機理建模五個類型。MATLAB技術的介紹也是按照這五類展開,正好對應這五個類型問題需要的建模方法以及這些方法的MATLAB實現。這樣安排更便于參賽者準備競賽,有利于快速對數學建模有全面的認識,快速激發(fā)對數學建模的興趣,建立信心。
增加賽后重研究篇,想法與組委會設立賽后重研究的初衷一致。數學建模是非常有用的技術,不能止步于競賽,而是應該讓它在科研和產業(yè)界發(fā)揮更大、更實質性的作用。MATLAB作為主要的數學建模實現工具,大家往往更關心的是科學計算本身,而沒有注意它還有系統設計、系統仿真、代碼生成等產品開發(fā)功能,只要將數學模型遷移到Simulink中,借助基于模型的設計理念,就可以很快地將數學模型轉化成產品。所以,賽后重研究篇重點介紹如何借助MATLAB實現從數學模型到產品的轉化,F在的讀者思路更開闊,又有豐富的智能硬件可供應用,因此,如何將模型、工具與智能經驗結合起來,用于真正的創(chuàng)新和產品研發(fā),這對于很多讀者來說,也是建模之后感覺非常酷且有意義的事情。
經過修訂,第4版主要有三個變化:
(1) 實踐篇增加了從近年真題中甄選的兩個新的案例高溫作業(yè)服的優(yōu)化設計(CUMCM2018A)和爐溫曲線的機理建模與優(yōu)化(CUMCM2020A),替換了兩個案例(其中一個案例融合到技術篇中)。
(2) 在技術篇的第7章中,增加了規(guī)劃模型的MATLAB求解模式和應用實例:彩票中的數學(CUMCM2002B),前者可幫助讀者更高效地求解規(guī)劃模型,后者是一個規(guī)劃模型的求解實例。
(3) 對部分內容進行了更新和完善,主要是因MATLAB版本升級或技術進步而需要更新的內容,以及根據部分讀者的反饋,對不足或缺陷進行了完善和更正。
二、本書特色
縱觀全書,可以發(fā)現本書的特點鮮明,主要表現在:
(1) 方法務實,學以致用。本書介紹的方法都是數學建模中的主流方法,都經過實踐的檢驗,具有較強的實踐性。對于每種方法,本書基本都給出了完整、詳細的源代碼,這對于讀者來說,具有非常大的參考價值,很多程序可供讀者直接套用并加以學習。
(2) 知識系統,結構合理。本書的內容編排從基本概念與技術,到真題實踐,再到重研究和競賽經驗,使得概念、技術、實踐、經驗四位一體,自然形成全書的知識體系。而對于具體的技術,也是脈絡清晰、循序漸進,按照數據建模、優(yōu)化、連續(xù)、評價、機理建模展開,內容上整體是從基礎技術入手,再到融會貫通。正因為有完整的知識體系,從而更有利于理解數學建模的知識體系,這對于讀者學習是非常有幫助的。
(3) 案例實用,易于借鑒。本書選擇的案例都是來自數學建模中的經典案例和真實賽題,并且?guī)в袛祿统绦颍院苋菀鬃屪x者對案例產生共鳴,同時可以利用案例的程序進行模仿式學習,所帶的程序也有利于提高讀者的學習效率。
(4) 理論與實踐相得益彰。對于本書的每種方法,除了理論講解外,都配有一個典型的應用案例,讀者可以通過案例加深對理論的理解,同時理論也讓案例更有信服力。技術方面,以實現實例為目的,并且提供了大量技術實現的源程序,方便讀者學習。本書注重實踐和應用,作者秉持務實、貼近讀者的寫作風格。
(5) 內容獨特,趣味橫生,文字簡潔,易于閱讀。很多方法和內容都是同類書籍中鮮有的,這無疑增加了本書的新穎性和趣味性。另外,本書編寫過程中,以保證描述精準為前提,摒棄了那些刻板、索然無味的文字,讓文字既有活力,又更易于閱讀。
三、如何閱讀本書
全書內容分為五個部分,即五篇。
第一部分是基礎篇,主要介紹一些基本概念和知識,包括MATLAB在數學建模中的地位、數學模型的分類及各類需要用到的MATLAB技術,以及MATLAB編程入門。
第二部分是技術篇,是技術的主體部分,系統介紹MATLAB建模的主流技術。這一部分按照數學建模的類型分為五個方面:
(1) 第3~6章主要介紹數據建模技術,包括數據的準備、常用的數據建模方法、機器學習方法、灰色預測方法、神經網絡方法以及小波分析方法。
(2) 第7~9章主要介紹優(yōu)化技術,包括標準規(guī)劃模型的求解、MATLAB全局優(yōu)化算法。雖然蟻群算法也是比較經典的全局優(yōu)化算法,但不包含在全局優(yōu)化工具箱中,所以用單獨一章介紹這個算法。
(3) 第10章介紹連續(xù)模型的MATLAB求解方法。
(4) 第11章介紹評價型模型的MATLAB求解方法。
(5) 第12章介紹機理建模的MATLAB實現方法。
第三部分是實踐篇,以歷年中國大學生數學建模競賽(CUMCM)的經典賽題為例,介紹MATLAB在其中的實際應用過程,包括詳細的建模過程、求解過程以及原汁原味的競賽論文,不僅有助于讀者提高MATLAB的實戰(zhàn)技能,而且能增強讀者的建模實戰(zhàn)水平。
第四部分是賽后重研究篇,主要介紹如何借助MATLAB的工程應用功能,將模型轉化成產品,并在轉化過程中強化反饋,倒逼模型和算法的提升。因為很多模型若不通過產品化,則很難發(fā)現其缺陷。
第五部分是經驗篇,主要介紹數學建模競賽的參賽經驗、心得、技巧以及MATLAB的學習經驗。這些經驗有助于您為競賽做準備和提升競賽成績,至少也能讓您參與數學建;顒痈行判摹
其中,前三篇為本書的重點內容,建議重點研讀;第四篇為選讀內容,適合對賽后重研究或模型產品化感興趣的讀者閱讀;第五篇可以了解一下,在實際準備數學建模的過程中,當遇到問題而感到茫然時,可以再重新閱讀此篇。
四、讀者對象
數學建模參賽者;
數學、數學建模等學科的教師和學生;
從事數學建模相關工作的專業(yè)人士;
需要用到數學建模技術的各領域的科研工作者;
希望學習MATLAB的工程師或科研工作者(因為本書的代碼都是用MATLAB編寫的,所以對于希望學習MATLAB的讀者來說,也是一本很好的參考書);
其他對數學建模和MATLAB感興趣的人士。
五、致讀者
致教師
本書系統地介紹了MATLAB數學建模技術,可以作為數學、數學建模、統計、金融等專業(yè)本科或研究生的教材。書中的內容雖然系統,但也相對獨立,教師可以根據課程的學時安排和專業(yè)方向的側重,選擇合適的內容進行課堂教學,其他內容則可以作為參考。授課部分,一般會包含第一篇和第二篇,而如果課時較多,則可以增加其他章節(jié)中的一些項目案例進行教學。
在備課的過程中,如果您需要書中的一些電子資料作為課件或授課支撐材料,可以直接給作者發(fā)郵件(70263215@qq.com)說明您需要的材料和用途,作者會根據具體情況,為您提供力所能及的幫助。
致學生
作為21世紀的大學生,數學建模是一項基本技能,尤其是對以后有志于成為科研工作者、工程師、設計師等的學生來說更應掌握。數學建模競賽是非常好的競賽,不僅可以學習數學建模這一技能,而且可以認識很多優(yōu)秀的小伙伴,跟這些小伙伴一起備戰(zhàn)建模,相信您會感受到別樣且有意義的大學生活。
致專業(yè)人士
對于從事數學建模的專業(yè)人士來說,可以關注整個數學建模技術體系,因為本書應該算是在當前數學建模書籍中知識體系相對比較完善的。此外,書中的算法案例和項目案例是本書的特色,值得推薦。
六、配套資源
配套程序和數據
(1) MATLAB中文論壇下載
為了方便讀者學習,書中使用的程序和數據可以通過以下網址下載:
https://www.ilovematlab.cn/thread-550185-1-1.html
(2) 北京航空航天大學出版社下載
請關注微信公眾號北航科技圖書,回復3995,可獲得百度網盤的下載鏈接。
如果以上兩種方式都無法下載成功,也可以發(fā)郵件至70263215@qq.com與作者聯系。
配套教學課件
為了方便教師授課,我們開發(fā)了與本書配套的教學課件,如有需要,也可以與作者聯系。
七、勘誤和支持
由于時間倉促,加之作者水平有限,書中可能還存在值得商榷甚至錯漏之處,在此,誠懇地期待廣大讀者將意見反饋給我們。Email:70263215@qq.com。
在技術之路上如能與大家互勉共進,我們也倍感榮幸!對于書中出現的問題,將在論壇的勘誤部分進行修正, 勘誤地址如下:
https://www.ilovematlab.cn/thread-550189-1-1.html
八、致謝
感謝MathWorks官方文檔提供全面、深入、準確的參考材料,強大的官方文檔的支持是其他資料所無法企及的,同時感謝MATLAB中文論壇為本書提供的交流討論專區(qū)。
感謝北京航空航天大學出版社陳守平老師一直以來的支持和鼓勵,使我們能夠順利完成書稿的全部工作。
第一篇 基礎篇
第1章緒論2
1.1MATLAB在數學建模中的地位2
1.2正確且高效的MATLAB編程理念3
1.3數學建模對MATLAB水平的要求3
1.4如何提高MATLAB建模水平4
1.5本章小結5
參考文獻5
第2章MATLAB基礎6
2.1MATLAB快速入門6
2.1.1MATLAB概要6
2.1.2MATLAB的功能7
2.1.3快速入門案例8
2.1.4入門后的提高13
2.2MATLAB常用操作14
2.2.1常用標點的功能14
2.2.2常用操作指令15
2.2.3指令編輯操作鍵15
2.3MATLAB腳本類型15
2.3.1M腳本15
2.3.2實時腳本16
2.3.3函數腳本19
2.4MATLAB數據類型20
2.4.1數值類型21
2.4.2字符類型23
2.4.3日期和時間25
2.4.4元胞數組26
2.4.5表格28
2.5程序結構29
2.5.1標識命令29
2.5.2條件語句30
2.5.3循環(huán)語句31
2.6MATLAB開發(fā)模式32
2.6.1命令行模式32
2.6.2腳本模式32
2.6.3面向對象模式32
2.6.4三種模式的配合32
2.7本章小結33
參考文獻33
第二篇 技術篇
第3章數據建模基礎36
3.1數據的獲取36
3.1.1從Excel中讀取數據36
3.1.2從TXT中讀取數據37
3.1.3讀取圖像39
3.1.4讀取視頻39
3.2數據的預處理40
3.2.1缺失值處理41
3.2.2噪聲過濾42
3.2.3數據集成44
3.2.4數據歸約44
3.2.5數據變換45
3.3數據的統計47
3.3.1基本描述性統計47
3.3.2分布描述性統計48
3.4數據可視化48
3.4.1基本可視化方法48
3.4.2數據分布形狀可視化49
3.4.3數據關聯可視化50
3.4.4數據分組可視化51
3.5數據降維52
3.5.1主成分分析(PCA)基本原理52
3.5.2PCA應用案例:企業(yè)綜合實力排序54
3.5.3相關系數降維56
3.6本章小結57
參考文獻57
第4章MATLAB常用的數據建模方法58
4.1一元線性回歸58
4.2一元非線性回歸60
4.3多元回歸62
4.4逐步歸回63
4.5Logistic回歸65
4.6本章小結66
參考文獻66
第5章MATLAB機器學習方法67
5.1MATLAB機器學習概況67
5.2分類方法68
5.2.1K最近鄰分類68
5.2.2貝葉斯分類72
5.2.3支持向量機分類75
5.3聚類方法78
5.3.1K均值聚類78
5.3.2層次聚類83
5.3.3模糊C均值聚類86
5.4深度學習88
5.4.1深度學習的崛起88
5.4.2深度學習原理88
5.4.3深度學習訓練過程89
5.4.4MATLAB深度學習訓練過程90
5.5本章小結92
參考文獻92
第6章其他數據建模方法93
6.1灰色預測方法93
6.1.1灰色預測概述93
6.1.2灰色系統基本理論94
6.1.3經典灰色模型GM(1,1)95
6.1.4灰色預測的MATLAB程序100
6.1.5灰色預測應用實例101
6.1.6灰色預測小結103
6.2神經網絡方法104
6.2.1神經網絡原理104
6.2.2神經網絡應用實例106
6.2.3神經網絡的特點106
6.3小波分析方法107
6.3.1小波分析概述107
6.3.2常見的小波分析方法107
6.3.3小波分析應用實例110
6.4本章小結112
參考文獻112
第7章標準規(guī)劃問題的MATLAB求解113
7.1規(guī)劃模型基本建模知識113
7.1.1數學規(guī)劃模型的一般形式113
7.1.2數學規(guī)劃模型的可行解與最優(yōu)解114
7.1.3數學規(guī)劃模型的基本類型114
7.2線性規(guī)劃115
7.2.1線性規(guī)劃的實例與定義115
7.2.2線性規(guī)劃的MATLAB標準形式116
7.2.3線性規(guī)劃問題的解的概念116
7.2.4線性規(guī)劃的MATLAB求解方法116
7.3非線性規(guī)劃119
7.3.1非線性規(guī)劃的實例與定義119
7.3.2非線性規(guī)劃的MATLAB求解方法120
7.3.3二次規(guī)劃121
7.4整數規(guī)劃123
7.4.1整數規(guī)劃的定義123
7.4.201整數規(guī)劃123
7.5規(guī)劃模型的MATLAB求解模式124
7.5.1基于求解器的求解模式124
7.5.2基于實時腳本的交互式求解模式126
7.5.3基于問題的求解模式129
7.5.4三種模式的配合132
7.6應用實例:彩票中的數學(CUMCM2002B)132
7.6.1問題、假設和符號說明132
7.6.2模型的準備133
7.6.3模型的建立133
7.6.4模型的求解134
7.6.5求解總結145
7.7本章小結145
參考文獻146
第8章MATLAB全局優(yōu)化算法147
8.1MATLAB全局優(yōu)化概況147
8.2遺傳算法147
8.2.1遺傳算法的原理147
8.2.2遺傳算法的步驟148
8.2.3遺傳算法實例153
8.3模擬退火算法156
8.3.1模擬退火算法的原理156
8.3.2模擬退火算法的步驟157
8.3.3模擬退火算法應用實例159
8.4全局優(yōu)化求解器匯總164
8.5本章小結165
參考文獻165
第9章蟻群算法及其MATLAB實現166
9.1蟻群算法的原理166
9.1.1蟻群算法的基本思想166
9.1.2蟻群算法的數學模型167
9.1.3蟻群算法的流程168
9.2蟻群算法的MATLAB實現169
9.2.1實例背景169
9.2.2算法設計步驟169
9.2.3MATLAB程序實現170
9.2.4程序執(zhí)行結果與分析172
9.3算法關鍵參數的設定174
9.3.1參數設定的準則174
9.3.2螞蟻數量174
9.3.3信息素因子176
9.3.4啟發(fā)函數因子176
9.3.5信息素揮發(fā)因子176
9.3.6信息素常數177
9.3.7最大迭代次數177
9.3.8組合參數設計策略177
9.4應用實例:最佳旅游方案
(五一聯賽2011B)177
9.4.1問題描述177
9.4.2問題的求解和結果178
9.5本章小結180
參考文獻180
第10章連續(xù)模型的MATLAB求解方法181
10.1MATLAB中一般微分方程的求解181
10.1.1MATLAB中微分方程的表達方法181
10.1.2一般微分方程的求解實例182
10.2ODE家族求解器183
10.2.1ODE求解器的分類183
10.2.2ODE求解器應用實例183
10.3專用求解器184
10.4本章小結186
參考文獻186
第11章評價型模型的MATLAB求解方法187
11.1線性加權法187
11.2層次分析法189
11.3本章小結191
參考文獻191
第12章MATLAB機理建模方法192
12.1推導法機理建模192
12.1.1問題描述192
12.1.2模型假設與符號說明192
12.1.3模型的建立193
12.1.4模型中參數的求解193
12.2元胞自動機仿真法機理建模195
12.2.1元胞自動機的定義195
12.2.2元胞自動機的MATLAB實現195
12.3本章小結197
參考文獻197
第三篇 實踐篇
第13章露天礦卡車調度(CUMCM2003B)200
13.1問題描述200
13.2基本假設與符號說明202
13.3問題分析及模型準備202
13.4原則1數學模型的建立與求解204
13.4.1建立模型204
13.4.2模型求解205
13.4.3用整數規(guī)劃求解器求解208
13.5原則2數學模型的建立與求解209
13.6技巧點評209
參考文獻209
第14章奧運會商圈規(guī)劃(CUMCM2004A)210
14.1問題描述210
14.2基本假設、符號說明及名詞約定211
14.3問題分析與模型準備211
14.3.1基本思路212
14.3.2基本數學表達式的構建212
14.4設置MS網點數學模型的建立與求解213
14.4.1建立模型213
14.4.2模型求解214
14.5設置MS網點理論體系的建立216
14.6商區(qū)布局規(guī)劃的數學模型218
14.6.1建立模型218
14.6.2模型求解218
14.7模型評價及使用說明223
14.8技巧點評223
參考文獻223
第15章葡萄酒的評價(CUMCM2012A)224
15.1問題描述224
15.2問題1模型的建立與求解224
15.2.1問題分析224
15.2.2建立模型并求解225
15.3問題2模型的建立與求解229
15.3.1基本假設與問題分析229
15.3.2建立模型并求解230
15.4問題3和問題4239
15.4.1問題3分析239
15.4.2問題4分析240
15.5技巧點評240
參考文獻240
第16章出租車補貼方案優(yōu)化(CUMCM2015B)241
16.1問題描述241
16.2問題分析241
16.3模型假設與符號說明242
16.4問題1模型的建立與求解243
16.4.1確立指標243
16.4.2建立模型并求解243
16.4.3模型求解方法245
16.4.4模型求解結果分析249
16.5問題2模型的建立與求解250
16.5.1模型準備250
16.5.2緩解程度判斷模型的建立251
16.5.3模型求解結果分析253
16.6問題3模型的建立與求解254
16.6.1分區(qū)域動態(tài)實時補貼模型的建立254
16.6.2模型求解及結果分析255
16.7模型評價257
16.8模型改進與推廣258
16.9技巧點評258
參考文獻258
第17章小區(qū)開放對道路通行的影響(CUMCM2016B)259
17.1問題描述259
17.2問題分析259
17.3模型假設及符號說明261
17.4問題1模型的建立與求解262
17.4.1問題1分析262
17.4.2指標的選取263
17.5問題2模型的建立與求解264
17.5.1問題2分析264
17.5.2模型的建立264
17.5.3模型改進266
17.6問題3模型的建立與求解267
17.6.1不存在分、合流效應的小區(qū)267
17.6.2存在分、合流效應的小區(qū)276
17.6.3基于優(yōu)化的路徑選擇函數分析存在分、合流效應的小區(qū)278
17.7問題4279
17.8模型評價與改進279
17.8.1模型評價279
17.8.2模型改進279
17.9技巧點評280
參考文獻280
第18章高溫作業(yè)服的優(yōu)化設計(CUMCM2018A)281
18.1問題概述281
18.2問題分析282
18.3基本假設及符號說明282
18.4模型準備283
18.4.1背景知識283
18.4.2建立幾何坐標284
18.4.3輻射傳熱284
18.4.4各層傳熱方式284
18.5問題1模型的建立與求解285
18.5.1建立模型285
18.5.2模型求解286
18.6問題2模型的建立與求解293
18.6.1建立模型293
18.6.2模型求解294
18.7問題3模型的建立與求解297
18.7.1建立模型297
18.7.2模型求解及結果298
18.7.3自定義函數301
18.8模型推廣與分析303
18.9技巧點評304
參考文獻304
第19章爐溫曲線的機理建模與優(yōu)化(CUMCM2020A)305
19.1問題概述305
19.2問題分析306
19.3基本假設及符號說明306
19.4模型準備307
19.4.1實際問題的幾何處理307
19.4.2環(huán)境溫度分布307
19.4.3牛頓冷卻定律308
19.5問題1模型的建立與求解309
19.5.1一維熱傳導方程的建立309
19.5.2基于熱傳導方程的溫度分布模型310
19.5.3基于牛頓冷卻定律的溫度分布模型310
19.5.4模型求解310
19.6問題2模型的建立與求解314
19.7問題3模型的建立與求解316
19.8問題4模型的建立與求解320
19.9結果檢驗與誤差分析323
19.10模型評價324
19.11模型改進325
19.12技巧點評325
參考文獻325
第四篇 賽后重研究篇
第20章MATLAB基于模型的產品開發(fā)流程328
20.1Simulink簡介328
20.2Simulink建模實例329
20.2.1Simulink建模方法329
20.2.2鋰電池建模的實現330
20.3在Simulink中使用MATLAB數據和算法334
20.4在Simulink中使用外部代碼337
20.5基于模型設計的思想339
20.6本章小結341
第五篇 經驗篇
第21章數學建模參賽經驗344
21.1如何準備數學建模競賽344
21.2數學建模隊員應該如何學習MATLAB345
21.3如何才能在數學建模競賽中取得好成績347
21.4數學建模競賽中的項目管理和時間管理348
21.5一種非常實用的數學建模方法:目標建模法350
21.6延伸閱讀:MATLAB在高校的授權模式350