如何入门参与数学建模?
1501 0 1
初入数学建模经验分享

我是怎么选择建模的:

大一上,第一次听到数学建模其实是大一上学期,not大一下学期。某次浏览网页偶然发现的,源于从小对数学,哲学以及历史的崇敬吧(虽然大学没敢选择其中任何一个专业,尤其是数学和哲学,怕太难了,学不好),我就坚定了学习数学建模的想法。


通过翻阅学校发的学生手册还是神马的资料,发现我们学校有数学建模竞赛的。鉴于大一上啥数学知识都没有,也就没开始准备,把侧重点放在找队友上。


一次打乒乓球,认识了两位信电帅哥,以后也会一起打球。其中一位(M)很有学霸潜质,后来期末考试后,我打听了他的高数成绩,果然的杠杠滴,就试探性的问了下,要不要一起参加建模,嗯,成功!


第二位队友是在大一上学期认识的(向她请教了很多关于转专业的事情),但是是第二学期找她组队的。老样子,打听成绩,一打听吓一跳,是英语超好,微积分接近满分的女生F(鄙人第二学期转入了她的学院)。果断发送邀请,是否愿意一起组队,嗯,成功。


关于找队友:在信息不对称的情况下,优先考虑三人的专业搭配,比如或信电的小伙伴负责编程和理工科题建模,经济金融统计负责论文和统计建模,数学计算专业的全方位建模以及帮忙论文,个人感觉这样子比较好。由于建模粗略地可以分为建模,编程,论文,三块,整体上是一人负责一块的,但是绝对不能走极端,每个人就单单的负责一块,这样子的组合缺乏沟通和互动。应该要在培训中磨合,结合每个人的个人特点。主要负责哪几块,辅助哪几块。


接下来就到了第一次校赛了:第一次还是挺激动的,因为之前问了几个学长学姐说,建模都是要通宵的,于是我们也做好了通宵的准备。第一次拿到的题目是关于一个单位不同工作部门不同饮食习惯的人,健康水平的关系。


后来回顾过来,这其实是一个比较简单的统计分析题。但是想当年可没有这等觉悟,做题全靠office,对着题目想半天也不知道该怎么做。做的过程很痛苦,但是也很兴奋,校赛三等奖的结果证明了光有一股热情是不行的,需要恶补大量知识。


推荐新手入门书目:

数学模型(姜启源、谢金星)

数学建模方法与分析.(新西兰)Mark.M.Meerschaert.


第一本是姜老先生写的,很适合新手,在内容编排上也是国产风格,按模型知识点分类,一块一块讲,面面俱到。第二本是新西兰的,我是大二的时候看这本书的,只看了前面一部分。


发现这本书挺适合新手,它是典型的外国教材风格,从一个模型例子开始,娓娓道来,跟你讲述数学建模的方方面面,其中反复强调的一个数学建模五步法,后来细细体会起来的确很有道理,看完大部分这本书的内容,就可以体会并应用这个方法了。


(第一次校赛,就是因为五步法的第一步,都没有做到)。对了,还有老丁推荐的一本,美利坚合众国数学建模竞赛委员会主席Giordano写的A first course in mathematic modeling,有姜启源等翻译的中文版,but我没能在图书馆借到,所以没看过,大家有机会可以看看。


怎么建模

第一次国赛前的放假开始学校培训,我提前借了一大堆书,把卡都借满了。第一次国赛前的那次培训,对我而言,这段时期是收获最大的时期,比其他任何时间段都来得大。


这段时间内,我们三个人都很辛苦。白天培训要学习很多知识,完了只能休息半天,然后开始比赛,周而复始。 之前我的打算是,白天上课学习,晚上回去复习当天的内容,再看些其他东西。But 我太高估自己了,晚上基本是玩玩三国杀之类的小游戏放松,然后第二天再去上课。嗯,心态放好,身体最重要。^_^


通过这几次培训,基本上队伍形成了F专业写论文,我和M负责建模和编程。其中我偏重建模和全队调度。


大家在培训的时候,要慢慢养成五步建模法:


五步法说明:

第一步:提出问题.

大家可能会想,题目不是已经给出问题了吗? 是的,但是这里的提出问题是指:用数学语言去表达。首先,题目一定要通读若干遍,“看不懂,读题目;看不懂,读题目”,如此反复循环的同时查阅相关资料。这通常需要大量的工作,而且要根据题目的特点做一些假设。


看的差不多了,就开始用数学形式提出问题,当然,在这之前,先引用或者定义一些专业术语。 接下来进行符号说明,统一符号(这点很重要,三个人之间便于沟通,论文便于展现),并列出整个问题涉及的变量,包括恰当的单位,列出我们已知或者作出的假设(用数学语言描述,比如等式,不等式)。 做完这些准备工作后,就开始正式提出问题啦。用明确的数学语言写出这个问题的表达式,加上之前的准备工作,就构成了完整的问题。


这部分的内容反映到论文结构上,相当于前言,问题提出,模型建立部分。注意,刚开始建立的模型很挫没关系,我们随时可以返回来进行修改的。


第二步:选择建模方法.

在有了用数学语言表述的问题后,我们需要选择一个或者多个数学方法来获得解。 许多问题,尤其是运筹优化,微分方程的题目,一般都可以表述成一个已有有效的标准求解形式。


这里可以通过查阅相关领域的文献,获得具体的方法。为什么不是查阅教材呢?基本上教材讲的都是基础的,针对特定问题的,教材上一般找不到现成的方法,但是教材依然是很重要的基础工具,有时候想不出思路,教材(比如姜启源那本)翻来翻去,会产生灵感,可以用什么模型。


第三步:推导模型的公式.

我们要把第二步的方法实现出来,也就是论文的模型建立部分。我们要对建立的问题进行变形,推导,转化为可以运行标准方法解答的形式。这部分通常是借鉴参考文献的过程,做一些修改,以适应本题的情况。


第四步:求解模型.

这里是编程的队友登场的时刻了。


统计模型:SPSS,Eviews,Stata ,都是菜单式操作,easy的。


数据分析:R,数据库SQL Server,IBM


DB2

微分方程:Maple,Mathematic,MATLAB


运筹规划:Matlab,Lingo


智能算法:Matlab,R


时间序列:统计模型中的那些软件,或者R,Matlab


图像处理:Matlab,C++


总结: Matlab是必须的,再来个SPSS,一般情况下够用了。


第五步:回答问题.

也就是论文的讨论部分。这部分是对你整篇论文成果的总结,一定要写的有深度。除此之外,通常还要写上一些灵敏度分析,如果是统计模型的话,要有模型检验。论文通常会需要画一些图表,可以使用Matlab、R等软件来画跟数据有关的图,使用Visio或者PPT画流程图之类的图。


关于比赛的一些个人体会


1、国赛和美赛是有区别的

国赛讲究实力,美赛讲究创新。 美赛不一定要多高级的方法,但是一定要有创意。而国赛,组委会往往是有一个模糊的“标准答案”在的,按部就班做下来就好了。


注意不要一次性就建立复杂模型了,老外看重的是你的思维,你的逻辑,不像国赛,看重的是你的建模编程实力,要使用各种高大上的方法。


拿到一个问题,可以先建立一个初等模型,讨论下结果;再逐渐放宽条件,把模型做的复杂一点。


即 Basic model -> Normal model -> Extended model的思路。这个思维在美赛中很好,这么做下来基本都能得金奖的,鄙人这次也是按照这样的流程,拿了个金奖。


2、文献为王

文献为王。建模的题目,基本上是某个教授的研究课题,凭我们本科生的水平,基本上做不到对题目的深刻理解。所以要多看文献。


看文献也有技巧:刚拿到题目,先查一下相关背景资料,了解题目是哪方面的。接下来看文献,找一下硕士论文,博士论文以及综述性质的文章,硕博论文一般都会详细介绍下整个课题的国内外研究情况,综述就更不用说了,它就是对大量原始研究论文的数据、资料和主要观点进行归纳整理、分析提炼而写成的论文。看完这些,就可以比较有深度地把握题目,也知道如果我们要进行创新的话,往哪方面走。


接下来,可以根据小组三人讨论的结果,有针对性的看一下有深度的文献,文献看得多了,就可以考虑开始创新了,像爱因斯坦那样开辟相对论等新领域的创新,是很有难度的,但是我们可以退而取其次,不是有句话叫做“他山之石,可以攻玉”吗?


我们要做的就是组合创新! 领域内组合创新,把一个学者的方法嫁接到另一个学者的模型上。 以及交叉领域创新,把把自然科学的知识用到社会科学上,或者用社会科学解释自然科学的结果等等。(这里就可以体现,跨专业建模队伍的先天优势了:不同专业对同一个问题的思维是不同的,可以擦出创意的火花)


PS:图书馆有买很多数据库,可以免费看论文。免费的话google学术是无敌的,国内文献貌似没有良好的分享平台,实在找不到论文也可以百度文库死马当活马医。


平时可以多注册一些网站,数学中国,校苑数模,matlab技术论坛,pudn程序员,研学论坛,stackoverflow等。上传些资料,攒积分要从娃娃抓起,不要等到比赛了看到好资料还“诶呀,积分不够”。


想法很重要。建模思维是一种很难学习到的东西,站在巨人的肩膀上,多看文献,负责建模的同学辛苦了。


3、掌握一点数据处理的技巧

建模的题目,A.B两道题。基本上是一题连续,一题离散;一题自然科学(理工科),另一题社会科学(经济管理)。这样的分布的,大家平常做题的时候就可以有所侧重,曾经有一支美帝的队伍,专攻离散题,貌似拿了连续两届的outstanding.


掌握一点数据处理的技巧是很有必要的。比如数据缺失值的处理,插值与拟合等。尤其是数据缺失值的处理,基本上A,B题都有可能涉及,建议熟练掌握。


4、关于编程水平。More generally,软件操作水平几乎决定了一个队伍的结果上限。MATLAB是必备的,必须要熟练掌握各种模型的实现。此外,SPSS(或者R)也是要掌握的。Mathematic和MATLAB的替代性很强,不掌握也没关系(仅在建模方面,mathematic 当然也是很强大的)。What’s more建模比赛举办这么多年,用到lingo的情况几乎很少了,也可以不学lingo. And 现在的题目动不动就要粒子群等智能算法,强烈建议大家至少熟练掌握一种智能算法.


MATLAB推荐书目


基础:

MATLAB揭秘 郑碧波 译 (本书讲的极其通俗易懂,适合无编程经验的)


精通matlab2011a 张志涌


提升:

数学建模与应用:司守奎 (囊括了各类建模的知识,还附有代码,很难得,工具书性质的)


Matlab智能算法30个案例分析 史峰,王辉等


《MATLAB统计分析与应用:40个案例分析》


数字图像处理(MATLAB版) 冈萨雷斯 (13国赛碎纸片复原居然涉及了图像处理,所以列在这里了.可看可不看,太专业化了)


书很多的.总之,要达到熟练运用matlab进行运筹优化,数据处理,微分方程的地步. 数理统计可以交给SPSS,R ,其中SPSS无脑操作上手快.


5、格式规范:看国赛一等奖,美赛国内人得特等奖的论文,格式规范方面绝对很到位,大家可以参考。国外人的特等奖论文,大都不重视格式,人家的优势在于模型实力与创意、母语写作。所以在美赛格式规范方面,参考国内特奖的论文。


PS:有时间的队伍可以学习以下Latex,用Latex写出来的论文,比word不知道好了多少倍。Latex书目推荐:


LaTeX插图指南


一份不太简短的Latex介绍


LaTeX-表格的制作 汤银才


参考文献常见问题集


latex学习日记 Alpha Huang


论坛:Ctex BBS


结束语:

什么是数学的思维方式?观察客观世界的现象,抓住其主要特征,抽象出概念或者建立模型;进行探索,通过直觉判断或者归纳推理,类比推理以及联想等作出猜测;然后进行深入分析和逻辑推理以及计算,揭示事物的内在规律,从而使纷繁复杂的现象变得井然有序。这就是数学的思维方式。

-----------丘维声《抽象代数基础》前言


作者:Eric Huang

来源:知乎

收藏 | {{markNum}}点赞 | {{apprationNum}}
加入圈子
关注微信公众号

QQ交流群
536068468

给我们发邮件
info@itongji.cn

APP iOS版下载 | Android版下载