MATLAB在数学建模竞赛中的应用_第1页
MATLAB在数学建模竞赛中的应用_第2页
MATLAB在数学建模竞赛中的应用_第3页
MATLAB在数学建模竞赛中的应用_第4页
MATLAB在数学建模竞赛中的应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文章编号:1001 7445(2003增 0035 03MATLAB 在数学建模竞赛中的应用黄新民(广西大学数学与信息科学学院 广西南宁530004摘要:在数学建模竞赛中 大量的数值计算及-些特殊分支中使用MATLAB 更有效.关键词:MATLAB ;数值计算;软件工具包中图分类号:G 434文献标识码:A在数学建模竞赛中手工计算是无法在短时间内完成所需要的复杂计算的 因此在数学建模竞赛中往往伴随着大量使用计算机进行计算.在以往的数学建模竞赛中一般使用的是MATHEMATICA 这个软件以其简单易学及优秀的符号计算能力出色的数值计算能力和方便优秀的作图能力而获得学生的喜爱.比起用C 语言或者是

2、BASIC 语言编写的程序而言 用MATHEMATICA 编写的程序要简单得多.而其特有的符号运算功能更是其他软件所难以比拟的.但是在一些数学建模竞赛中 常常会出现需要大量数值计算的情形.MATHEMATICA 虽然也有十分出色的数值计算功能 但是在一般的数值计算上还是比MATLAB 差得多.此外 MATLAB 还做有大量的软件工具包 使其在一些比较专门的领域中用起来更简单易行.因此在某些场合 使用MATLAB 常常有比使用MATHEMATICA 更好的结果.例如在2000年数学建模竞赛中血管的二维成像问题 对于图像数据的读入 原题中建议是使用C +编程实现的.但是如果使用MATLAB 则图像

3、数据的读入就成为十分简单的事情.例如对于给出的图像文件0.bmp 只要使用一条命令u V =imread (*0.bmp 便立即得到图像数据.其中512>512维的矩阵M 就记录了图片0.bmp 的点阵图形数据.而使用MATHEMATICA 不但不能读出这个图像数据 而且即使用其他软件读出图像数据 由于数组元素达512>512=262144个元素 这样大的数组MATHEMATICA 也处理不了 因为软件MATHEMATICA 能处理的数组元素有限.MATHEMATICA 数值计算功能和速度都比MATLAB 要差一些.虽然用C +处理比MATLAB 效率是要高 但是其编程却比MATL

4、AB 要难得多 显然用MATLAB 更好.对于-般需要作大量数值计算的情形 MATLAB 确实是十分优秀的软件.MATLAB 中还编写了许多用于专门学科分支的软件包.上面对于图像处理的命令imread 仅是其图像处理软件包中的-条命令.而其中用于数值仿真的软件包Simulink 的功能及其方便更是值得称道的.它使得麻烦的编程变成直观易懂 容易实现的拼图操作.例如 炮弹在空中飞行的方程d 2y dt 2=-g-2g U 20dy dt (dx dt 2+(dy dt 2 d 2x dt 2=-2g U 20dx dt (dx dt 2+(dy dt 2 U 0<(L =400m/S.第28

5、卷增刊2003年10月广西大学学报(自然科学版Journal of Guangxi uniVerSity (nat Sci EdVol.28 Sup.Oct. 2003|收稿日期:20030620;修订日期:20030828作者简介:黄新民(1945 男 广西贺州人 广西大学教授.这个微分方程只能求数值解.在MATEMATICA中求解命令比较简单只要输入命令V O=4OO;Theta=Pi/3;A=NDSolVeyt十9.8十19.6y/tSgrt(y/t 十(X/t /V O =OXt十19.6X/tSgrt(y/t 十(X/t /V O =O yO=OXO=O y/O=V O%SinThe

6、ta X/O=V O%CoSThetayt Xtt O 1OO;yyX-,=yX/.Al;就可以求出在发射角为6O度时炮弹射击的数值解.微分方程中各项表示式的意义都十分好理解因此我们将不对它们作出解释了.如果使用MATLAB则是使用其仿真软件包Simulink将求上面的微分方程数值解归结为建立下面的Simulink程序图,该图的编程比MATEMATICA要复杂得多.图中标有ConStant的模块是常数模块.它记录自由落体运动的加速度g=9.8m/S(加有一个负号表示方向向下模块Gain与模块Gainl是放大系数模块它表示通过这个模块后的项放大了-k倍.用鼠标双击此模块将出现一个对话框在对话框中

7、输入-%g/V O就得到微分方程中的速度项的系数-gU O(其值在工作窗中定义.模块Product与Product1 表示相乘用鼠标双击后可改变输入口的数目实现更多项输入的相乘.图中两个内有加号的小圆表示两项相加(同样用鼠标双击后可改变输入端口数目并且还可以对每一个端口定义是相加还是相减.模块Math f unction与Math f unctionI是数学函数可以通过双击选择13种数学运算函数(在本例中是求输入的平方.最右方的模块XYGraph是将输入的坐标I y数据以图形方式输出,所有箭头线表示流程线.四个标有integrator(后面还有一个数字的是积分模块.可以通过程序上方的Simul

8、ation选择积分上下限积分步长七种近似积分公式及一种离散状态计算式等参数.对比图形与微分方程不难理解Simulink程序图是如何构造的.Integrate3输出I/(t Integrate4输出y/(t Integratel输出I(t Intergrate5输出y(t此程序中只将I(t y(t输出到XY Graph图形显示器如果还需要I/(t y/(t用于数据处理(例如计算落地速度等只要分别在Integrate3 Integrate4处再分别63广西大学学报(自然科学版第8卷接上一个输出模块到工作窗或者磁盘文件即可.比不能选择计算方式及直接输出导数值的MATEMATICA 显然要强得多.用M

9、ATEMATIKA 求出来的解只能得到自变量x 与函数值y 的数值对应,如果要求y 对x 的导数,则必须自己编程,远没有使用MATLAB 那么方便了.不但如此,通过选择合适模块与参数.用Simulink 可以编写出十分简单的程序来解出复杂的数学模型.例如问题,在距地高度为h 处将一个小球垂直以初速度U 0上抛,不考虑空气阻力,但落地再反弹时反弹速度为落地速度的80%,求初速度确定时的数值解.这个数学模型虽然不复杂.但由于每落地一次再反弹时速度要起变化,手工计算只能分段计算(而且对于不同的高度h 及初速度U 0还得重新计算,用MATEMATICA 编写也还是相当复杂的.但是使用MATLAB 中的

10、Simulink 编写的程序只是如下图那么简单,该程序是MATLAB 自带,只要进入MATLAB 后再键入bounce 即可调出.编程简单的主要原因是在积分模块中可选择各种不同的参数来实现在其他软件中要用复杂的编程才能实现的功能.从上面的对比可以看出,在数值计算及一些专门分支的求解上MATLAB 比MATEMATICA 更好,但是MATLAB 的学习与使用却是比MATEMATICA 更难的.只要有合适的书籍,稍稍加以指点,一般人可在极短时间内学会用MATEMETICA 作初步的运算,而MATLAB 则难于在短时间内掌握,而除部分工科学生开设了MATLAB 这门课程之外一般专业都不开MATLAB

11、 这门课,到确实需要用到MATLAB 时再来学是肯定不行的.因此建议在数学建模竞赛辅导培训时,对MATLAB 的简单操作(矩阵输入输出,工作窗与文件编辑窗,矩阵运算与数组运算及Simulink 作简单介绍.只要入了门,同时使用合适的参考书,学生到参赛时还是可能很快掌握和使用的.application of MaTLab in mathematical contest in modelingUANG Xin -min(College of Mathematics and Information Science ,Guangxi University ,Nanning 530004,China abstract ,It is very valid that used the MATLAB in a flood of number calculation and some special branches in mathematical contest in modeling .Key words ,MATLAB ;numerical calculation ;software tool pack(责任编辑刘海涛73增刊黄新民,MATLAB 在数学建模竞赛中的应用 MATLAB在数学建模竞赛中的应用作者:黄新民

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论