之前小编给大家分享了参加数学建模国赛,建模手需要承担什么样的角色,本期,我们来谈一谈数学建模中对编程手的要求。

编程手的要求

严格说就没有所谓的“编程手”一说,只不过做计算的途径往往在于用计算机用软件用编程工具罢了,反正也不用贴代码,夸张点说你能给出结果就是手算也没人管。

写代码这一块儿,主要在于:

1. 能看懂队友提出的模型

2. 能根据问题构建合适的计算模型(毕竟有些计算领域的模型方法可能并不在你可爱队友的课程范围内)

3. 算出结果

4. 能把计算模型形成文字材料

5. 做点儿数据可视化

至于用什么工具其实可以根据自己的喜好来,如果能多方面组合那自然更好了,什么方便用什么。

编程的同学,主要是把建模同学的思想给生产出结果,也就是输出一定的东西,可以是图,可以是表可以是数据等等。当你随便打开一本数模书,你会被里面的Matlab,lingo等代码吓住,尤其是以前不怎么编程的同学来说更为如此。所以数模三个部分,很多同学会觉得编程非常难以上手。

其实,负责编程的同学,并不是说比谁代码写得长,谁代码写得好,而是应该为建模的同学提供一个结果,所以可以在做一些数模问题的时候,用一些较为“傻瓜”的软件,比如SPSS,这个软件可以解决统计学中的很多问题,比如2012年的国赛葡萄酒评价问题,这道题就是使用SPSS的代表。所以说,与其说是会编程,不如说是应该会使用相关软件,让所建模型输出一个不错的结果。还有作图软件Origin,在进行一些简单的作图时候,可以使用Origin而没有必要去使用Matlab进行画图,一般情况下,在问题不太复杂的时候,是没有必要使用Matlab的。还有一款软件叫做Visio,这款软件是画流程图的利器,比如说写完一段程序附上程序框图,或者用系统动力学解决一个问题时画的系统流图,得到的效果都是非常棒的(PS:初次学习建模的同学,无论如何一定要在Matlab上面下一点功夫,即使没有办法掌握,也需要知道如何修改别人的优秀程序,为我所用)。

这里给大家整理了50种常用算法编程代码汇总,包括预测模型、优化模型以及评价模型中最常用代码模板大合集,BP网络神经预测、时间序列预测、模糊综合评价法、灰色综合评价法等,让你轻松应对国赛中所有的模型和算法matlab代码,在比赛期间可以灵活调用,为大家在国赛中保驾护航!

(扫描下方二维码立即查看详情)

如果真的想短期学会一个真正需要编程的语言,还是选Matlab吧,虽然在短时间之类,你是无法把这门语言学到精通,但是只要知道Matlab的语法规律,以及一些基本功能,一些基本的工具箱就足够了。还有一个最关键的是,比赛前,多看看别人写的优秀论文。不管是国赛还是美赛,都有着优秀论文集,看看别人写的论文还有别人的代码,争取找到一些灵感。

在比赛的过程中,如果什么地方卡住了,一定不要蒙着头想,应该即使去相关论坛查找一些使用技巧,当然Matlab自身的帮助文档也是挺不错的。

多说一句话,LaTeX是写作排版用的,虽然也是类似于编程语言,不建议编程的人去学习,应该去鼓励写作的同学学习LaTeX,编程的同学应该和建模的同学好好合作,合力把比赛题目拿下。

其实,如果单纯从拿奖的角度来说,某些问题,尤其是国赛B题, 美赛E、F题对于程序要求不高的情况下,可以适当地使用现有的模型理论对具体问题进行分析。但是,从2014年开始每一年国赛A题基本上都很难找到可以直接套用的模型(虽然2016年的系泊系统在知网上面有很多现成的研究结果,但是往往不是太复杂,就是和题目分析的背景有点不太一样),这也是我前面说为什么对于没有经历过理工科训练的学生很容易望而怯步的原因。所以,我觉得如果你想做好A题,在近些年A题越来越需要自己建模,自己使用一定的软件实现的大环境下,建议有一定改编现有程序的能力。

常用的编程软件

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的高效体现在以下几点:

1、自带齐全的工具包。安装matlab时就已经装好了工具箱。而用python的话,还需自行安装和设置各种工具包,中间可能遇到各种出错

2、使用工具箱简单操作就能得到结果,而用python自己写程序可能要大半天

3、可解决专业性问题。例如信号处理工具箱包含专业领域内的算法,这些算法都是顶尖专家写出来的,一般人根本写不出来的。

Python:

python是免费开源语言,共享社区带来的是便捷

免费开源,意味着共享,人人都可以用,并开源自己写的程序。因此不断地有人参与进来,分享自己用python写的代码、解决的问题。

共享带来的是便捷,在python这个圈子内,任何问题你都能找到答案。

python的便捷体现在以下几点:

1、源源不断的新idea,而matlab则是固定的抽象工具。GitHub上分享的开源代码有很多python的,但matlab编写的就少很多

2、入门难度低,在各种网站上python的入门课程、经验贴很多,适合0基础小白入门编程

3、交流性强,懂python的人比懂matlab的人要多,交流起来更方便

近两年就有竞赛题目是关于新冠疫情的,因为数学建模是解决实际问题,有时会紧跟时事。而matlab虽然有解决病毒传播问题的工具,但相关的经验贴较少;而网上用python解决新冠病毒传播的帖子更多一些。

做数学建模,该学哪个呢?

前面说了两者的特点,那么究竟该学哪种呢?

我的建议是两者都学。先学matlab,有余力的情况下再学python;最好队伍中一个人懂matlab另一个人会python。

原因有以下几点:

1、数学建模本质是用数学来解决问题,而matlab就是个商用数学软件

2、近些年数模竞赛难度明显增大,强大的工具包不可或缺

3、小白的编程能力有限,先学python的话,一开始参加竞赛期时往往写不出来程序,打击自信

4、掌握matlab后再学python,解决问题时,可以读懂python的帖子再用matlab实现,既用到了python的便捷又用到了matlab的强大

最主要的原因,还是前文所说的matlab的高效。这一点在数模竞赛中极其重要。

而python本身能够查阅的资料较多,且不仅可以用于数学建模,也可以用在Web、自动化测试、软件等等方面。在做数模的过程中学会的python,又其他比赛或项目中用到自然是最好的。

综上所述,对于数学建模竞赛中负责编程的同学们来说,并不是要求他们有多高的编程能力,与其说是会编程,不如说是应该会使用相关软件,所以同学们要在最后的十几天时间里,要不气馁不轻言放弃,一举拿下国赛,冲击国一!

对于大多数同学来说,都是第一次参加竞赛,缺少实战经验,这就需要我们多多向有经验并且已经获奖的同学学习,毕竟实践出真知,数模乐园最近在b站推出了一个系列课程,是两位多次参赛并且多次获奖的国一学长为大家传授他们的获奖团队经验分享及备战方法,讲述他们从省三到国一的数模逆袭之路,竞赛流程、题目的选择技巧、需要掌握的基本知识、如何读题解题、揣摩出题人思路等内容,点击下方小程序立即学习:

国赛备赛时间仅剩两周,参加数模国赛的队伍数量年年攀升,获奖难度大,获奖率低,很难在短时间内提高,为满足同学们的备赛需求,数模乐园微小店正式上线,现小店已上架了40余种数学建模的相关产品:包括国赛真题讲解、超全优秀论文、必备模型总结、常用数学建模软件教程、国赛备赛大礼包等备赛资料一应俱全,各种备战数模好物扫描下方二维码进店挑选:

2022年新学期第一场保研综测加分的权威竞赛开放报名!