你想了解什么是數(shù)學(xué)建模么?看這篇文章就夠了(什么叫數(shù)學(xué)建模-)
1.「數(shù)學(xué)建模」的過程主要有哪些?
數(shù)學(xué)建模的定義
這里引用下我老師寫的新書中對數(shù)學(xué)模型和數(shù)學(xué)建模的定義,我覺得算是一個比較不錯的版本,這里分享給大家:
數(shù)學(xué)模型是利用系統(tǒng)化的符號和數(shù)學(xué)表達(dá)式對間題的一種抽象描述。數(shù)學(xué)建模可看作是把問題定義轉(zhuǎn)換為數(shù)學(xué)模型的過程。 和問題定義相對應(yīng),數(shù)學(xué)模型包括幾個主要組成部分:決策變量、環(huán)境變量、目標(biāo)函數(shù)和約束條件。決策變量表示決策者可以控制的因素,即可控輸入,是需要通過模型求解來確定的模型中的未知變量。環(huán)境變量表示決策者不可控的外界因素,即非可控輸入,需要在收集數(shù)據(jù)階段確定其具體數(shù)值,并在模型中以常量表示。目標(biāo)函數(shù)是指描述問題目標(biāo)的數(shù)學(xué)方程,而約束條件則是指描述問題中制約和限制因素的數(shù)學(xué)表達(dá)式(等式或不等式)。(這個主要是規(guī)劃的一種定義) 數(shù)學(xué)建模是一項富有創(chuàng)造性的工作。對任何問題,“沒有唯一正確的模型”。數(shù)學(xué)模型是對現(xiàn)實問題的一種抽象描述,必然會忽略一些因素。而這些被忽略的看似無關(guān)或不重要的因素,可能會引起重大的變化,例如人們熟知的“蝴蝶效應(yīng)”。著名的統(tǒng)計學(xué)家喬治·博克斯曾說過:“All models are wrong.Some are useful.”(所有的模型都是錯誤的,但有一些是有用的。)對同一問題,可以從不同角度對其構(gòu)建出多個不同的模型。 對于復(fù)雜問題的建模,很難一步到位,通常需要采取一種逐步演化的方式來進(jìn)行。從簡單的模型開始(忽略一些難以處理的因素),然后通過逐步添加更多相關(guān)因素,讓模型演化,使其與實際問題更加接近?;谀P头治龅贸龅慕Y(jié)論或建議的價值,與模型對實際情況的描述符合程度有很大的關(guān)系。通常,模型越接近實際,分析得出的結(jié)果的價值也越大。
除此之外,美國最為權(quán)威的數(shù)學(xué)建模參考書Mathematical Modeling 在前言部分對數(shù)學(xué)建模也有著一個比較通俗易懂的解釋:
Mathematical modeling is the link between mathematics and the rest of the world. You ask a question. You think a bit, and then you refine the question, phrasing it in precise mathematical terms. Once the question becomes a mathematics question, you use mathematics to find an answer. Then finally (and this is the part that too many people forget), you have to reverse the process, translating the mathematical solution back into a comprehensible, no-nonsense answer to the original question. Some people are fluent in English, and some people are fluent in calculus. We have plenty of each. We need more people who are fluent in both languages and are willing and able to translate. These are the people who will be influential in solving the problems of the future.
翻譯的拙作見下:數(shù)學(xué)建模是數(shù)學(xué)與世界其他地方(其他領(lǐng)域)之間建立的聯(lián)系的方法。您提出一個問題,然后稍作思考,然后細(xì)化問題,最后以精確的數(shù)學(xué)術(shù)語表述。一旦問題變成數(shù)學(xué)問題,您就要使用數(shù)學(xué)來找到答案。最后,最后(這是很多人忘記的部分),您必須逆轉(zhuǎn)這一過程,將數(shù)學(xué)解轉(zhuǎn)換回對原始問題的可理解的,有意義的答案。
我們知道,有些人說英語流利,有些人做微積分運算熟練,擅長不同領(lǐng)域的人多種多樣。我們需要精通不同領(lǐng)域的人并且愿意將不同領(lǐng)域進(jìn)行轉(zhuǎn)化,這些人將對解決未來的問題產(chǎn)生影響。
這兩本書實際上都清晰地說明了數(shù)學(xué)建模的特點,一個從方法上,一個從思想上。這里我稍微總結(jié)一下:
從思想上:
從思想上來說,數(shù)學(xué)建模是構(gòu)建數(shù)學(xué)與其他學(xué)科之間的橋梁。我們所謂的交叉學(xué)科,很大概率就是以數(shù)學(xué)、統(tǒng)計學(xué)、物理學(xué)作為理論基礎(chǔ),計算機(jī)作為計算或可視化利器,對某些學(xué)科進(jìn)行定量分析。比如現(xiàn)在流行的生物信息學(xué)、整合生命科學(xué)、商業(yè)分析,或者Computational XX的相關(guān)學(xué)科,基本上都和數(shù)學(xué)建模相關(guān)。
從技術(shù)上:
從技術(shù)的角度上來說,數(shù)學(xué)建模從來都不是強(qiáng)迫癥的樂園。因為,我們通過上文已經(jīng)得出,數(shù)學(xué)模型本身是不完美的,因此我們要容忍一定程度上模型對原型的“失真”。并且由于選擇的因素的側(cè)重點不同,很有可能兩個團(tuán)隊使用了不同數(shù)學(xué)領(lǐng)域的方法對問題進(jìn)行分析并建立模型。但是,正是這些丑陋并且存在誤差的模型,解決了我們生活中很多方方面面的問題。數(shù)學(xué)模型的建立、求解和應(yīng)用是人類的理論向著社會應(yīng)用的一大躍進(jìn)。
數(shù)學(xué)建模的主要過程
下面主要來談?wù)剶?shù)學(xué)建模的主要過程,或者我可以說是數(shù)學(xué)建模的整個生命周期是怎么樣的。這里我同樣使用中外兩個不同版本的教科書對這個問題的看法,首先第一本是大家參加數(shù)學(xué)建模競賽中可能已經(jīng)使用過的教材:A First Course in Mathematical Modeling,這本教材中出現(xiàn)的數(shù)學(xué)建模五步法 ,應(yīng)該是大家耳熟能詳?shù)?,這里給大家分享一下:
數(shù)學(xué)建模五步法
下面是我老師教材中關(guān)于數(shù)學(xué)建模的一般流程 。這個流程與數(shù)學(xué)建模五步法相比,更加貼近實際項目中的流程,這里我使用AxGlyph繪制下改流程圖:
基于模型解決問題的一般流程
這個流程圖便是基于模型解決問題的一般流程,數(shù)學(xué)建模五步法與其相比更加精簡,更適合在數(shù)學(xué)建模競賽中應(yīng)用,而該流程在實際生活中更具指導(dǎo)意義。還有一種是我們數(shù)學(xué)建模競賽中常常走的寫作套路,這里也和大家分享一下:
摘要1.問題重述(背景介紹、文獻(xiàn)綜述、問題重述等)2.問題分析(主要對問題進(jìn)行一定的分析,可以做一個分析流圖)3.問題假設(shè)(其實也就是對問題的邊界進(jìn)行劃定,我們需要讓問題更具體一些)4.符號說明(對于文章中主要出現(xiàn)的符號進(jìn)行一定的解釋,方便評委老師理解)5.模型建立與求解(這一步最為核心,即數(shù)學(xué)建模和模型的求解部分)6.靈敏度分析(即分析模型的輸出,對參數(shù)或環(huán)境變化的敏感程度的分析)7.模型的推廣及優(yōu)缺點(主要對模型的進(jìn)一步研究分析和優(yōu)缺點解釋)參考文獻(xiàn)附錄
我們可以對基于模型解決問題的一般流程中的步驟進(jìn)行一定的分析:
首先是定義問題和收集數(shù)據(jù)環(huán)節(jié)。我認(rèn)為這是上述流程中最為困難也最容易讓人感到很虛無縹緲的一個部分。首先,由于我們每個人說話的方式和對問題的理解程度不同,可能同一件事務(wù),從不同的人口中或者行為中或者情感中表現(xiàn)出來是不太一樣的。其實有一個游戲就是利用了這種特點,這種游戲叫做心有靈犀游戲 ,意思就是說,一個人看到一個詞匯,通過扮演這個詞匯,讓另外一個人理解并且將這個詞說出來。一般而言,不經(jīng)過一定程度的訓(xùn)練,是很難讓兩者協(xié)調(diào)地進(jìn)行這個游戲的。或者我們換一個理解,更簡單地說,我們知道存在失真這個名詞,我們不同的人對一個事務(wù)的理解,都會存在不同程度的失真,然后再通過語言或者其他行為傳遞處于會形成二次失真。下面我引用一段話 :
如果負(fù)責(zé)解決問題的人和負(fù)責(zé)提出問題的人對問題的理解不同,其結(jié)果可想而知。從“錯誤”的問題出發(fā),很難得出“正確”的答案。
有時候,我們對于一個要解決的問題,可能并沒有真正理解問題的本質(zhì),可能問題本身并不是一個問題,或者這個問題在很多年之前被人已經(jīng)發(fā)現(xiàn)了,這樣的情況在科研界是很容易出現(xiàn)的。比如之前吵得沸沸揚(yáng)揚(yáng)的關(guān)于一種新的特征值解法 ,陶哲軒在這一塊也犯了這樣的錯誤。對于我們普通人來說,更可能如此,一些問題只是拍腦袋想出來的,并沒有深思熟慮。
很多人曾經(jīng)指出:“能夠準(zhǔn)確地提出問題,就相當(dāng)于這個問題已經(jīng)解決了一半?!币虼耍x問題是解決問題的首要環(huán)節(jié)。
問題的定義主要有兩個部分,分別是確定目標(biāo)和劃定邊界。我們的目標(biāo)應(yīng)該是可以量化并且可以實現(xiàn)的,目標(biāo)可能有一個目標(biāo),可能有多個目標(biāo),也可能是一個目標(biāo)下有很多子目標(biāo)。其次,我們需要劃定邊界,因為一個問題受到的影響因素有很多,我們需要做出取舍,找出主要矛盾,舍棄次要矛盾。這對于我們來說,實際上都是非常容易讓我們頭大的事情。
但幸運的是,對于廣大技術(shù)工作者或數(shù)學(xué)建模競賽愛好者來說,上述問題基本上都是現(xiàn)成的,都是由相關(guān)機(jī)構(gòu)或者相關(guān)人員經(jīng)過深思熟慮后考慮的問題,我們只需要好好思考模型,去解決問題就好了。
收集數(shù)據(jù),我認(rèn)為是另外一個老大難的問題。很多人參與過科研項目或者數(shù)學(xué)建模競賽的人都知道,有時候,即是是一個非常簡單的問題,或者是一個非常成熟的問題,沒有數(shù)據(jù),什么都是白搭,巧婦難為無米之炊。因此,我們需要開動腦筋,發(fā)揮自己和合作伙伴的優(yōu)勢,爭取擴(kuò)大自己的數(shù)據(jù)使用權(quán)和數(shù)據(jù)獲取渠道能力。同時,收集數(shù)據(jù)對定義問題也很重要 :
在定義問題的同時,還需要收集相應(yīng)的數(shù)據(jù)。收集數(shù)據(jù)可以驗證對問題的定義是否合理。
我們可以通過問題的指導(dǎo)下去收集可能可以解決問題所需要的數(shù)據(jù),同時我們也可以根據(jù)數(shù)據(jù)收集的程度,反過來看是否需要修改問題的影響因素或邊界條件。
數(shù)據(jù)的收集通常是一個很繁瑣的工作,我們往往希望乞求于有專業(yè)的組織或者個人可以給我們分享數(shù)據(jù)。某些數(shù)據(jù)我們可以根據(jù)網(wǎng)上現(xiàn)存的,如國家統(tǒng)計局的數(shù)據(jù),而更多時候,我們只能通過自己收集,需要通過大量的調(diào)研、收集和整理?,F(xiàn)在很多大企業(yè)越來越注重數(shù)據(jù)的收集、清洗、存儲,在未來大數(shù)據(jù)時代中,數(shù)據(jù)驅(qū)動和“以數(shù)據(jù)為王”會成為很多企業(yè)堅定發(fā)展的目標(biāo)。
有時候因為數(shù)據(jù)收集上存在一定的差距,因此在很多和建模相關(guān)的競賽中都給與數(shù)據(jù),這樣可以盡最大可能保證比賽更多地是在比較模型的優(yōu)劣。因為有時候,收集到一份非常有意義并且是獨家的數(shù)據(jù),哪怕使用最簡單的圖表分析和描述性統(tǒng)計,也能做出較為有意義的解釋。目前在數(shù)學(xué)建模競賽中,全國大學(xué)生數(shù)學(xué)建模競賽和全國研究生數(shù)學(xué)建模競賽是兩個相對數(shù)據(jù)上保證公平的比賽,建議大家多多參與。
好了以上是關(guān)于定義問題和收集數(shù)據(jù)環(huán)節(jié)的解讀,下面我們可以聊聊其他環(huán)節(jié)。
下面的兩個環(huán)節(jié)可以放在一起來說,即數(shù)學(xué)建模和模型求解。在數(shù)學(xué)建模競賽中,這個對應(yīng)的環(huán)節(jié)是模型建立與求解,也是最為核心的步驟。同時,這應(yīng)該是我們廣大看這個問題的人,最為關(guān)心的問題,即我應(yīng)該如何建模,并且模型應(yīng)該如何進(jìn)行求解。
在前面我們已經(jīng)說過 :
數(shù)學(xué)模型是利用系統(tǒng)化的符號和數(shù)學(xué)表達(dá)式對間題的一種抽象描述。數(shù)學(xué)建模可看作是把問題定義轉(zhuǎn)換為數(shù)學(xué)模型的過程。
大家可以回到文章中的最前面去閱讀關(guān)于數(shù)學(xué)建模的全部敘述,這里就不再重復(fù),總而言之,這可能是對于很多本科學(xué)生甚至高中學(xué)生來說,可能第一次接觸數(shù)學(xué)建模,會覺得這是一個“骯臟”的事情。因為種種的假設(shè)以及原理不清楚、不明顯,導(dǎo)致不覺得這是一個完美的、普世的。尤其是剛剛學(xué)完高中物理或者數(shù)學(xué)的同學(xué),會覺得一切都是完美的、精確的??赡苷J(rèn)為解題僅僅是高考那樣,寫出詳細(xì)解答過程,得出答案即可。但事實上,我們閱讀很多數(shù)模相關(guān)的論文,其中處處充滿了妥協(xié),特定的、理想化的、某一類的、近似的等不完美的詞匯出現(xiàn)在模型的建立過程中,對于低年級的學(xué)生來說,需要適應(yīng)這種過程的轉(zhuǎn)變。我們只能盡自己最大的努力,讓模型可以更加接近實際,讓模型的價值體現(xiàn)出來。
下面談?wù)?strong>模型的求解部分。對于模型的求解這一部分,我同樣引用了一段話 :
數(shù)學(xué)模型中通常包含一些未知變量,如決策變量,需要通過模型求解來獲得其(最優(yōu))取值。模型求解就是為了找出一組滿足所有約束條件,同時使得目標(biāo)函數(shù)值為最優(yōu)的決策變量取值。
一般而言,模型的求解主要有以下兩種形式 :
1.確定可行解的范圍,在該范圍中通過某種方法尋找最優(yōu)解。2.找到一個可行解,通過某種方法逐步對其進(jìn)行優(yōu)化,直到無法優(yōu)化為止。
從上述的兩種求解策略中,我們可以感受到計算的工作量巨大。因此,我們是很難使用草稿紙去進(jìn)行計算出一個結(jié)果。這種使用計算機(jī)進(jìn)行計算的方式,在大學(xué)以前,大家很少有機(jī)會去嘗試。因此一般而言,有一個稍微痛苦的適應(yīng)過程。在計算模型的工具的選擇上,從是否要編程的角度來說,可以分為按鈕式操作和編程式操作(現(xiàn)在很多軟件同時支持這兩種操作,我只考慮大家更加習(xí)慣傾向的使用方式)。從是否商業(yè)化的角度可以分為商業(yè)軟件和開源軟件,在下面我們可以簡單舉幾個例子:
1.MATLAB(編程操作 商業(yè)軟件)2.Python(編程操作 開源軟件)3.R(編程操作 開源軟件)4.SPSS(按鈕操作 商業(yè)軟件)5.SAS(編程操作 商業(yè)軟件)6.Julia(編程操作 開源軟件)7.STATA(按鈕操作 商業(yè)軟件)8.Eviews(按鈕操作 商業(yè)軟件)9.Origin(按鈕操作 商業(yè)軟件)10.Wolfram(編程操作 商業(yè)軟件)11.Excel(按鈕操作 商業(yè)軟件)
實際上還有非常多的工具這里無法一一列舉。大家可以根據(jù)自己的實際需要進(jìn)行學(xué)習(xí),可能是因為自己在學(xué)校選修了某一門語言,或者因為某個項目的契機(jī)剛好快速學(xué)習(xí)了某種語言,總之自己喜歡哪個,想上手哪個就用哪個。到了后期,因為自己的專業(yè)需求或者因為該領(lǐng)域的老師建議,再做出更加具體的選擇。
從上面的介紹可以看出,很多軟件的主要還是通過按鈕操作,因此對于我們廣大文科、經(jīng)管類學(xué)生來說,嘗試使用數(shù)學(xué)模型去解決一些問題的門檻,也沒有那么高。對于理工科學(xué)生來說,學(xué)習(xí)一些語言的同時,實際上已經(jīng)順手掌握了一門可以用來求解模型的語言。
對于求解的結(jié)果,我們可以使用不同的形式進(jìn)行表達(dá),可以使用干巴巴的數(shù)據(jù)、可以使用一系列的表格、也可以使用不同的圖表進(jìn)行可視化表示。在今天大數(shù)據(jù)時代,數(shù)據(jù)可視化越來重要。由于海量的數(shù)據(jù)對于決策者來說很容易摸不清頭腦。這時候有一張較為清晰的圖表,對于決策者來說,更加容易理解當(dāng)前的結(jié)果并做出合理的判斷。
對于市面上存在的林林總總的使用教程,雖然有些書寫的不錯,但是并不是最好的。最好的教程永遠(yuǎn)都是help文件或者技術(shù)文檔。比如MATLAB的help文件幾乎介紹了所有你可能用到的功能,并且給予了代碼示例 ,從下圖我們可以看出,幫助文檔非常全,基本上過一遍自己需要了解的內(nèi)容,就可以上手開始了:
MATLAB幫助文檔菜單
比如我想學(xué)習(xí)多元線性回歸并且想繪制回歸曲線出來,我們查閱了MATLAB的幫助文檔,得到下面的這種求解辦法 :
load carsmallYear = categorical(Model_Year);tbl = table(MPG,Weight,Year);mdl = fitlm(tbl,'MPG ~ Year Weight^2');plot(mdl)
MATLAB繪制出來的曲線
我們可以通過這種辦法,一點點地去了解一個語言。其他的語言也是類似,比如你想使用Python下的可視化包Matplotlib 或者Seaborn ,你也可以去相關(guān)的官網(wǎng)去了解如何使用。這可能比你買書后,再去一頁頁翻書,效率要高得多。R語言也是進(jìn)行類似操作。
用一句話總結(jié),想學(xué)什么包,就去什么包的官網(wǎng)或者開源組織上去圍觀學(xué)習(xí)一圈,這樣應(yīng)該是學(xué)習(xí)使用這種包的一種比較有效率的方法。
對于文科學(xué)生來說,在做一些簡單的統(tǒng)計模型或者計量模型的時候,可能會猶豫到底是使用SPSS/SAS/STATA/Eviews中的哪一種好,畢竟由于大體都是按鈕式或者編程不是那么復(fù)雜,因此主要還是應(yīng)用應(yīng)該更有針對性,人大經(jīng)濟(jì)論壇上有一篇分析以上四種工具的比較文 ,我覺得還不錯。
還有我們應(yīng)該稍微注意下商業(yè)軟件的版權(quán)問題,我在這里還是不建議大家使用盜版軟件。很多開源軟件如Python和R現(xiàn)在已經(jīng)是非常強(qiáng)有力的模型求解武器。對于在校學(xué)生來說,MATLAB在很多學(xué)校也有開放正版軟件的使用許可,對于參加全國大學(xué)生數(shù)學(xué)建模競賽的同學(xué),也有申請免費使用的許可。大家可以根據(jù)自己學(xué)校的特色和傾向性對工具進(jìn)行選擇。
以上稍微介紹了一下如何快速上手相關(guān)工具的經(jīng)驗分享,可能有點和這個問題的主題并不完全相關(guān),但是我覺得作為很多同學(xué)的疑惑,在這里很有必要說清楚。
最后關(guān)于大學(xué)生數(shù)學(xué)建模競賽,我適當(dāng)補(bǔ)充一些對于剛剛開始嘗試這項比賽的選手的做題的辦法,我將其稱之為黑箱理論 。因為對于大學(xué)生來說,短期內(nèi)徹底明白一個比較熱門的模型是很困難的,尤其是這道題目并不是我們專業(yè)相關(guān)的。我有一個比較生動的例子:你需要學(xué)會使用錘子,但是你暫時還不需要學(xué)會造錘子!
關(guān)于一些較為基礎(chǔ)的模型,大家可以去我的朋友的CSDN下的博客 上進(jìn)行學(xué)習(xí)。關(guān)于數(shù)學(xué)建模競賽相關(guān)的問題,大家可以關(guān)注我的回答集合 ,希望這個回答可以幫助到大家。其實挺希望未來的學(xué)習(xí)門檻可以繼續(xù)降低,最好可以游戲化,比如Python學(xué)習(xí)上就有類似的工作 。
關(guān)于模型解決問題這一流程中最關(guān)鍵的問題敘述完畢!下面我們來談一談優(yōu)化后分析(靈敏度分析)這一步。
這一步說老實話,很多人都搞不清楚,也對這個問題避而不談,在數(shù)學(xué)建模競賽中,大家在這個環(huán)節(jié)上一般草草了事或者套一套模板,或者直接避而不談。這里我稍微談一談吧。
一般而言,我們所求解的結(jié)果是一個非常理想化的結(jié)果,即是建立在一個合理的假設(shè)后的模型,并且其環(huán)境變量是準(zhǔn)確的或較優(yōu)的。在優(yōu)化后分析這一步,我們假設(shè)模型是合理的,而重點分析環(huán)境變量的取值,和在環(huán)境變量下取值的變動進(jìn)行討論和分析。關(guān)于環(huán)境變量的敘述見下 :
環(huán)境變量是我們對未來環(huán)境狀態(tài)的一種估計,因而不可避免地會存在一定的誤差。同時,在方案實際執(zhí)行過程中,環(huán)境變量的取值還可能會發(fā)生不同程度的變化。而環(huán)境變量取值的變化,可能會導(dǎo)致模型的最優(yōu)解和目標(biāo)函數(shù)的最優(yōu)值發(fā)生變化。如果依據(jù)當(dāng)前模型的最優(yōu)解做出決策,就存在一定程度風(fēng)險。為了緩解或是避免環(huán)境變化可能造成的風(fēng)險,在提出決策建議前還需要進(jìn)行優(yōu)化后分析。
以上是環(huán)境變量的解釋,以及環(huán)境變量對模型的影響。下面是一個對優(yōu)化后分析的一種定義 :
優(yōu)化后分析也被稱為敏感性分析,即分析模型最優(yōu)解和最優(yōu)值對某一個或多個環(huán)境變量發(fā)生變化的敏感程度,是一種評估候選方案風(fēng)險的不確定性分析方法。敏感性分析有兩種常見的方法:一是分析在最優(yōu)解(即最優(yōu)方案保持不變)的情況下,各個環(huán)境變量允許變動的范圍,稱為可變范圍;二是使環(huán)境變量在特定范圍內(nèi)(通常是在當(dāng)前估計值的周圍)變動,觀察相應(yīng)的模型輸出變化的情況。
一般而言,在數(shù)學(xué)建模競賽中,大家在做敏感性分析時,傾向使用圖表來描述一個模型輸出情況。這樣的原因主要有以下幾點:第一,大家一般在做敏感性分析時,到了比賽的末尾階段,可能大家多多少少感到時間上不夠用。一般決定做敏感性分析的隊伍,基本上都是要決定沖擊國家一等獎的隊伍,更多的隊伍選擇放棄這個部分,直接對文章進(jìn)行收尾工作。所以,對非常有限的條件進(jìn)行“調(diào)參”,在這個基礎(chǔ)上,把一系列的輸出用圖像的形式進(jìn)行表示,這樣不僅節(jié)省時間,而且由于圖像直觀易懂,評委可以馬上清楚模型在環(huán)境的影響下會如何出現(xiàn)變化。
對于環(huán)境的可變范圍,也有一定的講究 :
由于實際環(huán)境固有不確定性,導(dǎo)致決策不可避免地會存在一定程度的風(fēng)險,敏感性分析有助于降低這種風(fēng)險。一般而言,環(huán)境變量可變范圍越大,則實際超出該范圍的可能性就越小,對應(yīng)的風(fēng)險也就越小。反之,可變范圍越小,則實際超出該范圍的可能性就越大,對應(yīng)的風(fēng)險也就越大。
對于模型的解而言,可能最優(yōu)解經(jīng)過敏感性分析后發(fā)現(xiàn)其環(huán)境變量的可變程度較小,因此雖然結(jié)果較好,但是十分受到環(huán)境的制約,存在較大的風(fēng)險。而一些輸出可能結(jié)果不如最優(yōu)解,但其環(huán)境適應(yīng)能力較好,對于不同的決策者會有不同的選擇。因此雖然說在數(shù)學(xué)建模競賽中,我們?yōu)榱粟s時間可以不進(jìn)行這個分析,但是在日常生活中,做相關(guān)分析時,可不能忘記了,其存在的風(fēng)險可能會真正影響到我們的生活。我們熟悉的投資組合模型就是利用了這一思想。
下面我們來談一談模型檢驗。模型的檢驗相當(dāng)于是一項工程的驗收階段,由于我們的模型是對現(xiàn)實世界的一種抽象表示,一種高度概括,其合理性是由我們對模型的相關(guān)假設(shè)是否正確、是否反映現(xiàn)實所確定。由于我們知道,所有的模型都不是完美的,都存在一定的“失真”,因此在模型使用之前,我們需要通過一些手段,對模型進(jìn)行檢驗,來確保我們的模型可以真正地應(yīng)用到現(xiàn)實問題上去。下面是模型檢驗的定義 :
把模型求解和分析得到的結(jié)果與所研究的實際問題進(jìn)行對比分析,以檢驗?zāi)P偷暮侠硇?,稱為模型檢驗。如果檢驗發(fā)現(xiàn)模型結(jié)果與實際不符,則應(yīng)該修正假設(shè)或是改換其他方法重新構(gòu)建模型。通常一個模型需要經(jīng)過多次反復(fù)修改,才能得到令人滿意的結(jié)果。
以上是模型檢驗的定義,在數(shù)學(xué)建模競賽或者很多模型類比賽的流程中,這一步往往很少單獨拿出來作為一個流程進(jìn)行分析。而是模型的建立與求解中,間接地進(jìn)行模型的檢驗了。比如我們會將一些歷史上的數(shù)據(jù)代入模型來檢驗?zāi)P偷臏?zhǔn)確性,或者根據(jù)生活常識來判斷模型的計算合理不合理。對于實在是沒有數(shù)據(jù)的情況下,我們可以做仿真,生成大量的數(shù)據(jù),來通過這些數(shù)據(jù)對模型進(jìn)行驗證分析。
在做出模型檢驗時,我們一般默認(rèn)我們的模型是好用的,結(jié)果是精確的,然后我們通過不同的案例,不同的輸入來驗證這個模型是否正確。通常我們對于模型的檢驗的常用方法有以下三種 :
1.第三方測試,這一點通常是數(shù)學(xué)建模競賽或相關(guān)賽事沒有辦法做到的模型檢驗的方法,因為我們在比賽完了之后,才有所謂的第三方評委幫我們進(jìn)行閱卷。我們在進(jìn)行模型驗證時,最好找一個從來都沒有參與過模型構(gòu)建的人,以他自己的視角重新檢驗問題的定義和模型的構(gòu)建是否合理,或者從不同的角度,再構(gòu)建一個或多個新模型,并將其結(jié)果與原模型進(jìn)行對比。模型越多,出現(xiàn)同樣錯誤的概率越小。從以上文字我們可以看出一件非常有意思的事實,由于對于我們每個人來說,數(shù)學(xué)建模競賽是無法做到第三方測試的,但是對于組委會來說,則是一個沒有標(biāo)的,即無監(jiān)督的大型第三方測試。意思就是說,不同的參賽作品互為第三方測試,最終組委會在所有的模型中選擇兩個最好的模型授予“高教社杯”和“MATLAB創(chuàng)新獎?!?.回溯檢驗,使用歷史數(shù)據(jù)重現(xiàn)過去來檢驗所構(gòu)建的模型在歷史環(huán)境中的應(yīng)用效果。雖然模型的應(yīng)用場景是未來,但是未來沒有來臨,我們無法進(jìn)行對比分析。但在很多的應(yīng)用中,已經(jīng)積累了大量的歷史數(shù)據(jù),可以用來模型的檢驗。雖然過去不一定代表未來,但是如果模型在已經(jīng)知道明確結(jié)果的過去都無法給出一個令人滿意的結(jié)果,就很難說服決策者相信這個模型能夠在一切都還未知的未來,會給我們帶來預(yù)期的使用效果。在數(shù)學(xué)建模競賽中,回溯檢驗是一個我們較為常用的檢驗方法,我們通??梢詭胍恍┮呀?jīng)有的數(shù)據(jù)對模型進(jìn)行檢驗。比如2017年的數(shù)學(xué)建模國賽A題,第一問和第二三問就是一個內(nèi)容,兩個方向的過程。對于絕大多數(shù)數(shù)據(jù)驅(qū)動類的問題,都可以采用回溯檢驗對模型進(jìn)行驗證。3.計算機(jī)仿真,如果我們沒有足夠的歷史數(shù)據(jù)用來進(jìn)行回溯檢驗,可以嘗試?yán)糜嬎銠C(jī)來對模型的運行環(huán)境進(jìn)行模擬仿真,生成大量的測試數(shù)據(jù),并利用這些數(shù)據(jù)對模型進(jìn)行驗證分析。如我們較為熟悉的蒙特卡洛模擬就是一個常用的仿真方法。一般而言,仿真常出現(xiàn)在數(shù)據(jù)量不足或不給數(shù)據(jù)的比賽,如美國大學(xué)生數(shù)學(xué)/交叉學(xué)科建模競賽,通常就要通過對模型進(jìn)行仿真來驗證模型的合理性,如2019年D題有關(guān)盧浮宮逃生路線設(shè)計,就需要使用這種方法來對模型進(jìn)行驗證。
以上是關(guān)于模型檢驗的介紹,下面是有關(guān)提出建議、做出決策和方案實施與觀察的介紹。提出建議、做出決策和方案實施是一次基于模型解決問題的最后一步。提出建議主要是根據(jù)優(yōu)化后分析和模型檢驗后的理想模型和備選模型給出建議,以及這些模型背后的某種決策方案進(jìn)行建議。之后則需要解決問題的人對這些模型進(jìn)行選擇,即“選擇應(yīng)該使用哪一把螺絲刀進(jìn)行工作,”,對于不同性格的決策者,可能會對某些模型、對某些結(jié)果存在一定的偏好,我們應(yīng)該對這種非理性的因素給予尊重,決策分為單目標(biāo)決策和多目標(biāo)決策。最后則是方案的實施和觀察,這一步則是把我們的建立的模型和根據(jù)模型做出的結(jié)果應(yīng)用到現(xiàn)實生活中去,如果一切正常,并且在未來我們所經(jīng)歷的事情恰好就是我們模型所預(yù)見的那樣,那么這個模型可以繼續(xù)使用。如果存在較大的偏差,則需要去發(fā)現(xiàn)是哪里出現(xiàn)了問題,一般主要的問題來自于問題的定義、問題的假設(shè)、數(shù)據(jù)的收集、環(huán)境變量的估計、以及最重要的模型的建立,我們需要逐一排查,發(fā)現(xiàn)問題后,需要重新再來一遍這樣的流程。
幸運的是,大多數(shù)的數(shù)學(xué)建模工作是到不了這一步的,我們不需要擔(dān)心我們的工作前功盡棄。一般在做完敏感性分析之后,便永遠(yuǎn)地躺在論文里。只有極少數(shù)優(yōu)秀的、并且實用的模型,才有機(jī)會放在決策者的桌上,供決策者選擇并且應(yīng)用。這里需要注意的是,目前可能應(yīng)用在實際生活中的模型,可能并不是這個世界上最先進(jìn)、最好用的模型,但一定是經(jīng)過了時間的洗禮,默默無聞地幫助了成千上萬的人。
以上,便是對數(shù)學(xué)建模的過程(生命周期)進(jìn)行了一個較為完整清晰的敘述,下面我們來談一談第二個議題,即它可以解決哪些問題。
2. 數(shù)學(xué)建模可以解決哪些問題?
實際上我覺得這個問題太大了,我沒有資格來回答這個問題,因為說句實話,隨著數(shù)學(xué)、統(tǒng)計學(xué)和計算機(jī)科學(xué)的蓬勃發(fā)展,基本上每一門學(xué)科都開始或者嘗試開始使用數(shù)學(xué)建模的方法研究本學(xué)科。在宏觀的學(xué)科上,比如自然科學(xué)(數(shù)學(xué)、物理學(xué)、化學(xué)、生命科學(xué)、計算機(jī)科學(xué)、環(huán)境科學(xué)、地球科學(xué)、心理與認(rèn)知科學(xué)等)、工程學(xué)(電子工程、電氣工程、機(jī)械工程、土木工程、軟件工程、汽車工程、人工智能、材料科學(xué)與工程等)、社會科學(xué)(政治學(xué)、經(jīng)濟(jì)學(xué)、管理學(xué)、教育學(xué)、社會學(xué)等)其中都有數(shù)學(xué)建模的影子,比如某門學(xué)科前面帶上計算、計量、信息、分析、優(yōu)化、運籌、統(tǒng)計這樣詞匯的學(xué)科或科目,一般都涉及了數(shù)學(xué)建模。比如計算物理、計算化學(xué)、計算數(shù)學(xué)、生物信息學(xué)、計量經(jīng)濟(jì)學(xué)、商業(yè)分析等。對于不同專業(yè)的同學(xué)對于數(shù)學(xué)建模的理解深度需要不同,我可以做個恰當(dāng)?shù)谋扔鳌?strong>學(xué)數(shù)學(xué)的同學(xué),需要會造錘子,也會使用錘子,并且造錘子的時間可能比使用錘子的時間多很多。廣大理工科專業(yè)的同學(xué),需要看過造錘子,但是自己只要會用錘子就行了,并且應(yīng)該是最會使用錘子的一類人。廣大社會科學(xué)專業(yè)的同學(xué),只需要使用錘子,并且只是偶爾使用錘子就行了。
如果大家想要了解一些數(shù)學(xué)建模較為簡單的案例,可以買一本書,這本書是姜啟源和謝金星老師所寫,叫做《數(shù)學(xué)模型》(第五版) ,這本書也可以基本上認(rèn)為是全國大學(xué)生數(shù)學(xué)建模競賽的半官方讀物。如果用心閱讀此書,并且在參加數(shù)學(xué)建模競賽,尤其是全國大學(xué)生數(shù)學(xué)建模競賽中,這本書一定要備在身上,比如在2017年國賽A題和2019年國賽A題的問題,有一定程度上參考這本書上的模型。比如這本書第六章代數(shù)方程與差分方程模型中的CT技術(shù)的圖像與重建,就是2017年國賽A題的最基礎(chǔ)的模型,在這本書的基礎(chǔ)之上進(jìn)行學(xué)習(xí)和文獻(xiàn)查閱,會提高很多效率。還有第五章中的香煙過濾嘴的作用,可以類比2019年高壓油管的模型建立。所以不管是從感興趣的角度還是從比賽功利的角度,這本書都是值得學(xué)習(xí)一下的。下面我把這本書的目錄給大家搬運一下,參與過數(shù)學(xué)建模競賽的同學(xué)們,應(yīng)該會看到很多熟悉的影子:
第一章 建立數(shù)學(xué)模型1.1從現(xiàn)實對象到數(shù)學(xué)模型1.2數(shù)學(xué)建模的重要意義1.3建模示例之一包餃子中的數(shù)學(xué)1.4建模示例之二路障間距的設(shè)計1.5建模示例之三椅子能在不平的地面上放穩(wěn)嗎1.6數(shù)學(xué)建模的基本方法和步驟1.7數(shù)學(xué)模型的特點和分類1.8怎樣學(xué)習(xí)數(shù)學(xué)建?!獙W(xué)習(xí)課程和參加競賽第二章 初等模型2.1雙層玻璃窗的功效2.2劃艇比賽的成績2.3實物交換2.4汽車剎車距離與道路通行能力2.5估計出租車的總數(shù)2.6評選舉重總冠軍2.7解讀CPI2.8核軍備競賽2.9揚(yáng)帆遠(yuǎn)航2.10節(jié)水洗衣機(jī)第三章 簡單優(yōu)化模型3.1存貯模型3.2森林救火3.3傾倒的啤酒杯3.4鉛球擲遠(yuǎn)3.5不買貴的只買對的3.6血管分支3.7冰山運輸3.8影院里的視角和仰角3.9易拉罐形狀和尺寸的最優(yōu)設(shè)讓第四章 數(shù)學(xué)規(guī)劃模型4.1奶制品的生產(chǎn)與銷售4.2自來水輸送與貨機(jī)裝運4.3汽車生產(chǎn)與原油采購4.4接力隊選拔和選課策略4.5飲料廠的生產(chǎn)與檢修4.6鋼管和易拉罐下料4.7廣告投入與升級調(diào)薪4.8投資的風(fēng)險與收益第五章 微分方程模型5.1人口增長5.2藥物中毒急救5.3捕魚業(yè)的持續(xù)收獲5.4資金、勞動力與經(jīng)濟(jì)增長5.5香煙過濾嘴的作用5.6火箭發(fā)射升空5.7食餌與捕食者模型5.8賽跑的速度5.9萬有引力定律的發(fā)現(xiàn)5.10傳染病模型和SARS的傳播第六章 代數(shù)方程與差分方程模型6.1投入產(chǎn)出模型6.2CT技術(shù)的圖像重建6.3原子彈爆炸的能量估計與量綱分析6.4市場經(jīng)濟(jì)中的蛛網(wǎng)模型6.5減肥計劃——節(jié)食與運動6.6按年齡分組的人口模型第七章 離散模型7.1汽車選購7.2職員晉升7.3廠房新建還是改建7.4循環(huán)比賽的名次7.5公平的席位分配7.6存在公平的選舉嗎7.7價格指數(shù)7.8鋼管的訂購和運輸?shù)诎苏?概率模型8.1傳送系統(tǒng)的效率8.2報童的訣竅8.3航空公司的超額售票策略8.4作弊行為的調(diào)查與估計8.5軋鋼中的浪費8.6博彩中的數(shù)學(xué)8.7鋼琴銷售的存貯策略8.8基因遺傳8.9自動化車床管理第九章 統(tǒng)計模型9.1孕婦吸煙與胎兒健康9.2軟件開發(fā)人員的薪金9.3酶促反應(yīng)9.4投資額與生產(chǎn)總值和物價指數(shù)9.5冠心病與年齡9.6鯨蟲分類判別9.7學(xué)生考試成績綜合評價9.8艾滋病療法的評價及療效的預(yù)測第十章 博弈模型10.1點球大戰(zhàn)10.2擁堵的早高峰10.3“一口價”的戰(zhàn)略10.4不患寡而患不均10.5效益的合理分配10.6加權(quán)投票中權(quán)力的度量
通過這本書我們可以看到數(shù)學(xué)建模在各個領(lǐng)域的簡單應(yīng)用,至于更深層次的應(yīng)用,我覺得各行業(yè)的從業(yè)者,都可以單獨開一個新的問題進(jìn)行討論了。在教學(xué)的環(huán)節(jié)中,能理解到上述層次一般上是夠用了。下面回答最后一個,也是最為使用的問題:目前有哪些和數(shù)學(xué)建模相關(guān)的競賽?
3. 目前有哪些和「數(shù)學(xué)建?!瓜嚓P(guān)的競賽?
這是一個非常好的問題,也應(yīng)該是這篇回答最為實用的問題,作為一名學(xué)科競賽指導(dǎo)老師,在這個領(lǐng)域有自己的心得體會。目前由于人工智能和數(shù)學(xué)建模是強(qiáng)相關(guān),本質(zhì)上人工智能的分支是很多統(tǒng)計模型的合集。因此這一兩年數(shù)學(xué)建模類的競賽越來越火熱。我把數(shù)學(xué)建模競賽主要分為三類:
- 直接冠以「數(shù)學(xué)建?!乖诟傎惷稚系谋荣?,也就是狹義數(shù)學(xué)建模競賽。
- 與數(shù)學(xué)建模間接相關(guān)的比賽,如人工智能、數(shù)據(jù)分析等競賽平行競賽,以及將數(shù)學(xué)建模利用到自己各個專業(yè)中的比賽,如iGEM,以及各種創(chuàng)新創(chuàng)業(yè)類、學(xué)術(shù)作品比賽中間接用到數(shù)學(xué)建模方法的,如挑戰(zhàn)杯、互聯(lián)網(wǎng) 、節(jié)能減排等,這我將其稱為廣義數(shù)學(xué)建模競賽。
一般我們大多數(shù)學(xué)生參加的數(shù)學(xué)建模競賽為狹義數(shù)學(xué)建模競賽,我一篇文章數(shù)學(xué)建模競賽的一些心得體會(關(guān)于每年的比賽) 中有對一年所有狹義的數(shù)學(xué)建模競賽進(jìn)行梳理和難度分析。這里我僅列舉我國官方組織舉辦的數(shù)學(xué)建模競賽 :
1.全國大學(xué)生數(shù)學(xué)建模競賽(簡稱國賽)2.“深圳杯”數(shù)學(xué)建模挑戰(zhàn)賽(簡稱深圳杯)3.中國研究生數(shù)學(xué)建模競賽(簡稱研賽)
以上是我們我們國家官方組織舉辦的比賽,特別注意的是國賽和研賽在上海市落戶加分中是被認(rèn)可的。國賽是目前發(fā)展最完善、影響力最大、參與人數(shù)最廣、并且規(guī)則最為嚴(yán)格的比賽。深圳杯是一個競爭最為激烈,參賽周期最長,含金量最高,并且在一定程度上解決實際問題的比賽。想要學(xué)習(xí)數(shù)學(xué)建模或者查閱數(shù)學(xué)建模優(yōu)秀論文,可以去中國大學(xué)生在線-數(shù)學(xué)建模板 塊進(jìn)行學(xué)習(xí)。研賽也是是目前研究生參與人數(shù)最多的比賽之一。
除了大學(xué)生和研究生的數(shù)學(xué)建模競賽,高中生的數(shù)學(xué)建模競賽也有一定程度的發(fā)展,分別是丘成桐科學(xué)獎和美國高中生數(shù)學(xué)建模競賽,由于參與人數(shù)較少,并且高中生的知識儲備大多不足,并且大多精力有限,這里不展開介紹。
關(guān)于廣義數(shù)學(xué)建模競賽,真的是無窮無盡的。我覺得現(xiàn)在凡是掛上人工智能、數(shù)據(jù)分析、數(shù)據(jù)挖掘等名頭的都可以算作這一類比賽,由于比賽很多,我在知乎上找了一個不錯的問題:國內(nèi)外有哪些數(shù)據(jù)分析相關(guān)的競賽比賽網(wǎng)站? ,大家可以進(jìn)行參考。
關(guān)于自己各個學(xué)科、各個領(lǐng)域的學(xué)習(xí)(競賽)中,大家在參與的時候,不妨思考下,到底能不能用到數(shù)學(xué)建模的相關(guān)知識,是一定要用?還是用了之后會錦上添花?
這個問題,我想在本回答的最后,留給各大讀者朋友們!大家可以在評論區(qū)進(jìn)行留言,一起討論。
如果喜歡,歡迎點贊 收藏哦~