数学建模应当掌握的十类算法及所需编程语言:
1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)。
2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)。
3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现)。
4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)。
5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)。
6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)。
7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)。
8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)。
9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)。
10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理)。
据我所知,数学建模大赛是三人参加的,其中至少要有一个会编程,一个语言文字功底好,一个数学好。编程可以用C语言,好像主流也是C语言,当然会用C++更好;语文好的是用来写论文的,至少建出的模型需要表达给人看,该怎么表达就需要有这样的人才;要是数学的好的人,思维活跃,拿到题基本就有思路,那样整个组都可能轻松。这三个缺一不可,但是三个人同时有这三种条件那就最好,当然啦,还要通力合作,因为数学建模大赛的目的就是让学生全面发展,要有团队精神。另外MATLAB是一个很好的建模软件,其实也是一种语言。不知道有错没,希望有更好的高手指出~
数学建模需要掌握MATLAB、Python、SAS、Lingo等编程语言。
数学建模:就是通过计算得到的结果来解释实际问题,并接受实际的检验,来建立数学模型的全过程。
当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言作表述来建立数学模型。
数学模型(Mathematical Model)是一种模拟,是用数学符号,数学式子,程序,图形等对实际课题本质属性的抽象而又简洁的刻划,它或能解释某些客观现象,或能预测未来的发展规律,或能为控制某一现象的发展提供某种意义下的最优策略或较好策略。
数学模型一般并非现实问题的直接翻版,它的建立常常既需要人们对现实问题深入细微的观察和分析,又需要人们灵活巧妙地利用各种数学知识。这种应用知识从实际课题中抽象、提炼出数学模型的过程就称为数学建模(MathematicalModeling)。
不论是用数学方法在科技和生产领域解决哪类实际问题,还是与其它学科相结合形成交叉学科,首要的和关键的一步是建立研究对象的数学模型,并加以计算求解(通常借助计算机);数学建模和计算机技术在知识经济时代的作用可谓是如虎添翼。
语言是次要的,任意有一种能够熟练应用就可以,关键在于思想和算法。
Matlab才是王道
还要学习一下基本的统计知识