一、队员组成
1)朱学峰:物理工程学院 光电182班
2)魏文军:物理工程学院 光电182班
3)黄永頔:数学与统计学院 数应181班
图1 团队成员朱学峰
二、经历分享
朱学峰
2020年全国大学生数学建模竞赛已经落下尾声了,我们队获得国家二等奖,虽未获得一等奖,却也是为本科阶段的建模画上了一个句号。接下来介绍本科阶段的参赛经历,希望能帮到热爱数学建模的同学。
我是物理专业方面的学生,第一次了解数学建模是在我学完高等数学后偶然间了解到。那时是大一下学期,离暑假已经很近了。因为对数学建模比较感兴趣,于是我开始去了解这项比赛,开始查资料、听讲座。之后我与本专业的两个同学组了队,报名参加数统学院组织的暑期培训。在2019年8月,我坐火车返回了正处在高温下的洛阳。第一节课,我们所有参加培训的同学,挤在一个大教室里,一节课下来,老师上身衣服都被汗水浸湿了。由于我们三个队友都是大一,大部分参加培训的都是大二,再加上很多知识都没接触过,完全跟不上老师的节奏,心生退缩之意。不久一名队友就宣布了放弃。这很遗憾!
到了大二上学期我心有不甘,报了与数学建模相关的公选课,想着这次一定要参加。后来机缘巧合之下,我认识到一名数学专业的同学,也就是我现在的队友黄永頔,我又再叫上之前与我一起参加培训的队友魏文军。就这样我们提前就组好了队,确立了后来的“战友”关系。真的,好的队友很大程度上决定了队伍能走多远,这是一个需要团结合作的比赛!
数学专业的队友,给我们队伍的成长与发展带来了“指导”精神,我们开始有了方向地学习和准备。疫情是一个严峻的挑战,我们无法面对面沟通,只能通过网络。但我们隔一段时间,会交流一下所学内容,相互分享资料。队友与队友相互羁绊,共同学习,关系融洽。
之后相处越久,彼此性格与能力都很了解,配合很默契。虽然比赛中难免会有意见不一致的时候,但争论完大家还能向着共同的方向努力。其中我很佩服也很感激我的队友魏文军,他由于在开学前一段时间发生了点意外,伤到了腿需要手术,到了开学,只能拄着拐杖艰难行走,天气炎热再加上建模基本上一坐就是一整天,等到结束他打了石膏的脚出现了浮肿,在这几天我并未觉得他感到不适,这让我很抱歉。同时这也说明他意志的坚定,比赛结束后,我陪他去了医院,那时我才明白他这段时间忍受了非常人的痛苦!
最后再分享一件非常尴尬的事。
晚上八点多,我们从工科楼出来,告别了泡面和火腿肠,准备去食堂吃点东西。但已经快九点了,食堂已经基本没吃的了,我们只好选择了吃饺子,虽然没工科的泡面加火腿肠好吃(哈哈)。经过洗漱,时间来到10点,想着快到提交时间,赶紧拿出电脑,准备完成最后一步。但是令我十分震惊的事情发生了,我提交不上了,显示错误。我安慰自己,可能系统人比较多,我再提交几次试试,随后试了七八遍,还是一模一样,我开始慌了,我开始想,是不是自己第一遍提交MD5码的时候有不规范的操作导致了现在提交不上,群里陆陆续续有人提交成功,这不断地刺激着我的神经,我万分茫然。我想着联系一下老师,我小心翼翼地给老师发了一条消息,老师没有立刻回复我,我便开始瞎想,是不是我这样使老师感到失望,毕竟很多老师反复强调最后一定要谨慎,每年都会有不规范操作导致无法提交的队伍。我一时间心灰意冷,想着最艰难的时刻都熬过来了,队友的努力便要毁在我的手里……
我把这件事告诉队友,他们一时间,并未像我一样认为我操作不规范,而是提醒我看看操作流程,一时间我克服住情绪,认真看一遍操作流程,发现这个提交界面和教程上不一样,我才反应过来,我还是停在之前提交MD5码的界面,并未刷新。之后顺利提交,得到提交成功的截图,我才长长地缓了一口气。
魏文军“一次参赛,收益终生”
9月13日傍晚,在我们三个人的共同注视下,滚烫的论文成功提交,宣告着三天三夜的数学建模竞赛终于结束,我们可以长长地舒上一口气了,回想起与数模走来的点点滴滴,不免感觉意义非凡。
说起与数学建模的初识,我应该和朱学峰的经历是相似的,最开始对数学建模并不了解,只是学完高数课程后听同学说起,才逐渐被其吸引。大一结束的暑假,我和班里同学一起参加了一起组队报名参加了学校组织的数学建模暑期培训,这是我第一次真正意义上接触到数学建模的系统性知识,因为之前高数成绩相对优秀,便自以为是地看轻了数学建模的难度,结果显而易见,第一节课便让我在炎热的教室里“心飞扬、透心凉”,大量的知识空白,直接让我基本上什么也没听懂,第一天课下来,三人组队一个队友便决定回家了,而我因为太多知识空白根本跟不上老师的思路,所以也没再去上课,但因为半个月后要帮同学在学院做志愿者服务,所以并没有回家,便留在学校里开始到网上找了些数学建模的资料和课程自学,而这次留下也恰巧给了我和朱学峰相识相知的机会,这样的相识不知是缘分还是说“同病相怜”了,当时我俩了解双方并没有放弃,直到大二上学期,我和朱学峰在数学建模公选课的见面课上的再次相遇让我们认定了彼此,决定一起再次组队,因为我俩都是物理学院的,所以朱学峰便想再找一个数学学院的队友,也就是后来的黄永頔,这便有了我们这个团队。
对于数学建模知识的学习,从自学的网课到公选课,从数学规划、统计回归、主成分分析、微分方程到时间序列到图论这六个专题一路跟上学习,算是懂一点点基本方法了,不再像大一那样懵懂无知了,也让我进一步感受到了数学建模的独特魅力。在第二次暑期培训时,发现自己能听懂相当大一部分内容时也让自己逐渐恢复了信心,当然同时发现了自己还有很多不足。我们在组队学习之初便确立了合作的分工,所以在学习时我们在全面浏览的同时更加侧重于自己负责的两部分,我的分工最主要的是编程,所以我主要对各种软件的使用和编程进行的更加深入的学习,在赛前组织的几次模拟中也不断练习自己的能力,查漏补缺。
比赛开始的下午六点,我们拿到题目,A题是炉温曲线问题,B题是穿越沙漠问题,C题是中小微企业信贷决策问题,选题方面,我们没有花费太多时间,当晚便一致决定了选B题,因为A题需要考虑很多热学方面的知识,虽然我和朱学峰都是物理学院的,但我们主学的是光学,考虑知识没有怎么接触,所以我们三人都决定放弃A题,对于B题和C题则主要是的软件求解使用方面比较之下选择了B题。当晚我们定完题后便早早回了寝室,商量着各自先查阅些资料,好好休息。第一天一大早,我们便早早来到了学校机房,汇总了一下各自参阅到的东西,由主要负责建模的黄永頔进行整理分析尝试建模,我和朱学峰则继续查找新的资料,有问题时一起讨论。B题是求解最优解问题,显然需要图论求最短路径,然而第一天下来我们却发现问题并没有想象中的简单,有用的知识点很少。经过一天大海捞针地找资料,补充知识,我们几乎毫无进展,明显感觉大家都很沮丧,每个人都在暗暗为自己加油打气。因为是第一天,老师让我们早早回去了,大家貌似都没什么进展,我们便没有过多的紧张,而且也没有思路,于是我们调好闹钟,过了零点就休息了。
第二天凌晨6点我们又打起精神继续奋战,把题目转化成数学问题的形式,简化问题要求,建立初等模型,为了避免一个人考虑不全面且思维有限,我们三个人各自发表自己的解题思路,然后进行综合、补充,但到第二天傍晚时,我们的若干想法被否定后,我们依然处在原地,而培训时老师强调过到建模第二天第二问要基本做完,开始写作,但我们还是一筹莫展,紧张与恐慌是必然的。我们决定改变策略,我和黄永頔共同做第一问,朱学峰先着手写论文,把现有思路和论文框架弄出来,因为老师说过不管怎么样,能写出论文才算。到晚上2点左右第一小问基本做完,可是第一题的第二小问这个拦路石,任凭我们绞尽脑汁也没有撼动它分毫,我们三个人不得不一起攻克第一问,跌跌撞撞写完第一问,虽然感觉答案并不太令人满意,但由于只剩一天一夜了,我们必须开始做第二问。黄永頔则同时开始查阅资料思考第三问,而朱学峰则把第一问建模结果整理写出来。
虽然第二天晚上我们没怎么睡,但最后一天的高压感让我们没有一丝困意,第三天上午我们跌跌撞撞做出了第二问的第一小问,卡在了第二小问,难有进展,过了中午,只剩半天了,我们决定不再纠结求解,先把论文整体完成能提交才算有成绩,所以我们开始主攻把论文完成,至于剩余没能求解部分则尽量把思路展现出来,列出自己现有的模型。下午三点左右指导老师对我们的论文进行建议和细节的修改,最重要的是摘要把关,摘要是建模论文的核心,我们的摘要和格式都有不小的问题,以至于老师说这些改不好,省二都别想的,老师走后,我们几乎又扑在电脑上,抓紧对摘要和格式进行了修改,最终勉强通过了老师的要求。到傍晚五点左右,我们终于成功交上了论文。经过三天三夜的艰苦奋战,当我们走出教学楼的那一刻,似乎有一种解脱的感觉,我们终于熬过了三天三夜!
在国赛结束当晚,队友还说能拿到省一就心满意足了,可当十月份被推荐全国二等奖的消息传来,不仅我们意外,连我们指导老师都一时间不敢相信。但是这其实也并非偶然,国赛确实发挥了我们队伍的最高水准,从第一次适应赛到最后国赛,不断地在进步也是我们最终能够拿奖的原因。数学建模的比赛是艰苦的,三个比赛日,不允许一丝的倦怠,必须全力以赴地投入进去。 数模竞赛更考验了小队的团队合作精神,三个人必须拧成一股绳,单打独斗是出不了好成绩的。一人建模,一人编程,一人写论文,这样的安排方式看起来简单高效,实际上真正执行起来会碰到许多问题。麻烦从一开始的选题就接踵而来,A、B、C题究竟选哪一题?很可能队内出现不同的想法,这时,大家必须根据本队的实际能力、成员擅长领域,作出合理的选择,而一旦作出选择,所有人都应该无条件服从,再没有其他杂念。左右徘徊、不断怀疑、固执己见只会影响了效率、模型质量甚至导致小队破裂。在模型建立过程中,则会牵扯到更多的异议与讨论,这是充分考验交际沟通能力的时刻,是三个人集中智慧、互相指教,还是各自为营、相互泼冷水,这是胜败的关键,其间也只有微妙的区别,稍不留神就会后悔莫及。即使事先分工明确,现场也还是需要更多的互相理解、支持,需要各位选手平日里在各个领域都做足准备。例如,负责写论文的人如果真的只是负责写论文,那么相当于他在前两天几乎都是闲着,而第三天下午可能手敲断了也写不完。因此,真正的建模竞赛是灵活的,复杂的,三个人必须以团队利益为主,互相体谅、相互配合、帮助,心往一处想劲往一处使才会有成功的可能。
数学建模让我有了极大的成长,让我明白了坚持的重要性,在数学建模学习中经历了苦难、挫折和失败,这些对我以后的人生道路有巨大的影响,就像数模国赛的宣传标语上写的“ 一次参赛,终生收益”。通过数学建模,使我们更加成熟地对认识人生,认识外界,同时增加了我们做事、思考问题的耐心,对待事情不再那么浮躁,面对困难敢于尝试、勇往直前。不管建模竞赛成绩如何,培训及竞赛的回忆会伴我一生,这段日子的收获会助我一生!
黄永頔-参赛时间分配
选定B题后我们用一个晚上讨论赛题,把问题简化为线性规划问题,每一关方程已经可以由题目所给数据确定,但初边值条件以及交界面上怎么处理还不清楚。
我们对这次比赛没有很重视,并且比赛开始要保存体力,因此晚上很早就各自回宿舍休息了。(其实此时我们的进度已经很快了,只是当时我们不知道)
第一天:我们开始查阅文献,找到最多的是浙江理工大学的相关文献,看完两篇后感觉还是不太清楚,仔细分析后发现文献中都没有涉及沙漠掘金问题。我们又去查阅相关专业的专业书籍,学习线性方程该如何处理。这部分书对我们的帮助很大,终于在第一天初步明确了模型是怎样的,只是此时边界条件仍有些模糊。模型是否正确,以及如何求解还是不懂。
第二天上午建模的做符号假设,整理前一天讨论的模型,我知道此时的模型一定需要改进,但是总体思想应该正确,先让写论文的同学写点东西再说。与此同时,编程和论文的同学开始学习偏微分方程的数值求解(因为边值条件太复杂我们没有尝试求PDE的解析解),我们去图书馆借了几本书,开始明确用向前向后差分格式或者CN格式对偏微分方程离散化处理的总体思想。这时候编程的同学开始紧张起来,他从网上搜到了类似的代码,开始试着求解最简单的方程,调试几次后运行通过。
第二天下午我们正式开始写论文,我把建模的思路写在纸上,并且给论文的同学讲清楚我们的思想。完成这个后建模的开始着手推导一维复合介质的离散格式,这个过程中在交界面处理上出现了一些困难,纠结了很久,但是编程的同学帮我一起完成了。这时候第一问建模基本结束了,但是心里还是没底,只能战战兢兢地写程序,期待结果好一点。
第二天晚上结果出来了,结果很离谱。我当时感觉已经用尽浑身解数,但还是要回去找错误原因。我们又回去查阅专业的那堆书,发现了博弈论那一节,读完后感觉醍醐灌顶,迅速替换方程的边界条件。在进一步研究中我发现了赛题设置的陷阱:交换系数未知,需要根据题目所给数据反解。我们设计了二分法确定参数,这花费了我们很大的精力,但是改进这一点后感觉结果靠谱了。
第三天上午,建模开始第二三问,编程在写第一问程序,论文写第一问求解。第二三问是一个优化问题,只要想做一定能做出来,因为最简单的方法是枚举法;如果进一步思考二分法收敛速度快,应该更好。建模只是在问题一的热传导方程基础上增加几个约束条件,这个异常顺利,难在写程序实现,好在编程的同学给力,有惊无险顺利实现。
第三天下午,从现在开始论文是核心。建模的已经没什么事情了,开始帮忙写第二、三问论文,写论文的同学开始写摘要,编程的同学开始做检验,同时把检验的过程和检验结果写出来,开始最后的冲刺。
因为对结果很有自信,我们论文没有写得很花哨,只是把我们的工作简洁地呈现出来,事实证明这样写是对的。
下面是我们整理的一些经验分享。
三、经验分享
找对队友很关键,队伍三人赛前必须相互了解,配合默契,面对分歧能直言不讳。
优势互补,每个人在建模、编程、论文中至少擅长两项。
准备时间充足,且坚持不放弃
四、赛前准备
学校有暑假的集训,针对往年赛题,老师讲一天,学生自己练一天。赛题模拟持续大约两周。模拟练习时要拿出认真严谨的态度,提前模拟也是明确队友配合是否默契的一次机会,一定不要把配合极差的队伍带到国赛的赛场上。有条件的队伍可以报名一些小比赛进行赛前热身。
模型建立方面
实际上,每年的赛题都不同,单纯学会前三年之内的模型意义不是很大,我们在看前几年论文中不过分纠结模型是怎样的,更侧重于学习模型建立的过程,建立模型的思维方式以及求解模型的算法思想,模型检验的方法。
同时,我们选修了数学系开设的“数学建模”课程,系统学习了姜启源老师的《数学模型》,初步学会对于哪一类问题需要建立怎样的模型。
比赛过程中,建立模型的第一步是学会查阅文献、快速阅读学习论文,查阅硕博士毕业论文最佳。阅读论文是为了明确总体思路,了解此类问题的研究现状。下面针对国赛论文在此写几点注意事项:
(1)文章的语言要求简洁,对于专业术语不能搞错,要注意详略得当,突出创新点。
(2)多学习参考文献中他人建模的语言,建模与推导过程表述一定要专业。
(3)模型一定分步描述建立的过程,推导过程表述要清晰仔细,每一步前面写一个小标题,并且加粗,让评阅专家迅速明确你们每一步做了什么。
(4)模型求解过程中涉及的算法必须画流程图,写清楚编程序的思想。模型求解结果必须放在足够明显的地方。
(5)摘要是重中之重,改十遍都不过分。
(6)针对使用Word写作的同学,比赛前最好建立一个空文档,设置好三级标题的格式,调整好页边距,页码,行距等,不要等论文提交前急匆匆的改格式,这样非常容易出错。
(7)建模思想,算法实现,求解结果,务必把这几点在文章中着重突出。
(8)写作软件Word,LaTex都可以,但是LaTex写的论文是真的漂亮,有时间的同学可以学习。作图用PPT很方便,Visio,Excel,几何画板也会用到。
(9)建模过程除了贴近实际,还强调创新性,在结果完全正确的情况下,如果你有一个独到的建模思路,那就有机会冲击高教社杯;如果算法和程序巧妙,就有机会拿到MATLAB创新奖。
(10)比赛后期负责建模和编程的都要配合写论文的同学,建模的可以帮忙作图,敲一些复杂的公式,给写论文的同学讲思路;编程的与建模的同学做检验,并且思考能否改进结果,把论文中的图画的漂亮些。