寫寫做數模競賽的經驗

2021-07-25 12:12:06 字數 2762 閱讀 8149

我從大一寒假的美賽開始做數模,當時做mcm複雜網路的題目,得了h獎。大二的時候參加了國賽沒有得獎,美賽因為時間不合適沒有參加。大三的時候得了校賽一等獎、國賽省一等獎和美賽m獎。大四參加了國賽,得了全國二等獎,目前正在準備美賽,也是最後一次參賽了,所以想借這個機會認真總結一下一路走來的經歷和收穫。

1.什麼是數學建模

數學建模是把乙個實際問題,通過適當的假設和抽象,提煉成乙個數學問題,並用合適的方法求解,最終得到合理結果的過程。

最簡單的例子是小學時候的應用題,比如航行問題:甲乙兩地相距750千公尺,船從甲到乙順水航行需30小時,從乙到甲逆水航行需50小時,問船的速度是多少? 我們首先要做出合理假設,假設船速和水速都是常數。然後用符號表示相關量,距離d>0千公尺,順水a小時,逆水b小時(b≥a>0),未知量:x, y表示船速和水速(千公尺/小時,x>y≥0)。接著用物理定律(勻速運動的距離等於速度乘以時間)列出數學式子(二元一次方程)。接著進行求解和檢驗,帶入原問題得知船的速度。

這就是通過數學建模解決問題的過程。

2.數學建模競賽的一般流程

數學建模競賽要求三個人三到四天的時間解決乙個實際問題,提交一篇**。大體的步驟包括選題、查閱文獻、確定模型、程式設計求解、寫**五個步驟。一般分工為建模、程式設計和寫**,但是不能太明確,每個人都應該參與每個步驟中,尤其是建模的時候,需要三個人的頭腦風暴。程式設計求解以後,應該乙個人主寫**,其他人補充結果、做結果圖、示意圖,輔助完成**。**完成後,要花足夠的功夫寫摘要,三個人一起討論一起修改。

3.隊伍組建原則

在我看來,標準的隊員分布應該是乙個理科生(數學或者物理專業),乙個計算機或者相關電類工科學生(熟悉程式設計),另乙個可以是文科生或者工科生。三個人中最好有乙個是女生,女生建模程式設計可能稍差一點,但是寫**、畫示意圖時的細心和規範是比男生強很多。乙個完美的數學建模過程應該是工科生的思維,理科生的方法,文科生的表達。

4.基本問題和基本模型

基本問題有三類:優化問題,評價問題,**問題。

優化問題:優化問題是最經典的數模問題,但是據我的幾次比賽經驗,優化問題相對比較少,或者比較偏數學,選的人會比較少。主要用到的優化方法包括線性規劃,整數規劃,非線性規劃等規劃方法。把問題歸結為規劃問題求解也是科研中經常用到的方法,如果合理使用解決了問題是一件非常有成就感的事情。優化問題也可以用啟發式演算法求解,比如遺傳演算法、蟻群演算法等,在解決排程問題等偏「演算法」而不是偏「數學」的問題的時候使用比較多。

評價問題:評價問題在比賽中出現得很多,一般前面一問對問題的各個因素進行評價,後面一問進行**或者做其他研究。一般的方法包括層次分析法、模糊綜合評價法、因子分析法等方法,但是我不太喜歡這樣的題目,覺得評價類問題主觀性相對較大,缺乏那種「解決問題」的美感(也可能是我境界太低,歡迎拍磚)。

**問題:**問題一般分兩部分,一是對已有的資料進行分析,得到兩個量之間的關係。二是對兩者的進一步發展做出**。第一部分是關鍵,主要用到的問題包括微分方程、回歸、時間序列法、灰色系統法等,還有神經網路、svm等機器學習的方法如果比較熟悉也可以用。

這三類問題中,我個人比較喜歡偏「演算法」類的優化問題以及**問題,對偏「數學」的優化問題一般不敢選,評價問題往往無法避免但是一直做得不太滿意,還請各位指導。

5.關於創新點

有所創新是比較難的,一旦有就是文章的一大亮點,但是通常「解決問題」才是最重要的,如果通過大量查閱文獻發現以前已經有了很多研究,很多成熟的方法,或者說已經有了跟自己原始的想法相近的解決方法,那麼就用文章裡成熟的方法就行(這也說明了大量查閱文獻的重要性,如果文獻裡有相近的思路,那麼相比自己想會既快又好)。一定要記住「解決問題是第一位的」,不要盲目追求創新。創新點的主要**應該是在自己以前有的研究經歷或者學習經歷中深入思考過的問題,爭取能夠巧妙得結合在一起。這樣能做的比較順利,也會很有成就感。

6.關於**

**的幾個主要部分:摘要、問題重述、假設、符號定義、模型建立、模型求解、靈敏度分析和優缺點分析。

摘要大家知道,非常非常重要,是評委首先關注的東西。要做到簡練、準確、清晰,讓評委能看清楚做了哪些東西,有什麼亮點。

問題重述抄一下題目或者用自己的話表述一下都行,沒人關注這一塊。

假設很重要,是數學建模的精髓所在,要把乙個實際問題進行抽象、簡化,變成乙個數學問題,假設部分就是這個抽象和簡化的過程。乙個最經典的假設是高中研究了很多的「質點」,任何乙個東西都能歸結成乙個有質量的點,會大大有利於後面的研究。在數模比賽中的例子包括在交通建模中,我們可以假設只有乙個車道,假設車輛大小相同,假設一段沒有紅綠燈的道路車輛勻速行駛,有紅綠燈時車輛先勻減速、等待紅燈、再勻加速,等等。假設的合理性直接決定了模型的合理性和難度。我的建議是模型假設一定要「大膽」,不要怕假設得太理想,尤其是當不使用文獻中模型而是自己提模型的時候。如果覺得自己的模型太過簡化,可以等後面再逐步提出擴充套件的、難度加深的模型,也可以留在結果分析的時候多說一點模型與現實之間的區別,如果說得好還可能成為乙個亮點。

符號定義部分比較簡單,但是要注意用三線表,要分布行,另外建議這裡定義過的變數在模型中真正使用的時候再說明一次,方便評委閱讀。

模型建立和求解是主幹部分了,幾個建議,一是要小標題或者文章分段要清晰、明白,多分點敘述。二是多圖多表,包括示意圖、流程圖和表達資料的曲線圖等,這些圖是評委在看模型的時候重點關注的。三是表達的邏輯性是很重要的,要首先想清楚自己的邏輯,然後寫明白,要從乙個旁觀者的角度看看自己的表達能不能讓人看懂。

靈敏度分析,靈敏度分析是必不可少的一部分,據說有些評委會因為沒有這一部分而直接拍死一篇**。靈敏度分析要做的事情是微調模型中的引數,看最終結果是否會有較大的改變,改變的程度就稱為模型對這個引數的靈敏度。比如在最開始的航行問題中,將引數a或者b微調1%,看看最終結果會改變多少。

優缺點比較簡單,要注意的是缺點可以大膽地寫,不用擔心,如果能切中要害在評委看來也是乙個加分項。

先寫這麼多,想到再補~~