18年3月16日更新
由于這幾天同學需要我才發現我沒有整理MATLAB的分享資源,所以這把更新了一下MATLAB的資源包,把win下的MATLAB 2014a加上了破解文件,同時找到了一個可以下載Mac MATLAB R2016b的地方。
同時在這里推一手本科同一實驗室的大神在建模比賽學習期間的一些積累:Matlab學習筆記、Lingo學習筆記、數學模型。
17年9月19日更新
昨天剛好是17年數學建模結束,之前的數學建模群里也在討論提交作品的事情。而最嘲諷的是我在北郵忙著準備材料的時候收到了成電的offer,終于從失學的陰霾中走出來。
北郵的面試推到了下午,算是特別更新一下吧!
祝愿認識的學弟學妹們在比賽中能取得好成績!未來路還很長,希望大家能繼續豐富自己.加油.
-------------------End of the update
寫在前面
此篇文章是我們隊自去年6月零基礎開始到12月拿到2016年高教社杯全國大學生數學建模競賽本科組全國一等獎的一些經歷。寫在這里是為了給即將參加2017年數學建模競賽的同學分享一些經驗經歷,希望大家都能以最良好的心態面對比賽,并預祝大家都能取得好成績!
首先定位(可以略過)
在這里說一下我們隊整體及個人各個階段的情況,方便同學們做一個定位,調整一下心態。
學校背景:
我們學校是一個雙非一本學校,每年的數學建模的獲獎率都是全省一二,規定一個學校的國家獎獲獎隊總數不超過10個,其中國一國二各5個,我們學校最好時候4個國一,最差1個,但國一國二的總數基本是占滿了的,也就是說對于我們學校,爭取國家獎就是學校每年100個隊伍左右的爭奪,也就是說獲獎率10%左右。全隊情況:
全隊三個人2016年6月份校級建模比賽開始接觸數學建模(之前都是零基礎),經過三個人7天的“奮戰”,最終用計算器計算數值并形成一篇10頁左右的“論文”。
2016年7月報名參加學校組織的暑假培訓,為期兩個月,培訓分為三個階段:
1.第一階段大概了解了數學建模過程、一些基本模型、論文的書寫規范;
2.第二階段放松休息(休息了兩周);
3.第三階段學會了MATLAB、SPSS、一些模型的應用、算法修改及編寫、全 隊凝聚力提升,合作默契。
整一個經歷及心路歷程
-
數學建模校賽(小白的體驗賽)
2016年學校組織了數學建模競賽,我和兩個室友報了名,一個是一起在學院的硬件實驗室合作過參加過一些比賽的,另一個是數學科目幾乎滿績點的,寢室氛圍良好,所以果斷就組起來了。拿到的題目是深圳的數學建模夏令營的題目,選了一個疾病相關的題,因為當時覺得預測、規劃什么的基本看不懂,這個有點像統計生成模型,索性選了直接上手。
由于邊上課邊做,并且不同專業我們的上課時間又不大一樣,前三天在題目上卡住了,查了很多的文獻資料也不知道怎么做,但我們并沒有選擇其他的題,不為別的,就是看不懂。或許這就祭奠了我們之后做的題目再怎么下不了手都不換的習慣吧,亦或者這就是一個團隊“懶”的精神。
后面想著再不做就做不完了,但是比賽還是要交作品的呀(受到硬件實驗室的傳統精神影響),于是就選了Dijkstra算法,采用分層再用迭代的方法,加上東拼西湊找到的一些數據,使用計算器算出了結果,最后論文的同學寫好了論文,稍微一改就提交了。
- 賽后我們都不知道自己怎么湊出來的,并且數學超好的那位同學最后只是在隊內負責按計算器,我們都戲稱他為人形MATLAB。
- 收獲: 這個階段最大的收獲就是知道了數學建模題目大概是什么樣子,全隊的個人能力是什么水平,也算是隊內對自己做了一個定位吧。
- 在培訓報名之前我們分了一下工:一個人負責建模、編程、論文里面的兩塊工作且任意兩人不相同。(后來事實發現對于我們這種半道殺出來的隊不適合)
-
暑期培訓第一階段(意志鍛煉及建模科普)
這個階段是為期15天的暑假培訓,由于我們的學校是火爐城市之一,夏天熱得不成人形。培訓的地點是一個勉強能夠容納300個人的階梯教室,位置不夠,早到可以占到前面的位置,沒有座位的同學就到最后去坐小板凳。最后那塊地方是方空調的,所以吹不到啊,加上冷空氣向下流動,所以后面就很熱,悶熱!
沒有錯,由于我們隊發揮正常作息的良好作風,按時起床一起吃早飯踩點進教室,所以基本最后的小板凳就成了我們的根據地啦。這個階段每天一個老師講一下自己負責的那一塊的問題或者模型,比如預測模型的講解,神經網路,模擬退火算法,蟻群算法等的講解和對比,時不時拿一些之前的賽題講解一下,有一些老師會提一提論文的規范性。
期間有兩本數學建模的書到了,一本是《MATLAB在數學建模中的應用(第二版)》、《大學生數學建模競賽指南》,我們稍微看了看,其中主要負責論文的同學平時在看論文,至于他看過多少論文,我也不知道。
課上邊聽邊玩手機,重要的地方記一下筆記,課下憑自己的意愿看書、看論文,當然最多的就是打游戲啦,畢竟一個寢室的嘛。
說白了那個時間段上課就是這個心情:
- 收獲:這個階段全隊被科普了一下各種題型及算法,知道了數學建模是在做什么,論文應該怎么寫才吸睛,養成了一定的作息習慣,最重要的是磨練了一波意志。
- 對了,報名的時候由于誰都不愿意當隊長,但是非得有個隊長啊,在另外兩個同學商量好的情況下我當了表面上的隊長。
-
暑期培訓第二階段(瘋玩)
這個階段沒有什么亮點啊,就是秉承全隊放松模式的傳統,雖然大家都很想拿到獎都很努力,但是放假就是放假啊,大家商量好了回家兩周,盡情的浪。后來了解期間還是有很多的隊伍只會去不到一周甚至都沒有回家的,可是我覺得這樣壓力反而太大了,對接下來的強化階段可能會起到反作用。
- 收獲:這個階段全隊放松心態,沒有學什么東西。
-
暑期培訓第三階段(強化提升)
這個階段是學校數模教師組準備的三輪實戰演練大餐,每一輪3個題目,自由選擇解答形成論文最后做相同題的隊伍在一起講評答辯(其實答辯也就是愿意去的就去啦,不過如果學校里有機會的話十分推薦去試試)。第一輪時間大概有三周左右吧(包括第二階段的放假),第二、三輪4天,如正式比賽一樣3天做題,最后1天我們用來答辯。如上面所說,第一輪題目其實在放假的時候已經出來了,但是我們組見到題目已經是兩周之后了。哈,又是良好的默契誰都不去碰不去下載不去看,只管玩,回來之后統一打開。同樣的,依然不知道怎么下手,但是比校賽時候好多了。第一步全隊開始找相關的東西,確定依托的算法,確定論文大概的結構。但其實這個階段把我們之前的分工完全打亂了,我一直在學MATLAB(之前不會嘛反正逃不過),選的又是圖像處理的問題,大概花了3天左右把所有的編程完成、調試完成,接下來就是完善論文。論文一直都是看論文的那個同學在寫,我們另外兩個人就只是檢查修改了一下。
本以為自己做得6得不行,16秒處理50張圖片的算法硬是被我們改進到了7秒左右。結果去答辯,被嚇得不行,不說做得差吧可是別的強隊考慮得很周到,雖然算法不一定最好,但是結果很全面,我們雖然實現的好但是沒有分類討論結果也就無法說了,所以到最后都沒有敢上去答辯。- 第一輪題目讓我們明白了我們的優勢與不足,別人的長處。心里還是有點默默的不服氣。
- 收獲:我掌握了MATLAB的基礎應用,能實現一部分算法,寫論文的同學下來又一直在看論文。
是不是覺得似乎有一個同學什么都沒有干?“人形MATLAB”?NONONO,他正開始學SPSS軟件。
此時第二輪題目開始啦,由于模擬比賽,時間卡得很緊張。不過還好我們都幾乎可以應對,只是做出來的東西還沒有辦法達到預期。我們特別選了一個數據處理的問題,讓那個同學適應一下SPSS軟件,期間我也學習了一個叫amos的軟件(不過建議不要學不是很常用的東西,一個是找不到教程,另一個是評委可能不太喜歡去借用別人的東西,所以能自己編程實現盡量編程實現)。
我們終于鼓起勇氣去答辯啦,可是被我們的導師親自懟下來了,本來覺得完美的結構模型因為采用了一定的線性規劃被說得一文不值。后來想想也是,我們這那是去打仗,也就頂多是臨陣擦槍而已,無所謂啦。- 收獲:論文的同學又看了很多論文,稍微學了一些模型;“人形MATLAB”同學學會了SPSS的基本使用、Visio的基本使用;我學會了一個沒什么用的軟件,看了一些論文。隊內大概確定了論文的書寫格式規范。
- 基本確定了“論文同學”寫論文,“人形MATLAB”數據處理、繪圖,我負責MATLAB編程;大家共同完成建模、論文修改及定稿(這里三個同學都參與寫論文)。
- 依舊統一且寬松的作息方式,極其放松的心態(因為被懟,搞得一切都無所謂了一樣,有些病態吧)。
嗯,第三個題,我又傻狍子似的學了一個軟件,用來做系統動力學模型。長時間的拉鋸戰使大家已經疲憊不堪,但是我們還是堅持做完了題目,最后導師所帶的所有隊伍在一起統一講評,導師讓我們挨個描述建模的過程,我是隊長所以我們隊就由我來描述,其中腦子空白的時候兩個隊友就在我的旁邊小聲的提醒我,可以感覺到那時候我們隊雖然看起來最無所事事但最團結,最有無形的紀律性,因為我們經過了一整個假期的歷練,已經成為了一個競賽隊伍,只要是比賽狀態,每個人都100%約束自己。
最后導師看了我們的論文,說我們這個才是參賽的水準,于是讓大家互相傳看。市級一等是沒問題了,國家獎就隨緣吧,我大概這么說了一下,其實我也沒有把握,也就是鼓勵大家一下,希望隊友能保持良好的心態吧。
- 收獲:莫名其妙的信心,真正放松的心態,全隊凝聚力,良好的比賽作息習慣以及一個“各自專長部分清楚、建模非常模糊的分工方式”。
- 有人認為一個清楚的分工才能高效的合作,我十分贊同。但是這個分工是我們隊內進過長期的磨合確定下來的,加之我們本來就是“速成”的隊伍,大家實力都不是很深厚,所以到時候模糊的部分大家一起解決,清晰的部分各自獨立完成,反而比較適合我們吧!
-
正式比賽(所有知識的運用與習慣體現)
正式的比賽之前有一周的時間,每個隊員大概準備了一下自己認為重要的資料,就開始休息啦,因為正好趕上我們學校開學上第一周的課,大家也都去上課啦。比賽是從早上8:00開始(今年據說從晚上20:00開始,多了4個小時),我們到學院安排好的實驗室拿到題目大概是8:30 。大家分開看題目搜索資料確定選題,大概10:30的時候確定做哪個題目,然后大家又重新審題,各自搜資料,到中午11:30左右去吃飯了,爾后回去寢室睡午覺,1:45左右起床,到實驗室大概2:00多一點,開始討論論文的大體架構,確定要怎么實現,然后就分工開始啦。中間每完成一塊的時候就溝通一下,就這樣,我寫完代碼大概是最后一天的早上,解題部分的論文寫完大概是最后一天的下午。然后我看了一下論文,看看還缺什么就讓大家分開去補。11:00pm左右吃了個夜宵(人形MATLAB去帶回來的),00:00左右,論文的摘要基本完成,剩下的是模型的分析和評價。我讓另一個隊友寫了一個敏感性分析,我和論文同學統一看了一遍半成品論文找了一下問題,然后論文同學改論文,我的話由于代碼是一個仿真代碼所以去學了一個錄屏軟件做了視頻。然后是我寫模型的分析評價、拓展,論文隊友休息睡覺,我寫完之后休息睡覺,另外兩個隊友開始拼接論文。大概半個多小時吧,三人一起坐在一臺電腦前面從頭每一句都仔細讀,結果就是每一段都有改措辭的地方,進度很慢但是很認真(可能沒有注意到所有的方程式所以最后還是錯了兩個地方,這個答辯之前我們才發現)。嗯,最后全部打包好生成md5碼提交大概是7:30左右,比賽重要的階段就結束了,由于md5確定那論文可以慢慢交,我們就回去吃早餐然后....睡覺。
- 比賽下來的感覺就是把我們會的能想到的全都考慮到了,沒有數據是用的仿真生成數據,SPSS生成圖片是之前也遇到過,隊友合作相互信任,幾乎沒有爭辯的地方,方向很統一。除了最后一天熬夜其余時間正常作息,不對自己和隊伍造成壓力。
- 說實話比賽時候沒有一個隊比我們走的早來得晚,我們和別的隊也幾乎沒有交流,如果別人問我們做得怎么樣了我就編譯一下代碼給他看那些仿真視頻,不浪費時間解釋。
-
國家獎答辯(高校一日游)
啊,怎么說呢。算是很幸運拿到了國家一等獎答辯機會,同樣的學校5個一等答辯,4個二等答辯。一等里面有三個公認的傳統強隊(一組:大一開始組隊學習數學建模參加比賽,三人成績優異一個前10%,另外兩個是我所在專業的1、2名;二組:第三階段第一輪提到的那個做得超好的隊伍,他們還拿過美賽的特等獎,全校唯一一個,其中一個人專業排名第一,由于不在一個學院其他的不知道了;三組:比賽就在我們旁邊,校賽一等,很有組織性,討論是定時討論并且避開其他隊伍,我們的輔導員都看好的隊伍),還有一個不認識的隊伍,加上我們隊三個懵逼臉。
我們看了一遍論文找好朋友做了ppt就去了。結果ppt沒怎么用上,答辯只是考察是否是自己做的于是只問了核心的部分,也問到了我們沒有考慮到的問題,雖然模型評價里面說過當時沒想到那個老師那么清楚我們的論文,有點慌,就直接告訴她沒有考慮到,然后就放我們走啦。嗯,我們仨去逛了逛別人學校,之后就整體帶回啦。
最后出結果大概是11月底吧,結果上面提到的超強第二組變成了全國二等獎,挺意外的。
- 這一階段就好好上課吧,其他的就看造化了,畢竟自己和兩位隊友努力過、堅持過,這已經收獲滿滿啦。
- 還有就是真的沒有必要做ppt,答辯就當去玩一趟就好啦。
總結
數學建模比賽是知識積累、能力和運氣的全面考驗。同時數學建模是大學本科、研究生等都要接觸的方法,就算最終不能拿到獎,那都是有巨大收獲的,包括思維能力、資料檢索、知識的應用都會比同年級的同學上升不止一個lever,所以與其說是一個你死我活的比賽,不如把它看作對自己水平的提升訓練,用平常心態去面對。
建議
- 不管做得怎樣,一定要交作品。
- 全隊養成良好的作息習慣,并不要起早貪黑,盡量能有午休。
- 磨合出最適合隊伍的分工方式。
- 比賽時候盡量隊內交流,不和別的隊討論,也不用刻意躲著,就是為了不影響思路、產生分歧和爭執。
- 比賽時階段性的檢查成果,把握進度,但也不用太心急,注重自己負責的部分完美完成。
一些參考資源資料 {#18316updat}
資料不在于多而在于精,希望大家能適當選擇。
網站:
- 校苑數模 http://mathor.com/
程序員聯合開發網 http://www.pudn.com/
MathWorks https://cn.mathworks.com/
國家數據 http://data.stats.gov.cn/
長春工業大學數學建模資源網站(非本人所在學校) http://mcm.dept.ccut.edu.cn/
軟件:
- 1.MATLAB 2014a 帶破解文件,密碼:bcuz /Mac MATLAB 2016b
2.知網論文查看器CAJViewer
3.數據處理--SPSS
讀物:
- 1.《MATLAB在數學建模中的應用》
2.《大學生數學建模競賽指南》
3.別人的論文