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