本文将从以下几点详细讲述小白如何入门数学建模:
1、什么是数学建模竞赛?
2、平时该怎么学数学建模?
3、数模论文包括哪些内容?
4、参加比赛前需要做哪些准备?
5、关于数模的常见错误认识
什么是数学建模竞赛?
数学建模竞赛的基本要求:
不超过三个人的队伍(大佬一个人都行),在有限时间内(三或四天),从多个题目中选1个,建立数学模型并求解问题,最终提交一篇包括思路、模型、解题过程和结论的完整论文。
简单来说,根据题目,交一篇解决问题的论文。
数学建模竞赛的特点:
三人组队:数模不是单打独斗,合作很重要
包罗万象:类似数学应用题,涉及各行各业的专业知识
时间有限:通宵是家常便饭,红牛是深夜加餐
完整论文:有模型、有算法、思路清晰、结论明确的学术论文
学术竞赛:认可度高,是获奖者的科研学术能力的体现
都有哪些比赛?
等级最高的就是国赛和美赛。国赛(高教社杯全国大学生数学建模竞赛)每年9月份举办,2022年共1606所院校/校区、超过16万人报名参赛;美赛(美国大学生数学建模竞赛)在每年二三月份左右(寒假)举办。
此外还有五一赛、电工杯、数维杯、mathorcup等省级竞赛。全年竞赛:【竞赛】备战数学建模:年度16大竞赛时间线,精准把握参赛时机
如何参赛?
关注校内的数学建模协会/社团,各种竞赛报名都是由协会组织的。有些学校需要经过选拔才可以报名参加国赛和美赛,所以需要多关注协会的消息。
获奖有何用途?
一般高校都有“竞赛保研”制度,国赛一等奖可直接获得保研资格;在保考研/找工作时,简历里简述获奖论文也是亮眼的加分项。
平时该怎么学数学建模?
1、不要怂,直接淦
最好的方法就是直接参赛。平时看资料自学的效率是非常低的,往往看不到一页就满头雾水,进而不想看了。只有在比赛时的紧张感才会让你效率倍增。
无论是什么比赛,都报名参加,不会做不要紧,现学现用,是在学不会就照搬资料里的内容(稍微改改),编论文也要编完交上去。多做几次就能找到感觉了。
比赛前突击准备、比赛期间现学现用,学习效率最高。配合此外推荐课程:从零开始学数学建模
2、文献检索
另外学会文献检索也是很重要的,数模竞赛题目往往具有一定的专业性,需要学会查到相关领域的论文并加以利用。
3、绘图、排版
更进一步,学会绘图。matlab就有很多绘图指令的函数,有精力可以学更专业的origin。
排版很重要,想必当年小学和中学时的语文老师都强调过作文的书写,如果字写得差,内容再好别人也不愿看;数模论文同理,如果排版差,内容写得再好别人也不愿细读。
一篇数模论文,包括哪些内容?
形象地说,找一本大学物理课本,其中的某一节基本就是一篇数模论文,其中的推导公式就是模型,求解过程就是算法,得出的定理就是求解结果。
当然数模论文还有自己的套路。一篇完整的数模论文,包括摘要(最重要)、问题重述、模型假设和符号说明、模型建立与求解(最长)、模型的优缺点与改进方法(不必要)和附录。
摘要
摘要部分是最重要的!
摘要部分是最重要的!
摘要部分是最重要的!
摘要就是把整篇论文的内容梗概地写出来,不宜太短或太长,一般控制在2/3页左右,不超过1页。好的摘要是成功的一半!
要让读者看完摘要,就知道整篇论文研究的问题、用了什么方法、求得了什么结果,以及每一部分的大致步骤。
因为评阅老师在看论文时,会先读摘要,如果摘要里提到的模型/算法/思路引起老师兴趣,才会去后文找这部分详细的文字。如果摘要都写的云里雾里,老师是不会耐心去读全文的。
摘要整体框架:
本文针对XXXX问题,运用XXXX方法,建立XXXX模型,通过XXXX求得XXXX,较好地解决了本问题。
针对问题一,首先……;其次……;同时……;利用……;最终求解出XXXX;
针对问题二,……
本文所运用的模型优点有XXXX,但同时具有XXXX的缺点。可考虑XXXX来进行改进。
关键词:XXX XXX
其中一定要描述清楚建立的模型、使用到的算法和求得的结果,不必写原理,但一定要讲清楚解决问题的过程和特点。
问题重述
这部分并不重要。只需要将题目简述一遍即可,不需要把题目中的具体解释和数据等写出来。
模型假设与符号说明
好的模型假设能帮你事半功倍。因为赛题都是取自现实中的实际问题,但在三天时间内不可能完美解决,因此模型假设就是将问题合理地简化。
例如2015年国赛A题是关于太阳下物体的影子长度变化。地球自转一天24小时影子长度会变化,但现实中地球每时每刻都在公转,一天内公转也会影响影子长度。
但是一天中公转不超过1°,带来的影响远远小于自转,而考虑公转的话会大大增加难度。因此可以做出合理假设:因地球一天内公转角度不超过1°,则假设地球一天内太阳直射维度不变。
符号说明则是将论文里用到的重点变量罗列出来,这一点可以参考一些物理课本上类似的部分,一般是具有全局变量意义的才在符号说明里列出来,局部变量就不必了。
模型的建立与求解
这一部分就是正文了,字数最多,有文字有图。第一次参赛的小白可以看往年的获奖论文,照着获奖论文的格式去写。
模型的建立:究竟什么是模型?
举一个简单的例子:
最简单形式:一组公式,和对公式中每个变量的解释,就是一个模型。
当然在实际做题过程中,我们往往需要先查阅资料,照搬资料写出一个简单的模型,再根据题目中的约束条件去一步步修改模型,把题目中的变量代入模型中去。
如果能画出形象的图来展示模型的思路就更好了:
模型的求解:算法就是求解方法
例如上文我们所建立的最短路径模型,该如何求解呢?查阅资料可知单源最短路径的常用算法是Dijkstra算法,那么模型的求解过程可以这样写:
算法原理:(以下内容可以百度或从常见资料里找到)
从起始点开始,将起点放进一个集合N中,查找所有与其相连的节点及到达下一节点的花费,并且记录下来;
接下来选择花费最短的一条路径,到这条最短路径指向的节点去,把这个点也放进集合N中,然后查找所有与这个节点相连的其他不在集合N中的点,并且也计算到达下一点所需要的花费并记录下来。保存花费最小的一条记录;
继续选择花费最短的路径重复执行第2步,一直到所有的点都已有了最短路径,完毕。
代入题目数据:
题目中究竟哪个点是起点,哪个是终点,每条路径的权值是多少,是否有负值,是否符合Dijkstra算法的使用条件,都要一一写清楚。
求解:
一般是使用matlab或python、C++等编程求解,有些数据题使用excel反而更简单,具体的代码要放在论文最后的附录部分,不要写在正文。
写明结果:
最好使用图或表格的形式展示结果,让读者能形象地看到结果。作图和求解过程一样可以使用任何工具,而有些示意图使用PPT反而更简单。
要注意一点:如果每小问之间具有相似性、仅仅是增加了约束条件的话,完全可以全文建立一个模型,再针对每一小问进行模型改进。
例如2021年mathorcup的D题前两问:
可以看到,问题1和问题2基本一样,仅仅是目标变量变了而已,因此可以建立一个模型解决这两问,在第2问时更改目标函数即可。
模型的优缺点
注意这一部分不是必须的,可以简单分析下前文模型的优缺点,若没有改进方法也可不写。
一般该部分可以结合查到的文献,分析正文中模型常用在什么哪种问题,又与本文所求解的问题有何区别等(简述即可)。
参考文献
该部分一定要格式规范!
若要引用一篇文献,可以在百度文献中搜索论文标题,点击引用:
就可看到常用格式的引用,根据比赛要求的格式,点击复制即可。
附录
附录里要写出正文中求解时用到的代码。注意竞赛官方的要求,有些竞赛要求必须把用到的代码写到附录而且会查重,有些竞赛则不要求。
一定不要把网上搜到的代码直接复制粘贴!即使这些代码可以直接用也不行,至少也要改改变量名!
出现过参加国赛,在省内被推到国奖,但查重发现代码是复制的,结果被取消获奖并官网通报的先例。比如今年的:推送国奖的两篇论文,附录查重过高被取消资格
比赛前需要哪些准备?
1、组队
数模竞赛不是单打独斗,需要队友的分工与合作。一般最开始是和室友/同学/男(女)朋友(如果有的话)组队,建议同年级的组队。
什么都不会不要紧,态度认真即可。因为自己也什么都不会,菜鸡之间组队就不要挑三拣四了。
如果参加比赛时发现队友态度消极、划水不靠谱、遇到点难的就放弃,下次比赛就换队友。多参加比赛才能找到长期合作靠谱的队友。
2、休息
数模竞赛时间有限,不仅靠脑力还要靠体力,最后一晚基本要通宵。赛前休息好,养精蓄锐,同时竞赛第一天晚上一定不要熬夜。
3、关注竞赛官方消息
一定要关注竞赛官网以及官方的QQ群,注意论文提交事项,以及其他竞赛要求,不同的比赛还是有所区别的,每年都会有人因为各种小问题而遗憾。
4、队友间沟通
有些竞赛可能从周四、周五开始,队友可能有课或其他事情,要赛前商量好什么时候一起讨论、一起做题,否则可能会闹得不愉快。
关于数模的常见错误认识
1、求推荐数模相关的书?
没有人能在从未参赛的情况下看完一本数模资料书(确信),书是工具,就和学英语用的“英汉大词典”一样,不必在平时刻意地去完整看完,大致翻一翻、囫囵吞枣地学留个印象,到比赛的时候需要用到具体的模型再去翻书。
认真学真正要推荐的话,是司守奎的《数学建模算法与应用)(第三版)》,以及本公众号后台回复“课程”,可查看北海讲的精品课。
2、多看往年获奖论文?
直接看论文是看不懂的,而且会打击自信,还没入门到放弃。只需要在参赛时找一找往年获奖论文有没有类似问题,当做文献来看。
3、如何学习Matlab等软件或python编程?
编程只是工具,不必刻意去学。如果本科课程里有编程最好,没有的话可以优先考虑excel、matlab或python。注意工具只有哪个合适、没有哪个更好,不必执拗于先学哪个。见文章:【编程】数模用MATLAB还是python?
4、竞赛期间三人分工,分别负责建模、写论文、编程?
完全错误!正确的做法是每人会什么就做什么。可能有人会第一问的模型和第二问的算法,或者有人擅长第一问模型但不懂第二问算法,强行分工只会使效率更低,见文章:【组队】建模手/论文手/编程手,分别该怎么学习数学建模?
每个人会哪些就做哪些,而不是死板地按照建模、写论文、编程来分工。
如果都感觉自己什么都不会,那就一起商量出个模型,再每个人都分配些任务去完成。
-----------------------------------
点击下方关注公众号,在后台回复
回复 “群”,b站课件、数模资料在群文件
回复“课程”,查看入门级数学建模精品课程(常用模型的原理讲解+例题+matlab编程,附带课件与代码)
“从零开始学数学建模”系列课程当前课表:
课程详细情况,在公众号后台回复“课程”查看。