数学建模竞赛(国赛和美赛)经验分享

建模的经历

第一次参赛是在大一的暑假参加的国赛,当时和两个同学刚刚组队,我们也没有什么基础,结果可想而知:无奖。
在经历了这一次国赛之后,大一时的两位队友也无心再参加,所以又重新找了两位队友。从此我们队伍成员便确认了下来。这两位分别是一名女生负责排版,一名男生负责建模;而我负责写程序。我们一起准备第二年的国赛,在这期间,我们学校决定自己组织一次建模比赛为国赛做铺垫。我们为了检验自己的学习成果,便参加了。凭借着很好的运气,我们拿了二等奖的好成绩。
时间不久,便到了国赛。在国赛期间,我们每天熬夜熬到很晚,有了一点想法之后就开始讨论,然后发现行不通,又开始讨论,再进行完善…就这么一直反反复复着。直到提交了论文的最后#
在找队友的时候,一定要找靠谱的,自己熟悉的,千万不要临时组队。在准备竞赛这段时间,要经常沟通,彼此磨合,培养默契。
在参加竞赛的时候,不免会讨论得过于激烈,千万不要烦彼此,因为只有交流彼此得思想才会进行碰撞,才有可能找到适合本队得解题办法。
在分工方面,建议有一个人主要负责建模,一个主要负责编程,一个主要负责写论文和排版。三个人对建模、编程、排版都要了解,因为不知竞赛得的时候会有谁的工作量大一些,另外的人还可以去帮忙。三样都懂一些也可以更好的交流,更好的完成作品。

建模

在准备建模比赛期间,要先了解常见的模型,比如:
层次分析法,微分方程模型,线性规划、非线性规划和整数规划等。
如果感觉自己不能完全吃透,可以先进行了解,在实际竞赛的过程中会查阅大量的资料,在短时间内去了解一个未知的领域,借鉴经典模型并进行完善,做出适合本问题的模型。
下面推荐几本书:
第一本是《数学模型》:

数学模型

《数学模型》这本书很经典,讲了很多的经典模型。

第二本是《matlab在数学建模中的应用》;

matlab在数学建模中的应用

第三本书是《数学建模算法与应用》。
数学建模算法与应用

编程

负责编程的人至少要有一门自己擅长的编程语言,如MATLAB,Python等。建模过程中大部分人都是用MATLAB,但是也有不少人使用Python。MATLAB的工具包比较多,使用的人比较多。Python的话是库比较多。我个人是比较喜欢使用python的,但是Matlab也会一些。
在平常的学习中要找到适合本队的题目,是数据分析题,还是优化的题目等。如果选择数据分析的话,就要对数据分析比较了解,需要掌握数据如何可视化,选什么图,才能更能够刻画数据的特点。如果不知道选择什么种类的图,可以参照下面的图:

图样式
还要熟悉数据处理的一些软件,如Excel,SPSS,python的某些库等。

当然算法是少不了的,如果时间紧,可以了解大概,明白算法的框架,常用算法有:
常用的聚类算法、遗传算法、蚁群算法、粒子群算法、元胞自动机等。

排版

排版是很重要的,能够给人第一印象,好的排版能给人带来美的享受。
有人使用Word来进行排版,那么就要学会Mathtype公式编辑器的使用;如果使用Latex进行排版,要好好学习语法,可以找找模板。
论文中的流程图建议使用Visio来画。
在学习排版的过程中,可以先大体看一下往年优秀论文的排版,学习学习。比如西文和数字使用Times New Roman字体会比较好看,又如自己去探索正文的行距是多少会感觉比较美观,三线表的磅数是多少会自己会感觉比较美观等。

欢迎关注

扫下方二维码即可关注微信公众号:code随笔
微信公众号:code随笔