新学期已经来临,小伙伴们即将迎5月份数维杯及9月国赛等重大数模赛事,建模大佬的背后到底都隐藏着哪些秘密武器?今天数乐君带小伙伴们走进6次数模获奖超级大佬他的数模获奖历程。
文章来源:知乎,作者:Echo
18年全国大学生数学建模竞赛已经落下尾声了,今年我们队获得国家一等奖,论文获评优秀论文推荐发表(本科组8篇,专科组6篇)。虽未捧得高教社杯,却也是为本科阶段的建模画上了一个句号。接下来介绍本科阶段的参赛经历,希望能帮到热爱数学建模的同学。
一、参赛经历
我是数学专业的学生,大一沉浸在理论学习中无法自拔,真正接触到数学建模是在大二,当时只觉得数学方法解决实际问题真是amazing,于是开始了漫漫建模之路。
本科期间我参与过6次数学建模竞赛,国赛国一,美赛M奖,其他的比赛只是这两次大赛的热身赛,或大或小也都拿了奖。每一次比赛结束后身心俱疲,发誓再也不会参赛,而到下一次比赛之前我们又会蠢蠢欲动,商量着一起再来一次,数学建模的魅力大抵如此。
二、组队缘由
第一次比赛是17年国赛,那时确实没有什么经验,知识储备也不足。彼此没有太多了解的同学找我组队我也答应,丝毫不考虑队友配合,个人能力等因素,那三天过得很累,模型还很差,我们甚至没拿到推荐国家奖的资格。
从第二次比赛起,我认识了现在一起走过五次建模的队友,数学专业加计算机专业的学生组队最佳,我们之前就是很好的朋友,一起参加过很多竞赛,三个人彼此已有很深的了解。已经不记得是谁先提出组队,但是共同的爱好让我们自然而然地走到了一起。
队友A擅长建模和论文,面对问题时能够条分缕析,分步解决问题,把每一个疑难点提出来拉我们一起讨论。队友B编程和数据处理能力极强,他对于数据很敏感,他在拿到赛题和数据时总是先动手计算,把从数据中可以初步分析出的疑点都提出来。我建模或者编程都可以,写论文弱一点,当队友B迷失在数据的海洋中,我负责出手把他拉回来,时间真的来不及时我也能写点论文。
因为相识已久,彼此性格与能力都很了解,配合很默契。虽然比赛中难免会有意见不一致的时候,但争论完大家还能向着共同的方向努力。每次思路走偏时他们两个人几句话就能把我拉回来,最重要的是:我们三个都是彻底的完美主义者,做事力求尽善尽美,这一点在写论文、编程中尤为重要。
总结:
(1)计算机学院和数学院学生组队最佳。
(2)队伍三人赛前必须相互了解,配合默契,面对分歧能直言不讳。
(3)优势互补,每个人在建模、编程、论文中至少擅长两项。
三、赛前准备
学校有暑假的集训,针对往年赛题,老师讲一天,学生自己练一天。赛题模拟持续大约两周。模拟练习时要拿出认真严谨的态度,提前模拟也是明确队友配合是否默契的一次机会,一定不要把配合极差的队伍带到国赛的赛场上。有条件的队伍可以报名一些小比赛进行赛前热身。
1、模型建立方面:
实际上,每年的赛题都不同,单纯学会前三年之内的模型意义不是很大,我们在看前几年论文中不过分纠结模型是怎样的,更侧重于学习模型建立的过程,建立模型的思维方式以及求解模型的算法思想,模型检验的方法。
同时,我们选修了数学系开设的“数学建模”课程,系统学习了姜启源老师的《数学模型》,初步学会对于哪一类问题需要建立怎样的模型。
比赛过程中,建立模型的第一步是学会查阅文献、快速阅读学习论文,查阅硕博士毕业论文最佳。阅读论文是为了明确总体思路,了解此类问题的研究现状。
2、模型求解、检验方面:
数学建模编程多用MATLAB,有时也会使用SPSS,R语言,C语言。模型的求解涉及到算法,算法与模型是对应的,赛前我只学习了最基本的算法,如枚举法、二分法、差分法、变分法、数据拟合、层次分析、时间序列。这些方法在几次建模竞赛中刚好够用。即使赛前对于算法没有了解,比赛期间学习也完全来得及。
特别地,现代优化算法(禁忌搜索算法,模拟退火算法,遗传算法,神经网络),这些方法对于计算机基础不强的同学是一个大坑,即使用MATLAB工具箱能够得到结果,用常规算法可以解决的问题不建议用这些高级算法。
模型的检验就相对容易,但检验方法因题而异,误差分析、灵敏度分析等较为常见。阅读优秀论文时简要看一下检验的思路即可。
3、论文写作方面(赛前准备的重头戏):
我们打印了两到三篇国一的论文,在赛前和比赛的论文撰写过程中不时翻看,不过分纠结论文内容,只是学习论文整体行文风格。三天时间很短,论文是整个队伍的核心,一切不能通过论文展示出来的工作都是白费的,无论模型建立的多么好,论文写不清楚思路,一切工作都是徒劳。
总体上说,每篇论文评阅的时间都很短,并且根据要点给分,论文要尽可能的突出所有亮点(模型、算法、结果),让人看一眼就知道你们用什么方法,解决了什么问题,结果是什么。
查阅优秀论文的方法:百度搜索中国大学生在线-数学建模-2018优秀论文,这里面展示的是每一年推荐在《工程数学学报》发表的论文,较有参考价值。
中国大学生在线数学建模专题:http://special.univs.cn/service/jianmo/
下面针对国赛论文在此写几点注意事项:
(1)文章的语言要求简洁,对于专业术语不能搞错,要注意详略得当,突出创新点。
(2)多学习参考文献中他人建模的语言,建模与推导过程表述一定要专业。
(3)模型一定分步描述建立的过程,推导过程表述要清晰仔细,每一步前面写一个小标题,并且加粗,让评阅专家迅速明确你们每一步做了什么。
(4)模型求解过程中涉及的算法必须画流程图,写清楚编程序的思想。模型求解结果必须放在足够明显的地方。
(5)摘要是重中之重,改十遍都不过分。
(6)针对使用Word写作的同学,比赛前最好建立一个空文档,设置好三级标题的格式,调整好页边距,页码,行距等,不要等论文提交前急匆匆的改格式,这样非常容易出错。
(7)建模思想,算法实现,求解结果,务必把这几点在文章中着重突出。
(8)写作软件Word,LaTex都可以,但是LaTex写的论文是真的漂亮,有时间的同学可以学习。作图用PPT很方便,Visio,Excel,几何画板也会用到。
(9)建模过程除了贴近实际,还强调创新性,在结果完全正确的情况下,如果你有一个独到的建模思路,那就有机会冲击高教社杯;如果算法和程序巧妙,就有机会拿到MATLAB创新奖。
(10)比赛后期负责建模和编程的都要配合写论文的同学,建模的可以帮忙作图,敲一些复杂的公式,给写论文的同学讲思路;编程的与建模的同学做检验,并且思考能否改进结果,把论文中的图画的漂亮些。
四、2018国赛参赛过程
1、选题
选题我们没有过分纠结。18年本科组的A题是“高温作业专业服装设计”,要求同学利用不同的隔热材料,根据热传导的原理,设计四层防热服的最优方案。因为刚刚学过数学物理方程,直觉告诉我们这需要使用热传导方程建模型,后期可能涉及PDE的求解,但是求解析解还是数值解仍不清楚。这道题可以极大地凸显数学专业的优势,于是我们决定做A题。今年高教社杯的团队表示在赛前他们已经决定专攻A题,因此只针对A题进行训练,这也不失为一种好的方法。
2、参赛时间分配
选定A题后我们用一个晚上讨论赛题,把问题简化为一维热传导问题,每一层介质的热传导方程已经可以由题目所给数据确定,但初边值条件以及交界面上怎么处理还不清楚。
我们对这次比赛没有很重视,并且比赛开始要保存体力,因此晚上很早就各自回宿舍休息了。(其实此时我们的进度已经很快了,只是当时我们不知道)
第一天:我们开始查阅文献,找到最多的是浙江理工大学的相关文献,看完两篇后感觉还是不太清楚,仔细分析后发现文献中都没有涉及复合介质的热传导问题。我们又去查阅物理专业的专业书籍,学习传热介质的交界面上方程该如何处理。这部分书对我们的帮助很大,终于在第一天初步明确了模型是怎样的,只是此时边界条件仍有些模糊。模型是否正确,以及如何求解还是不懂。
第二天上午建模的做符号假设,整理前一天讨论的模型,我知道此时的模型一定需要改进,但是总体思想应该正确,先让写论文的同学写点东西再说。与此同时,编程和论文的同学开始学习偏微分方程的数值求解(因为边值条件太复杂我们没有尝试求PDE的解析解),我们去图书馆借了几本书,开始明确用向前向后差分格式或者CN格式对偏微分方程离散化处理的总体思想。这时候编程的同学开始紧张起来,他从网上搜到了类似的代码,开始试着求解最简单的方程,调试几次后运行通过。
第二天下午我们正式开始写论文,我把建模的思路写在纸上,并且给论文的同学讲清楚我们的思想。完成这个后建模的开始着手推导一维复合介质的离散格式,这个过程中在交界面处理上出现了一些困难,纠结了很久,但是编程的同学帮我一起完成了。这时候第一问建模基本结束了,但是心里还是没底,只能战战兢兢的写程序,期待结果好一点。
第二天晚上结果出来了,结果很离谱。我当时感觉已经用尽浑身解数,但还是要回去找错误原因。我们又回去查阅物理专业的那堆书,发现了牛顿冷却定律那一节,读完后感觉醍醐灌顶,迅速替换方程的边界条件。在进一步研究中我发现了赛题设置的陷阱:热交换系数未知,需要根据题目所给数据反解。我们设计了二分法确定参数,这花费了我们很大的精力,但是改进这一点后感觉结果靠谱了。
第三天上午,建模开始第二三问,编程在写第一问程序,论文写第一问求解。第二三问是一个优化问题,只要想做一定能做出来,因为最简单的方法是枚举法;如果进一步思考二分法收敛速度快,应该更好。建模只是在问题一的热传导方程基础上增加几个约束条件,这个异常顺利,难在写程序实现,好在编程的同学给力,有惊无险顺利实现。
第三天下午,从现在开始论文是核心。建模的已经没什么事情了,开始帮忙写第二三问论文,写论文的同学开始写摘要,编程的同学开始做检验,同时把检验的过程和检验结果写出来,开始最后的冲刺。
因为对结果很有自信,我们论文没有写的很花哨,只是把我们的工作简洁的呈现出来,事实证明这样写是对的。
3、注意事项
(1)每一年赛题都有小陷阱,比如2018年A题隐含着利用赛题数据进行参数的确定。如何发现这些小陷阱?在做模型检验时发现的,只要结果不靠谱,马上回去从头开始找问题。
(2)三个人虽各有分工,但分工不宜太明确,每个人至少掌握建模编程论文中的两项,这样才能在比赛中保证进度,给队友留出思考的时间。
(3)学会查阅文献是很重要的,所有模型一定是在前人研究的基础上建立的,要学会短时间内“现学现卖”。
(4)要有坚持不懈的精神,面对难题队友之间要彼此信任。要对自己的模型和结果有充分的自信,这样的论文才写得漂亮。
五、简要介绍美赛经验
美赛我们拿了M奖,但总体感觉做的不理想。美赛与国赛不同,国赛对建模编程能力有很高的要求,要求基本功扎实,A题有模糊的正确答案;美赛的题目是开放性的,注重建模过程的创新性,对于结果没有很高的要求。
(1)美赛的选题至关重要,因为题目涉及面太广,选题时除了要考虑模型建立的难度,还有如何找数据的问题。我们参赛时把每个题目大致的背景都了解一遍,又翻墙去找数据,仅仅选题就折腾了一天,但这段时间花费的很值。
(2)美赛一大障碍是英文论文写作,赛前我们计划写中文后集中翻译,而真正比赛时发现这样根本来不及,于是直接英文写作。
(3)美赛排版软件强烈推荐LaTex!赛前我们用Word写过两篇英文论文,三个强迫症表示受不了。个人认为漂亮的图表以及令人舒适的排版在美赛中更加重要。
(4)美赛建模过程中我们套用了很多高大上的模型,也针对问题做了几点小小的创新,现在回去看论文都能把自己搞晕。但这种套用模型的方法在国赛A题中不会再见到了,我个人不建议这种建模方式,除非你们真的走投无路。
六、心得体会
参加了这么多次数学建模竞赛,最吸引我的一点是三个人为了共同的目标快速学习知识,在短时间内把自己的潜力发挥到极致的体验。在建模的过程中我仿佛找回了自己,思维活跃,敢想敢做,这才是年轻的我们应该有的样子。
18年全国颁奖会上见到很多数学建模领域真正的大牛,听完高教社杯和MATLAB创新奖报告后更加明确自身不足,面对问题我在思维方式上仍有局限,特别是算法实现上仍需继续学习。
数学建模教会我坚持,第一次参赛没有获奖时我很难过,想过放弃,但还好我坚持下来,用实力证明了自己。比赛过程中要坚持,努力很久建立的模型很有可能要推翻或者改进,这时可能距离正确答案已经很接近了,坚持做下去才会成功。比赛的几天压力很大,身心俱疲,但还是要坚持,因为坚持会换来意想不到的好结果,这痛苦的三天将会成为我们一生的美好回忆。
数学建模让我明白“机会总是留给有准备的人”,偏微分方程我很感兴趣,学的比较认真。课余跟老师做项目时用多种离散格式模拟了一类偏微分方程的解。这些无心插柳的知识储备在18国赛突然用到,为我们换来了不错的成绩。
最后感谢指导老师给我们赛前的培训,感谢队友一直以来的陪伴和支持,感谢家人对我的理解,感谢当初那个没有放弃的自己。一次参赛,终生受益。
写作时间仓促,文章中一定有诸多不足,望大家见谅,谢谢!
重点来了
2024年上半年首场高含金量数模竞赛:2024年第九届数维杯竞赛正式开赛报名啦,该竞赛已成为数学建模行业内仅次于国赛和美赛后的又一项全国性数模竞赛,已被众多高校列为国家级二类竞赛,在国内高校中是作为国赛大型热身、保研、综合测评、创新奖学金等评定竞赛之一。
允许跨校组队+获奖50%+国赛热身+万元奖金等你拿。
部分高校加分文件
获奖证书
进群领取历年真题优秀论文福利及队友大赛通知
竞赛安排
报名截止时间:北京时间2024年5月10日06:00
竞赛开始时间:北京时间2024年5月10日08:00
竞赛结束时间:北京时间2024年5月13日09:00
竞赛结果公示时间:2024年7月中旬或之前
参赛对象
参赛对象为在校专科生、本科生、研究生,每组参赛人数为1-3人(指导老师不列入小组总人数中,没有指导老师可写无,有指导老师可真实填写),每名同学只能参加一个小组,允许跨校组队。
赛题类型
竞赛分为研究生组、本科生组、专科生组,竞赛题目共3道(A题、B题、C题)每个参赛队从三个赛题中任选一题作答,竞赛题目一般是来源于各行业并经过当简化的实际问题。
