美国最为权威的数学建模参考书Mathematical Modeling 在前言部分对数学建模有一个比较通俗易懂的解释:
Mathematical modeling is the link between mathematics and the rest of the world. You ask a question. You think a bit, and then you refine the question, phrasing it in precise mathematical terms. Once the question becomes a mathematics question, you use mathematics to find an answer. Then finally (and this is the part that too many people forget), you have to reverse the process, translating the mathematical solution back into a comprehensible, no-nonsense answer to the original question. Some people are fluent in English, and some people are fluent in calculus. We have plenty of each. We need more people who are fluent in both languages and are willing and able to translate. These are the people who will be influential in solving the problems of the future.
数学建模是数学和世界其他领域之间的桥梁。你提出一个问题,经过一番思考,然后将问题用精确的数学术语重新表述。一旦问题转化为数学问题,你就可以利用数学方法找到答案。最后(这个环节太多人容易忽视),你必须将数学解决方案再次翻译回原问题的易理解、无歧义的答案。有些人精通英语,有些人精通微积分。我们有很多这样的人才。但我们需要更多同时精通两种语言,并愿意并能够进行翻译的人才。这些人将对未来问题的解决具有影响力。
王国维在《人间词话》中说:“古今之成大事业、大学问者,罔不经过三种之境界:‘昨夜西风凋碧树。独上高楼,望尽天涯路。’此第一境界也。‘衣带渐宽终不悔,为伊消得人憔悴。’此第二境界也。‘众里寻他千百度,蓦然回首,那人正在灯火阑珊处。’此第三境界也。”
总体学习路线推荐
数学建模是利用数学方法解决实际问题的一种实践。即通过抽象、简化、假设、引进变量等处理过程后,将实际问题用数学方式表达,建立起数学模型,然后运用先进的数学方法以及计算机技术进行求解。简而言之,建立数学模型的这个过程就称为数学建模。
主要考察同学们的想象能力、简化能力、联想能力、创造能力、判断能力、综合能力、查阅能力、编程能力、写作能力、团结协作能力……
1.请为我预测一下明天的气温?(环境类)
2.请帮我分析一下理财产品的最优组合(财经类)
3.请帮我评价一下这项政策的优缺点(实证类)
4.请帮我对北京市的土地利用情况进行合理的划分(城市规划类)
5.请帮我预测一下小麦的产量(农业类)
6.请帮我找出标枪运动员最佳的投掷点(力学类) 等等……
几乎所有的行业都要用到数学建模!很多事情无法直接凭借主观经验获取, 需要用科学的方法进行解算, 此过程便是数学建模。
一 (起步) 昨夜西风凋碧树 独上高楼 望尽天涯路
数学模型学习推荐
课程个人推荐:
编者老师在清华大学课堂上所讲的《数学模型》课程,预估学习时长 35小时
清华大学 数学建模 83讲 谢金星主讲
这个是以后开展不同方向的学习的基础,对基本的数学模型要有所了解,才能在比赛时快速进行识别从而开展各种工作。
二 (执着) 衣带渐宽终不悔,为伊消得人憔悴
编程手资料推荐:
1.matlab基础学习入门书籍
2.matlab在数学建模中的应用——卓金武
3.数学建模算法和应用(也是大家常说的“黄书”)
课程推荐:
我推荐的大部分都是免费且系统的,其他老师也非常优秀,欢迎各位同好补充
1.billill数学建模老哥(零基础教程)
数学模型和论文写作的讲解较为系统,讲课时也比较诙谐幽默,当然有的观点听个热闹就好
预估学习时长:80小时
数学建模老师(司守奎老师在b站的个人账号)
也是“黄书”的作者老师在b站开的讲解,适合了解过matlab基础的学生来学习
预估学习时长:50小时
4.西北工业大学mooc课程
(进阶) 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处
此时在打好了各种基础之后就可以开始尝试参加各种类型的数学建模比赛了
一般来说有以下几类等等:
全国大学生数字建模竞赛(国赛)
美国大学生数字建模竟赛(美赛)
全国研究生数字建模竟赛(研赛)
深圳杯数字建模挑战賽(深圳杯)
全国电工杯数字建模竟赛
亚太地区大学生数学建模竞赛
1、不要怂,直接上 不用平时刻意去看书,直接参赛。因为平时看资料自学的效率是非常低的,往往看不到一页就满头雾水,进而不想看了。只有在比赛时的紧张感才会让你效率倍增。
无论是什么比赛,都报名参加,不会做不要紧,现学现用,是在学不会就照搬资料里的内容(稍微改改),编论文也要编完交上去。多做几次就能找到感觉了。
2、基础知识:高数、概率论、线代 一般大一大二很难拿大奖,好好上课,把高数、概率论、线代学好;有空学学编程,推荐python或matlab;此外数模中的很多模型和算法都是数据结构中的内容,把这门课学好后基本就会数模了。
3、文献检索 另外学会文献检索也是很重要的,数模竞赛题目往往具有一定的专业性,需要学会查到相关领域的论文并加以利用。
4、绘图、排版 更进一步,学会绘图。建议从excel作图入手,再学习matlab和python绘图,有精力可以学更专业的origin。
排版很重要,想必当年高中语文老师都强调过作文的书写,如果字写得差,内容再好别人也不愿看;数模论文同理,如果排版差,内容写得再好别人也不愿细读。
数学建模如何分工
建模队员
负责模型建立的整体脉络,这就需要建模队员需要有很广的知识面和对数学有极大的兴趣,平时有时间多接触数学类知识,比如运筹学、模糊数学、数据分析等,以便在真正建模的时候能够把握大方向,知道问题该用什么数学模型来解诀。
必须要掌握的模型:
评价类:层次分析法、模糊综合评价、TOPSIS、 神经网络
预测类:回归预测、时间序列预测、神经网络预测、马尔科夫预测
优化类:线性和非线性优化、整数规划、0-1规划、多目标和智能优化
数据处理:插值拟合、归一化、主成分分析
聚类分析:k-means聚类、 SVM聚类分析、随机森林和决策树等
相关性分析:灰色关联分析、皮尔逊系数
图与网络:最短路径、旅行商(TSP问题) 、最小生成树、网络最大流
其他算法:微分方程、元胞自动机、蒙特卡洛算法
编程队员
负责为建立的数学模型编程,常用的编程软件有Matlab、Lingo和SPSS等 。
编程队员最好是计算机专业相关学生,因为编程语言都是相通的,计算机专业学生能很快接受一种新的编程语言。
编程队员必须能够熟练掌握一种编程语言(建议是Matlab或Python),最好不要是其他语言,如C语言、Java等,不适合数学建模。
编程队员必须能够熟练掌握各种常用建模算法的编程实现,并事先将其分门别类的储存好,对于常见的选择、循环等语句结构和微积分方程组的求解都能熟练掌握,对数据可视化、绘图等也能熟练掌握。
写作队员
主要负责撰写论文正文,往往需要才华横溢,能够用学术型语言写出建模论文,能够清晰表达出模型的建立过程,同时还需要学术论文写作的功底。
专业合适即可专业并非会对建模起到至关重要的作用,真正起作用的是作为建模人的你。自己对本专业知识的掌握程度,对高等数学、线性代数、微积分的学习是否用心了。其实在初等的建模中也并不会过多地涉及到这些内容,当然好的模型对这些知识的要求是必须的。踏踏实实、靠谱细心才会出成果。
协作是关键俗话说男女搭配干活不累,但是累不累不还得看你是否有个能干的队友吗?通力合作,有默契的队伍才会有动力在比赛中坚持下去。小组内互相认识、互相了解才会在最累的时候互相支持。一个队伍需要的是你认可的凝聚力,而不是有一个人专门端茶倒水。
建模、实现、写作团队分工至关重要。我的理解团队分工应该是模型搭建、模型实现、论文写作这三个部分。建模是提供团队对问题的解决思路、方法;参与实现模型或者求解模型必须要求能熟练的通过各类软件对模型进行模拟、求解、检验;写作要求能对团队的前进方向有清晰的把握,通过准确的文字、图标对模型进行展示。但是实际中的分工并不是界限分明,数学建模是一个团队合作的过程,分工固然重要但是明确的分工界限容易限制建模的进度,禁锢思路。
我认为在建模中的分工一定要有交叉,建模的同学也需要把自己理解的通过文字、公式准确的表达给写作的同学,负责模型的同学实现部分也要对模型的实现的最终结果有较好的可视化功底。
每个人都应该具备基本的建模、模型实现、写作能力但是每个人的侧重点不同才是绝佳的组合。对了说句题外话,当你这些都会了的时候,就会发现比赛中自己既要建模又要写代码又要大篇幅改队友写的论文,所以在前期找队友的时候记得还是得慎重。
学长学姐们的建议
每个人至少掌握建模、编程、论文的一部分。保证三个本部分均有人负责。三人彼此配合,有明确分工,配合默契。
1.多阅读优秀的国奖论文,学习论文写作和模型应用
2.借助BILIBILI等网络资源进行自学,对数模比赛有初步了解和认识,如比赛时间,成员安排等
3.学习模型注意理论联系实际,书本上的模型可以通过往年赛题进行学习
4.书本上的代码进行复现,多动手敲一敲代码
成体系熟练掌握各类算法,在平时注重积累属于自己的代码模板、论文模板,到比赛时能根据选定的算法将数据代入得到结果。一个队的成员在平时的练习中,不要只学自己的那一部分,每一个人都要熟悉另外两名队友的工作,只有这样才能最大程度发挥团队的力量。
数学建模是一个长期学习的过程,它能给我们带来持续性的成长,锻炼我们的数学思维,不断攀高,成为更好的自己。敢于尝试数学建模,成为一个勇敢且优秀的人吧!