前言
有关数学建模类的竞赛一个普遍的特征是待解决的问题具有很宽泛的领域以及解决问题的方法涉及多种数学方法。就是因为数学建模有这样的特征,这才区别于平时的数学类考试。这使得建模赛前的准备以及建模能力的衡量进入一个非常模糊的状态。因此,如何科学有效地去进行赛前准备以及如何根据每个人擅长的领域来进行建模工作的协调就成了一个值得深思的问题。
建模的工作主要分成三大阶段:
(1)模型的抽象
(2)编程的实现
(3)论文的撰写
因此组队参赛的三个人应该有各自的擅长,来领导这个阶段的工作,比如
(1)对问题要有透彻的理解和对数学方法有着熟练的应用以及对查阅到的文献资料拥有快速理解并运用的能力对于模型的抽象有着至关重要的作用。、
(2)模型在最后的应用层面是通过编程求解来实现的,如果没有编程实现,则模型的实用性就无法得到体现。涉及到的软件和工具可以是matlab,Python等。
(3)论文的撰写的好坏是决定是否能获得优异成绩的直接因素,这就需要撰写者有较强的学术性文本的语言表达能力,以及对论文的格式和排版有着清晰的认识。
值得一提的是:建模过程中的三大阶段并不意味着由各自擅长的人去独立完成,而是由其领导。(避免团队出现思想分歧而使论文散乱缺乏结构性的现象产生)再者,每个阶段的难度和工作量都非常的大,独立的工作下回导致编程的人不理解模型的含义,论文撰写的人不理解编程和模型更无法去表达。因此在建模过程中需要团队的周期性交流,每个人都要参与到各个阶段性的建模工作,团队成员间的协调性就非常的重要。
理想的建模配合应该是这样的:
(1)在模型抽象阶段,团队确定下赛题后针对赛题进行初步讨论,以确定下问题的所属领域和初步的解决蓝图(此时主导建模的成员再经过讨论之后确定下该蓝图),在大家对于蓝图不存在意见分歧之后,主导建模的同学应分配大家去寻找解决问题的相关资料文献,然后对于收集到的资料文献进行阅读筛选。
当收集到的文献进行探讨后进行模型抽象,给定时间,团队成员试着独立建模(独立建模可以一个人避免思想过于单一或者个人水平的局限性带来的模型缺陷),最后讨论并结合各个模型得到最优模型。
要注意的是;由于赛题要求,往往一篇论文中需要涉及多个模型,因而模型抽象阶段预期是2天,但在建模的同时,论文的撰写阶段需要同步进行(根据官方论文格式的要求记录下论文的思想,模型用到的方法,求解参考的文献等等)。
(2)编程的实现是在模型已经提出后进行的,这时编程的同学可以开始思考如何用代码去实现(包括用代码实现模型求解数据,模型精确度的分析,数值的拟合和比对),若是可以独立完成,则剩下两个同学可以探讨下一个模型的求解以增加工作效率。这个阶段不应投入太多的精力与时间。
(3) 论文的撰写,这个阶段从蓝图制定完成的时候就已经启动,并且始终贯穿于3天的建模过程,届时每个人都要参与论文的撰写(具体由领导建模的成员进行分配),每建立完一个模型并实现后就应按照要求完成相应的论文部分。这也就意味着,当最后一个模型完成后,整篇论文也已经大致完成。最后需要由领导论文部分的成员进行论文排版和格式的修改。这就要求领导论文写作的同学对论文格式和排版有清楚的认识。此时剩下的成员将针对论文的表达清晰程度进行完善和补充。
一、赛前准备
1、了解论文格式
每年的赛题中附带当年论文的格式,届时进行参考。
2、学习经典的模型
这里的要求是将所有的模型都看完(时间原因书中的代码部分可暂时忽略),但要掌握其思想和推导过程。
- 可以参考《数学建模 算法与应用》
- 相关慕课(强烈建议)
3、学习编程语言
由于python完全可以实现matlab的矩阵运算和基本功能,我们选用Python进行建模,对于python掌握程度的要求如下:(每个成员都应掌握以备不时之需)
- 能用python实现一定的算法和公式
- 能用python实现对数据的分析
- 能用python实现数据的可视化
- 能用python对表格数据进行处理
python中对于数据所涉及的包及其功能如下:
- numpy:包含矩阵的运算
- matplotlib:绘制各种各样的图标
- scipy:拟合、傅里叶变换等各种各样不同的功能
- pandas:用于处理表格式的数据
注意最好能够了解这些包一些常用的函数。