- 奇石珠宝真君
-
任菜菜学编程
关注
数学建模经验总结(全过程解析) 原创
2019-09-17 00:54:22
9点赞
任菜菜学编程
码龄5年
关注
(目前拟推国家二等奖ing)
本次参加的是2019年全国大学生数学建模竞赛,大赛的相关介绍介绍以及报名等信息就不多说。
本次以2019年建模经验为准进行阐述:
1.赛前准备工作:保持好竞赛的态度和参赛状态,我感觉主要就是:赛前最好连一连,否则容易手生,尤其是国赛前的比赛很少,大部分人都几个月未参加建模了,容易刚开始状态不好。(不像四月份附近建模比赛很多,感觉打到电工杯已经势如破竹)。
以下为比赛中的安排,以我本次参加建模的经验进行总结。
先说说本人和队伍,本人大四主要负责分析和编程,差不多比较著名的建模比赛都参加过一遍了,得奖率比较高,不过主要集中在二等奖和三等奖,差不多算是建模老兵了,队伍中其他两名队友是两名大三的,分别为分析、分析和论文,其中一名队友发烧还在坚持战斗,很是感动。
2.比赛选题
我个人感觉本次问题分为了A物理题、B物理题、C数据题。我们合作过很多次了,风格也比较统一,喜欢做比较偏向计算和推倒的题型,而且针对C题,数据是未知的,在一定程度上,搜集的数据的合理性可能就导致我们后续结论的正确性。而且我们也无法很好的保证我们收集的数据的正确性。
9.14号晚上六点开题,当时我在外面吃饭,队友一个照顾新生,一个应该六点下课,所以我们大概6.30左右开始看的题,当时咋一眼看的想法是:A好复杂啊,感觉是个热力学相关的问题;B看着读起来好简单,但是具体下去肯定比较复杂;C看着也不难,如果给数据,什么决策树相关的分析决策相关因素、神经元模型、层次分析法分析相关因素和依赖性、排队过程用仿真或者一些类似粒子群等求最优解等方法解决第三、四问等等,初始思路感觉比较广。(只是咋一眼看题的感想,具体是否正确本人不能保证哈,因为后续也没研究C题),我与另一个建模手先对B题进行初步分析和解决第一问,我们发现这个问题虽然题目很清晰,但是也对应的所给信息太少,例如一些受力点或者一些情况,我们所想就很容易产生分歧(因为题目支持太少,无法确定什么是最符合题意的),再转而对A题进行分析(这个光读就有点麻烦,但是也因为麻烦,许多公式等都很明确),根据公式,我们推导了一下公式(这个由于我一个队友的推导能力很强- -,所以比较容易解决了)发现A题相对比较明确,而且题目公式给的很全,而且题目初步感觉都能理解。例如第一问给的高压油泵是恒定压强的(也代表里面密度相同)、喷油嘴的规律也给了规律曲线;第二问中,高压油泵变成了一个凸轮挤压的过程,即高压油泵被周期性运动的凸轮挤压其密度、压强也随之改变,而如果高于内部压强也会有质量转移到高压油泵,同理 凸轮也是一个周期性变化的,当时我们想法是:解决了第一问,将第一问设计的三部分(高压油泵、高压油管、喷油嘴)其实第一问给定的全换成新推出来的周期性数据即可;第三问,新增一个喷油嘴?直接在系统里面在加个喷油嘴再运行模型不就ok了?第三问第二个- -没看懂 管他那 先做完前面的再说!
3.比赛做题
第一问,我们采取的是直接把所有过程的过程都有公式写出来(各种迭代式- -),然后直接进行建模,由于都是迭代公式,我们直接进行编程构建公式推出来的迭代模型,其中有两个问题,迭代其实并不是一个很严谨的方法,必须进行优化,我自己对他进行的操作是将时间间隔缩小一百倍(题目中是1ms为单位,我将它进行以0.01毫米为单位的迭代),队友也给出了减少误差的方法:改进欧拉法(当时我比较懵逼,而且我都编写好了,我就让他 别叨叨这些听不懂的,写出公式 我就给你改进去),然后他写好了公式- -我就加进去了(加后 我也随便找了两个情况运行了下,又用之前的也运行了,发现确实有效果~)
推导的公式模型写好了,但是第一问也太特么复杂了吧,喷出我们通过后面问题也发现确实是平均的,但是进入的情况太多了啊,穷举都有点慌,这个时候我想到一个方法(我取两个极端情况,一个是先排放再进入,一个是先进入再排放,其他同时进行的各种情况都会包括在里面,因为我最近复习高数,所以这个思想源于夹逼准则- -),通过计算后发现两种极端情况相差仅零点几毫秒,可以说很小了,那么?岂不是?所以情况都会落在这个小区间内?而且同时进行是灰常麻烦的,采取这种方法,直接将其省略了!
第一问第二小问,这个问题是求如果改进排放的时间调节稳定在150MPa,在我们模型基础上直接设置一个判断是否稳定150MPa的判断,然后穷举了下(其实就100次循环运算+每次循环内循环10000次+每次循环大概十次左右四则运算)根据结果就可以求出相应的图了。
第二问,对凸轮和喷嘴所给数据上来就是一波数据分析,对问题一代码复制粘贴+重命名后,将推导的公式以及新增的物质的量的变化加进去就是第二问模型,不过!!!光着个程序,我们大概调整了6个小时以上,最好发现了问题出在了,高压油泵再拉的过程中,体积迅速变大,而物质质量不变,密度极速下降(如果不发生物质质量的传递,那么最低点应该是0.5MPa,这也是初始状态,但是挤压过程中许多质量喷到高压油管里面了,导致!体积增大过程,密度太小,变成了虚数,这个地方我真的来了个非洲u2753,我是真不知道为啥出现的,貌似Matlab也是变成虚数了(我们以为敲错了,就在Matlab上重敲了次),最后队友分析之前数据发现这个数太小了,然后验证了下,发现确实是数太小导致程序出错了!),我们发现一个事情:高压油管往大气压的外部喷油,其压强不可能低于0.1MPa,同样的高压油泵也不会低于0.1MPa,直接程序写死,低于0.5PMa就不变化了,到最低点重新冲入低压油后再变化,这样问题就解决了(本来还吹np,给我公式,我二十分钟改好- -直接脸被打肿了)。
第三问,增加一个新喷油嘴?规律还一摸一样?等等?规律一摸一样的意思?两个喷油是完全一摸一样吗,喷油一起喷且喷的量一摸一样?还是光周期一样,可能一个喷一个不喷吗?有点懵逼。算了,极限思想,我继续求极端情况~求完全一摸一样的情况以及新增喷油嘴喷油介于老喷油嘴之间的情况,等等?喷油嘴完全一样等价于问题二模型的喷油量*2;新增喷油嘴喷油介于老喷油嘴之间等价于本来100ms喷一次改成50ms喷一次- -,解决~
问题三!第二问,新增减压槽,我通过调整凸轮就能稳定,我要你个减压槽干嘛?百思不得其解,三个人都陷入了否定之前的结果的地步了,我突然一想,我特么?反正给了就有用,我是不是可以用他让波动更稳定(因为之前都是波浪线的形式稳定在100MPa)?没办法,死马当活马医,我们设计了一个减压槽的开启策略,然后进行验证,与之前数据对比(这个地方我弄了n个小时数据对比,差点牺牲,一个队友和我一起,累的睡着了- -),发现确实方差变小了,说明- - - - 虽然没读懂要干嘛,但是我感觉- -减压槽以及我设计的减压槽开启策略可以用来让稳定更好。
4.模型的论文书写
最后就是写论文(在这我要说一个习惯!数据最好存下来,我只存了第三问的大量数据,当队友写论文问我要各种数据以及支持结果,我很多都是现给她跑的,虽然不多,但是也有点拖时间了),论文很重要,我个人感觉,比赛的解决方法和编程是你这篇论文的实际含金量,而论文则告诉评委你的论文有多少含金量(这个地方我说明一点,很多人感觉建模很水,得奖完全凭运气,我个人感觉也确实存在一些实际含金量很低,甚至说本次比赛啥都没做,但是论文编的很好,忽悠住评委的情况,但是这样运气好能拿个三等奖,很难往上拿,而且比赛是提升自己- -可能得奖是附属品的心态会更好~)
模型的优缺点:每个人的模型都有优点和缺点,例如一些好的方法或者忽视掉了许多东西,例如我们的模型其实就忽略了压力的变化不是瞬间完成的而是有传递速度的,以及管壁的弹性塑变和温度的影响。
模型的改进和推广:改进就是根据自己缺点提出改进方法,可能只需要说出你的思路,不一定写出来(否则可能自己之前的模型都要重新解决缺点再建模或者你缺点很多就是因为解决不了才忽视的,自己能力是没法解决的);推广就是根据自己的模型去看看是否有其他的应用,分为广度和深度即在此问题上还能解决啥和针对其他情况本模型也能解决。
5.个人经验和个人建议
建模最好有编程的和分析的(分析者是数学相关专业最好)
如果自己实力不强最好不要想着躺而是找态度好的队友一起努力,先提升自己
个人感觉 队友的建模态度>队友之前获得的奖和参赛次数,因为- -说实话很多人建模很多可能还是那个水平= =,甚至很多建模期间各种事情,例如:本次建模,我建模地方许多都是两个人建模、比赛前聊天有朋友也抱怨有队友回家过中秋了- -让队友视频建模也说家里各种亲戚说好事情了等、又或者有些队伍始终是两人,要么这个人有事情,过会另外一个又有事情,所以说队友战斗力不强,大家一起学习,三天解决问题,可能模型不是很好,可能很多问题解决的不好,但是只要肯学都往往能解决;如果碰见态度不好的,我感觉比赛就凉了一半了。
对于新生的建议:可以先参加一些比赛练练手,积攒经验,尤其刚参加的最好以积累为主,不要太执着获奖,因为大学四年,如果你真的练出来了,一年就差不多可能把所有建模都刷一遍,都拿个奖不美滋滋
- 北营
-
数学建模是可以问亲人的,虽然数学建模是一个小组,但是问亲人也是查阅资料的一种方式。而且数学建模本身就是为了处理生活上的问题,所以是可以问亲人的