数学建模参赛真实经验(强烈推荐)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模参赛真实经验(强烈推荐)
本文档节选自:
Matlab在数学建模中的应用,卓金武等编著,北航出版社,2011年4月出版
以下内容根据作者的讲座整理出来,多年数学建模实践经历证明这些经验对数学建模参赛队员非常有帮助,希望大家结合自己的实践慢慢体会总结,并祝愿大家在数学建模和Matlab世界能够找到自己的快乐和价值所在。
一、如何准备数学建模竞赛
一般,可以把参加数学建模竞赛的过程分成三个阶段:第一阶段,是个人的入门和积累阶段,这个阶段关键看个人的主观能动性;第二阶段,就是通常各学校都进行的集训阶段,通过模拟实战来提高参赛队员的水平;第三阶段是实际比赛阶段。这里讲的如何准备数学建模竞赛是针对第一阶段来讲的。
回顾作者自己的参赛过程,认为这个阶段是真正的学习阶段,就像是修炼内功一样,如果在这个阶段打下深厚的基础,对后面的两个阶段非常有利,也是个人是否能在建模竞赛中占优势的关键阶段。下面就分几个方面谈一下如何准备数学建模竞赛。
首先是要有一定的数学基础,尤其是良好的数学思维能力。并不是数学分数高就说明有很高的数学思维能力,但扎实的数学知识是数学思维的根基。对大学生来说,有高等数学、概率和线性代数就够了,当然其它数学知识知道的越多越好了,如图论、排队论、泛函等。我大一下学期开始接触数学建模,大学的数学课程只学习过高等数学。说这一点,主要想说明只要数学基础还可以,平时的数学考试都能在80分以上就可以参加数学建模竞赛了,数学方面的知识可以在以后的学习中逐渐去提高,不必刻意去补充单纯的数学理论。
真正准备数学建模竞赛应该从看数学建模书籍开始,要知道什么是数学建模,有哪些常见的数学模型和建模方法,知道一些常见的数学建模案例,这些方面都要通过看建模方面的书籍而获得。现在数学建模的书籍也比较多,图书馆和互联网上都有丰富的数学建模资料。作者认为姜启源、谢金星、叶齐孝、朱道元等老师的建模书籍都非常的棒,可以先看二三本。刚开始看数学建模书籍时,一定会有很多地方看不懂,但要知道基本思路,时间长了就知道什么问题用什么建模方法求解了。这里面需要提的一点是,运筹学与数学建模息息相关,最好再看一二本运筹学著作,仍然可以采取诸葛亮的看书策略,只观其大略就可以了,等知道需要具体用哪块知识后,再集中精力将其消化,然后应用之。
大家都知道,参加数学建模竞赛一定要有些编程功底,当然现在有Matlab这种强大的工程软件,对编程的的要求就降低了,至少入门容易多了,因为很容易用1条Matlab命令解决以前要用20行C语言才能实现的功能。因为Matlab的强大功能,Matlab在数学建模中已经有了非常广泛的应用,在很多学校,数学建模队员必须学习Matlab。当然Matlab的入门也非常容易,只要有本Matlab参考书,照猫画虎可以很快实现一些基本的数学建模功能,如数据处理、绘图、计算等。我的一个队友,当年用一天时间把一本二百多页的Matlab 教程操作完了,然后在经常运用中,慢慢地就变成了一名Matlab高手了。
对于有些编程基础的同学,最好再看一些算法方面的书籍,了解常见的数据结构和基本
的遍历、二分等算法,然后再了解一些智能优化算法,如遗传算法、蚁群算法、模拟退火算法等。这样,在以后编程求解模型的过程中,就很容易寻找到合适的求解算法。
对于参加数学建模的队员来说,我们都知道要具备一定的数学基础,一定的编程能力,还有就是论文写作能力和团队合作能力。对于后者,主要是看个人固有的能力,不需要去刻意准备,在以后的集训阶段再加以训练就可以了。
二、数学建模队员应该如何学习Matlab
对理论的掌握并不代表对知识的真正理解。对于一些所谓高深的理论都可以自己编写程序来检验对其理解的程度。我的经验是:只有你把程序流畅地写出来,才是真正意义上对知识理解通透了。比如,我在大三学电力系统分析的时候,就自己用Matlab语言编写了牛—拉法求潮流的程序,计算暂态稳定的简单程序,计算发电机短路电流的程序等。自然地这些专业课程都学得不错。
Matlab是一门优秀的编程语言,在欧美非常普及。选择一门顺手的编程语言可以让你在学习和工作中事倍功半。Matlab是一种语言因为它可以用作编程,也是一种软件因为它自带的工具箱具有类似软件前台的GUI界面以及能够轻松实现人机通信功能。在学习Matlab 编程之前,需要对其有一个基本的了解:
(1) 数据处理
能对数据进行计算、分析和挖掘,数据处理函数功能强大,命令简洁;
(2) 软件工具箱
各式各样的工具箱,包括神经网络工具箱、Simulink工具箱(虽然Simulink从底层开发出来的,但是我们认为也是工具箱的一种)、模糊工具箱、数字图像处理工具箱和金融工具箱等;
(3) 精致绘图
Matlab通过“set”命令重设图形的句柄属性,可绘制精准而美观的图形;
(4) 动画实现
Matlab可以进行实时动画、电影动画和AVI视频制作,并能在动画中添加*.WAVE格式的音频;
(5) 与软硬件通信
Matlab接口函数可以实现与软件(比如C)和硬件(比如电子示波器)通信;
(6) 平面设计
与全球最顶尖的平面设计软件Adobe Photoshop联袂使用,传达震撼的视觉设计效果;
(7) 游戏开发
利用Matlab语言可以开发一整套的游戏,比如开发32关的推箱子游戏。
根据我对Matlab将近6年的学习经验,学习Matlab编程就像读一本书,刚开始读时感觉这本书很薄,内容浅显,容易上手,似乎感觉Matlab语言是最容易学会最简单的一门编程语言;继续读下去感觉这本书其实很厚。初学Matlab编程过程中经常会遇到五大困惑:其一,函数指令掌握太少,写不出简洁的程序甚至正确有效的代码也写不出;初学者阅读一个Matlab编程高手写出的一个相对复杂的程序,会发现不但整篇程序的思路难以理解,而且会碰见很多陌生的命令,就像一篇英文阅读理解有很多单词都不认识。自己动手写程序想表达的意思表达不出来,力不从心。
其二,不能掌握Matlab函数复杂的语法格式;相比VB和C而言,Matlab语法格式比较复杂。语法格式不正确程序就不能运行,同一个命令有很多种语法格式。格式不同,程序