前言
参加数学建模国赛,作为编程手究竟需要达到什么水平?工欲善其事必先利其器,那肯定是要把编程语言熟练应用,至少得有一种擅长的。数模比赛必备工具通常包含 Python、MATLAB、LINGO、SPSS 等。
高频出现的编程要求
-
数据处理能力:包括对数据清洗、整理、插值拟合以及统计分析、数据挖掘等。在数据量比较大的赛题中,对数据处理能力要求比较高,如 2012 年高教杯全国大学生赛 A 题'葡萄酒的评价'、2013 年全国研究生赛 E 题'中等收入定位与人口度量模型研究'都是这种类型的题,而且数据量大的赛题在历届竞赛中出现的频次较高,应高度重视。
-
多媒体信息处理能力:包括数字信号、图片信息、视频信息的处理等。这在最近几年特别是全国研究生建模竞赛中多次出现,如 2017 年 D 题'基于监控视频的前景目标提取'、2019 年 A 题'无线智能传播模型'(涉及通信信号处理) 和 C 题'视觉情报信息分析'(图像视频信息处理),2013 年全国大学生赛 A 题'车道被占用对城市道路通行能力的影响'(视频处理) 等。在备赛过程中,应掌握基本的数字信号处理、数字图像处理等算法和原理,当然这要求较多的专业知识,有一定难度。(这类要求较高,若是相关专业方向的编程手可以仔细准备)。
-
优化算法编程实现能力:包括线性规划、非线性规划、多目标规划等以及常用智能优化算法的实现,重点熟练使用 MATLAB 或 LINGO 的优化实现。优化类问题是历年竞赛中出现频次最高的一类赛题,应当高度重视。
-
数值计算能力:重点在微分方程类的赛题中应用。比如 2014 年全国大学生赛 A 题'嫦娥三号软着陆轨道设计与控制策略'、2012 年全国研究生赛 B 题'基于卫星无源探测的空间飞行器主动段轨道估计与误差分析'等。
-
软件工具箱的使用:MATLAB 有各式各样的工具箱,包括神经网络工具箱、Simulink 工具箱 (控制类仿真等)、模糊工具箱、数字图像处理工具箱和金融工具箱等。
-
数据图形可视化呈现:即用图表和图形展现数据。计算结果的可视化呈现,绘制精准、美观的图形,将使得竞赛论文图文并茂,实现加分。
常用的编程软件
1、统计类
- SPSS:界面简洁,很容易上手,做葡萄酒性能指标评价题时,很多国一文章采用的软件。
- SAS:比 SPSS 稍微复杂点,大多数情况下可以用 SPSS。
2、计算类
- MATLAB:常用的仿真软件,大多工科生都非常熟悉的软件,而且对大多数题而言都很适用。
- Python:大数据分析的题目很实用。
- Mathematica:科学计算软件,很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。
- LINGO:非常适合计算线性规划类的问题,很方便。
3、文档类 数模最后呈现在评委面前的是论文,一个好的排版非常重要。论文里需要展现的还有公式、插图,使用相应的软件会提升论文的美感。
- 文字:LaTeX 排版的效果很好,Word 虽然方便,但美观性稍逊于 LaTeX,推荐使用 LaTeX。
- 公式:MathType,功能强大使用方便的公式编辑器,不推荐使用 Word 自带的公式编辑器。
- 作图:很多软件会自带画图功能,运算结果图不推荐使用 Excel 作图,画折线图可以用 MATLAB,很简短的程序就能得到非常美观的图片了。流程图、场景图等示意图对于更清晰地说明问题很有帮助,推荐使用 Visio,功能很全。
Matlab 还是 Python
刚开始参与数学建模的同学,往往会面临一个问题:做数模离不开编程,而 MATLAB 和 Python 都挺适合做数模的,究竟是学 MATLAB 还是 Python?
Matlab MATLAB 是收费软件,强大的功能带来高效。 MATLAB 是收费的,贵就贵在强大的内建函数和各种工具箱。 这背后,是顶尖的数学家、程序员和专业领域专家几十年的心血,当然功能强大;研发成本巨大,自然卖得贵。 强大的功能带来的是高效。数学建模竞赛只有三四天的时间,所以效率很重要。有些人在参加数学建模竞赛用 Python 或其他语言编程,当别人使用 MATLAB 现成的工具箱几秒钟出答案时,他们还在遥遥无期地 debug。
MATLAB 的高效体现在以下几点:
- 自带齐全的工具包。安装 MATLAB 时就已经装好了工具箱。而用 Python 的话,还需自行安装和设置各种工具包,中间可能遇到各种出错。


