㈠ 如何入门数学建模呢我大一可以说是很小白的状态了,现在开始学习5.17比赛
本人大三计算机专业,17年电工杯二等奖、MathorCup一等奖、国赛省一等奖、数创杯一等奖,奖项很水,但有必要介绍一下我参加建模的过程,希望对学弟学妹们有所帮助。
本人大一没想过比赛,大二为了我女朋友才跟她组队开始学着参加数学建模,从2017年2月开始上《数学建模》与《数学建模软件》两门选修课,从中对MATLAB有所了解,数学建模课程比较枯燥,仅仅是听过而已。
到2017年4月校赛,开始拿到校赛题目,时长15天,这15天的时间所做的题目是2017年认证杯第一阶段赛题:考研移动端产品的使用与评价,本题有大量数据,曾经高分通过计算机等级考试二级MS Office的我使用EXCEL对数据进行了处理,这起到了很大的作用,第一题是一个因子分析和聚类分析,经过网络得知可以使用SPSS,于是学习了SPSS,这个很好上手,网络相应的方法即可找到教程。
校赛后,拿电工杯和MathorCup练手,电工杯题目是人口预测,用到了leslie模型,MathorCup是共享单车的题目,又是大数据分析,这次直接是EXCEL完成的。
扯了这么多,给大家说一下如何准备数学建模吧。
首先,数学建模比赛一般分为优化类型的题目和数据分析或评价类的题目,需要3-4天提交一篇论文,三个成员需要有一名写手、一名编程人员和一名统筹调度(建模和想思路)人员,这三人的调度和论文撰写工作最好都要熟悉。是对题目的解答,而论文包括:摘要、问题重述、问题分析、模型假设、符号说明、模型的建立与求解、模型的评价、模型的改进与推广、参考文献、附录几大部分,最关键的是摘要,摘要写的不好,论文直接pass掉。
而如果摘要写的还可以,就是论文格式和所用的模型了,三人均需要熟练掌握OFFICE软件,EXCEL可以处理数据,里面的一些公式和函数一定要会,Word也要熟练掌握,尤其是其中的mathtype公式编辑器,要求所有的公式都需要用公式编辑器输入。编程人员需要熟练掌握Matlab、SPSS、Lingo,都很简单。
对于学习数学建模的方法,大概包括:规划(最优化)、图论、评价、相关性分析、回归等模型,还有一些比较高大上的算法,比如模拟退火算法、神经网络、粒子群算法,这些大多是处理优化问题的,当然神经网络还可以做分类,这些网上都有现成的代码,了解数据输入输出和如何分析结果即可。推荐司守奎老师的《数学建模与应用》一书(侧重实现),还有姜启源老师的《数学模型》一书(侧重原理的讲解)。
多看看优秀论文,注意格式和内容,掌握这些,建模应该不成问题了,祝各位同学好运。
㈡ 数学建模中的编程
就拿数学建模来说,建模的过程是要将一个实际的问题简化为一个可以用数据和很简短的语言能表示出来的问题,然后通过数学工具解决这个问题,比如说概率,微积分,等等。当然数学里面还有很多可以解决实际问题的算法,比如说线性规划、拟合、回归等等很多。因为实际问题的数据可能会比较复杂,按照某个算法用人脑一步步求解往往会很麻烦。
因此通过计算机编程可以编出来算法的程序,直接给数据,计算机就可以算出来。说白了就是人来建立模型,然后编程算法用计算机来计算模型中的答案,比如最优解。要想自己编程序需要对这个算法有足够深的认识。事实上很多算法前人都写好了C或C++的源程序,当然用matlab会更省事一些。
数学建模与编程关系:
1、数学建模更像是从现实世界到数学抽象的过程。要经历把现实问题理想化的步骤,其间必须要决定舍弃哪些影响甚微的多余因素,好简化问题;只有简化了问题才能提出模型。
2、编程更像是在抽象空间本身提出问题,解决问题。这么说来,编程问题反而更像“纯粹”的数学问题。因为程序世界本身就是基于0、1建立起来的抽象世界,编程更像是在抽象世界里,解决抽象问题。所以它一般不需要考虑对哪些因素作取舍。
3、在这二者分别发展的情况下,它们各自的触角越伸越广泛,相互的边界也是日渐模糊的。比如图像处理、图像识别等等,虽然是编程问题,但它距离现实已比“一步之遥”还要近了。或者从另一个角度说,像这种问题是数学建模和编程通力合作解决的。