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.别人的论文