数学建模比赛需要那些c语言的知识,数学建模需要掌握哪些编程语言和技术

数学建模需要掌握哪些编程语言和技术

关注:284  答案:5  信息版本:手机版

解决时间 2019-01-12 09:40

两耳就是菩提

2019-01-11 09:41

本人所读专业是软件工程,现在能比较熟练得使用C和C++,C#也会一点。下学期想要在数学建模方面努力一下,我知道参加比赛要3人组队,已经有两人和我组队,我所需要负责的就是编程方面。不想给他们拖后腿,所以想在寒假做做准备。求有经验的前辈指导。

最佳答案

一张萌脸祸害三年

2021-01-13 13:08

数学建模应当掌握的十类算法及所需编程语言:

1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)。

2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)。

3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现)。

4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)。

5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)。

6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)。

7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)。

8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)。

9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)。

10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理)。

全部回答

1楼没事别@我

2021-01-13 17:05

什么语言都可以,关键是学习一下directx

2楼爱哭爱闹爱撒娇

2021-01-13 15:34

我也是参加过数模的,个人觉得如果有能力的话最好学一下matlab,这个基本的数模软件,matlab语言有点像c,功能非常强大,基本通杀。还有一个是lingo,因为你是财经专业的,所以到时候选题的时候很可能是选规划类的(离散型的题目比较多),lingo在统计方面功能很强大。

c和c++的话个人感觉在数学建模比赛里面显得有点吃力,没有matlab好,当然如果本身c比较厉害的话,也可以用c来处理,不过强烈建议是matlab,因为matlab里面有不少很好用的模块,很多算法已经帮你做好了,不用自己再去写,如果用c的话有些算法要自己从新写,比较耗费时间,数模只有3天,而且这3天里面真正给你编程的时间不会太长的,想方案就会占去你们至少一天左右,然后其他工作,写文章什么的又差不多一天,真正编程就1天,好点的情况会有1天半吧,差点的情况比如说要模拟的结果需要计算机运行很久的时候(有时有些算法会让计算机每次进行模拟都耗很长时间)就可能会使得时间很紧了。

四个月足够掌握matlab和lingo的基本语言了,当然你得对电脑编程本身就有一定熟悉,逻辑思维要比较好(如果你想在数模里担任编程员的话这个素质必须有)。入门的话去图书馆找下这方面的书看下吧,或者你可以拿一些已往的赛题,看他们的解答之后,想下那些解答应该怎么转化为算法。(我们当时组内2个编程的,不过我们都学过c语言,所以matlab上手很快,matlab语言与c的逻辑很像,部分语句也很像,不过就多了很多打好包的算法,而且拟合方面也非常给力)。多点用matlab去试着解决一下问题。

其实如果你想搞数模,我建议你还是先学好数学,数学的思想很重要,看看数模的书,看看人家是怎么构建一个模型,掌握一些比较常见的数学建模方法。数模有两道题,一道多是用到离散的知识,涉及统计比较多,一道是多用到连续的函数,涉及微分方程比较多。能双攻当然最好。数模是3个人的数模,不是一个人的,还要看你搭档的情况,不同的搭档是需要你给予不同方面的支持的。

如果要举例某些比较常见的数学模型的话,http://wenwen.sogou.com/z/q784797750.htm这个帖子里面说的比较具体,书里也很多。我就不具体讲。

数模关键是建立适合的模型,如果模型需要用计算机模拟,那就要找到相应的算法(就是把你的模型转变为计算机语言)。

如果你们学校有开数学建模课的话,强烈建议去听一下,老师的意见是非常重要的。真正比赛的时候一般也是要有带队老师的。

还有补充一点,让你对数模是一个怎样的比赛有个概念:

数模最初始于美国,当时很多美国学生觉得奥数比赛太难,只是少数天才的娱乐,为了创造一种有趣的竞赛模式,让大多数大学生参加进来,一位美国教授第一次主持数学建模比赛。比赛非常的自由,不限制思路。给你一个题目,让你天马行空,只要不跑题就ok,要用什么数学方法,要建立怎么样的模型完全自由。 比如说有一届美国赛其中一题就是:分析恐龙的捕猎行为,给你一些生物学的数据,让你自己建立捕猎模型。 好玩吧。

不知道你还想知道些什么?

3楼房间乱才显得有朝气

2021-01-13 14:12

数学建模需要掌握MATLAB、Python、SAS、Lingo等编程语言。

数学建模:就是通过计算得到的结果来解释实际问题,并接受实际的检验,来建立数学模型的全过程。

当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言作表述来建立数学模型。

数学模型(Mathematical Model)是一种模拟,是用数学符号,数学式子,程序,图形等对实际课题本质属性的抽象而又简洁的刻划,它或能解释某些客观现象,或能预测未来的发展规律,或能为控制某一现象的发展提供某种意义下的最优策略或较好策略。

数学模型一般并非现实问题的直接翻版,它的建立常常既需要人们对现实问题深入细微的观察和分析,又需要人们灵活巧妙地利用各种数学知识。这种应用知识从实际课题中抽象、提炼出数学模型的过程就称为数学建模(MathematicalModeling)。

不论是用数学方法在科技和生产领域解决哪类实际问题,还是与其它学科相结合形成交叉学科,首要的和关键的一步是建立研究对象的数学模型,并加以计算求解(通常借助计算机);数学建模和计算机技术在知识经济时代的作用可谓是如虎添翼。

4楼各种爆菊各种嗨

2021-01-13 13:31

据我所知,数学建模大赛是三人参加的,其中至少要有一个会编程,一个语言文字功底好,一个数学好。编程可以用C语言,好像主流也是C语言,当然会用C++更好;语文好的是用来写论文的,至少建出的模型需要表达给人看,该怎么表达就需要有这样的人才;要是数学的好的人,思维活跃,拿到题基本就有思路,那样整个组都可能轻松。这三个缺一不可,但是三个人同时有这三种条件那就最好,当然啦,还要通力合作,因为数学建模大赛的目的就是让学生全面发展,要有团队精神。另外MATLAB是一个很好的建模软件,其实也是一种语言。不知道有错没,希望有更好的高手指出~

我要举报

如以上问答内容为色情/暴力/低俗/不良/侵权等信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

你可能感兴趣的:(数学建模比赛需要那些c语言的知识,数学建模需要掌握哪些编程语言和技术)