数学软件与数学实验计算机改变了数学计算甚至数学证明的貌。数学软件四大家目前在科技和工程界上比较流行和著名的数学软件主要有四个,分别是MapleMATLABMathCADMathematica1、MapleV系统MapleV是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。MapleV的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。2、MATLAB系统MATLAB原是矩阵实验室(MatrixLaboratory)在70年代用来提供Linpack和Eispack软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于Windows9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。现流行2008a版本,基于Windows2000/Windows9X/Nt等。MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x及以上版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的Editor或者其他任何字符处理器,同时它还可以与Word6.0/7.0以及其他应用软件结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。3、MathCAD系统MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1.0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Maple强大的符号计算能力,使得它发生了一个质的飞跃。MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件。MathCAD7.0Professional(专业版)运行在Win9X/NT下,它的主要特点是输入格式与人们习惯的数学书写格式很近似,采用WYSWYG(所见所得)界面,特别适合一般无须进行复杂编程或要求比较特殊的计算。MathCAD7.0Professional还带有一个程序编辑器,对于一般比较短小,或者要求计算速度比较低时,采用它也是可以的。这个程序编辑器的优点是语法特别简单。MathCAD可以看作是一个功能强大的计算器,没有很复杂的规则;同时它也可以和Word、Lotus、WPS2000等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。4、Mathematica系统Mathematica是由美国物理学家StephenWolfram领导的WolframResearch开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符号计算不是基于Maple上的,而是自己开发的。Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上,Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。Mathematica对于输入形式有比较严格的规定,用户必须按照系统规定的数学格式输入,系统才能正确地处理,不过由于3.0版本引入输入面板,并且可以修改、重组输入面板,因此以前版本输入指令时需要不断切换大小写字符的繁琐方式得到很好的改善。3.0版本可以用各种格式保存文件和剪贴内容,包括RTF、HTML、BMP等格式。5、四种软件的比较选用何种数学软件?如果仅仅是要求一般的计算或者是普通用户日常使用,首选的是MathCAD,它在高等数学方面所具有的能力,足够一般客户的要求,而且它的输入界面也特别友好。如果要求计算精度、符号计算和编程方面的话,最好同时使用Maple和Mathematica,它们在符号处理方面各具特色,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等方面,这些都是比较特殊的。如果要求进行矩阵方面或图形方面的处理,则选择MATLAB,它的矩阵计算和图形处理方面则是它的强项,同时利用MATLAB的NoteBook功能,结合Word6.0/7.0的编辑功能,可以很方便地处理科技文章.现在MATLAB可完全代替Maple.因为Maple把技术全部卖给Matlab,自己不再出新版本。数学建模应掌握的10种算法•蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法。•数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具。•线性规划、整数规划、多元规划、二次规划等规划类问题.建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现。•图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备数学建模应掌握的10种算法•动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中。•最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法。这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。数学建模应掌握的10种算法•网格算法和穷举法。网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。•一些连续离散化方法.很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。数学建模应掌握的10种算法•数值分析算法。如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。•图象处理算法。赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理数学建模应掌握的10种算法参考书:【1】赵静、但琦,数学建模与数学实验,高等教育出版社、Springer出版社,2000【2】刘金英、李明主编,数学模型与MATLAB应用,吉林大学校内教材2002【3】谢兆鸿等,数学建模技术,北京,中国水利水电出版社,2003【4】蔡锁章主编,数学建模,北京,中国林业出版社,2003【5】宋来忠,王志明主编.数学建模与实验[M].北京:科学出版社,2005.8.练习:用数学方法描述贝勃定律有人做过一个实验:一个人右手举着300克重的砝码,这时在其左手上放305克的砝码,他并不会觉得有多少差别,直到左手砝码的重量加至306克时才会觉得有些重。如果右手举着600克,这时左手上的重量要达到612克才能感受到重了。也就是说,原来的砝码越重,后来就必须加更大的量才能感觉到差别。这种现象被称为“贝勃定律”。“贝勃定律”在生活中到处可见,比如5毛钱一份的晚报突然涨了50块钱,那么你会觉得不可思议,无法接收。但是,如果原来500万的房产也涨了50块,甚至500块,你都会觉得价钱根本没有变化一样。有头脑的人会利用“贝勃定律”为自己减轻做事的阻力。小至商家的产品价格调整,他们会先小幅度上涨价格,在人们都接受了以后再加价更多。大至谈判的技巧,一般有经验的谈判专家都会在谈判临近结束时才提出一些棘手的条件,而对方被一开始的优厚条件所诱惑,也就不怎么在意后来才知道的那些缺点了。有些人总抱怨恋人对自己不如刚认识时那么好了,其实这也是“贝勃定律”在作怪。在还不熟悉的情况下,对方给你的一点点关怀你都会觉得情深似海;而当你们相恋许久之后,与原来相同的那些关爱你也会觉得平淡如水了。所以,变了的不是事实,而是你的感受。