数学分析常用的4款软件对比!

  从事数据分析都知道软件是必不可少的,目前比较流行和著名的数学软件主要有四个,分别是Maple、MATLAB、MathCAD和Mathematica。但它们都有各自的优缺点。下面我们大圣众包跟大家分享一篇来自化学数据联盟关于数学软件的对比文章。

数学分析常用的4款软件对比!_第1张图片

  Maple V 系统

  Maple V是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple V的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。

  Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。

  5个星的数学软件,纯粹数学的巨人,如果想做数学和应用数学的能力(数值的除外)其是最好的选择。但是此软件二次开发能力不好,仅把软件的发展目标放在数学上,不想向其它领域发展。Maple自带的语言较容易理解,就像用英语说话一样。

  优势:

  符号计算非常强大,和Mathematica相比各有千秋

  许多多项式操作比Mathematica更快

  一些符号积分Maple也有速度优势(特别是不定积分),不过有时返回的结果没有Mathematica给出的更严谨、鲁棒性好,能算的积分类型没有Mathematica多

  Maple的“适应性”更好,有的问题Mathematica需要一定的预处理才能算的更快,得出满意的结果

  Maple更擅长(偏)微分方程,(其实Maple和Mathematica都能解一些对方解不了的一些特殊微分方程)

  可以带步骤求解一些问题,Mathematica需要第三方的Package或借助WolframAlpha

  上手较快,一些常见的操作无需命令,通过右键菜单就能完成

数学分析常用的4款软件对比!_第2张图片

  缺点:

  界面有点卡(基于Java swing),经典界面流畅但是很土

  自带的代数方面的package比较丰富

  化简能力,不等式求解,逻辑系统较Mathematica逊色一些

  数值计算总体上比Matlab和Mathematica差一些

  高精度和大数计算方面强于Matlab弱于Mathematica

  统计方面有些薄弱

  MATLAB 系统

  MATLAB原是矩阵实验室(Matrix Laboratory),在70年代用来提供Linpack和Eispack软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。

  MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。

数学分析常用的4款软件对比!_第3张图片

  MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的Editor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。

  优势:

  线性代数和数值计算方面优势显著,

  向量化运算往往比同类软件更快,

  拥有超多工具箱,仿真,图像处理,信号处理,金融,统计,优化……

  程序语言比较易学,编辑和调试环境不错

  方便构建GUI

  缺点:

  不是原生支持符号计算(符号计算远不止是推导公式),新版的mupad内核还不错,但是和Mathematica、Maple比有明显差距,不论是深度、广度和速度

  递归特别慢,比Mathematica和Maple以及常见的脚本语言都慢

  在一些数学领域相对薄弱,如数论,图论,离散数学等

  高精度和大数计算比较慢(如精确计算100万的阶乘或π的前500万位)

  工具箱之间的协作能力不是很好

  界面不太好看(新版R2013a的Ribbon界面不错)

  缺省画图不美观,锯齿,系统函数命名不够规范

  MathCAD 系统

  MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1.0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Maple强大的符号计算能力,使得它发生了一个质的飞跃。

  MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件。MathCAD7.0 Professional(专业版)运行在Win9X/NT下,它的主要特点是输入格式与人们习惯的数学书写格式很近似,采用WYSWYG(所见所得)界面,特别适合一般无须进行复杂编程或要求比较特殊的计算。MathCAD 7.0 Professional 还带有一个程序编辑器,对于一般比较短小,或者要求计算速度比较低时,采用它也是可以的。这个程序编辑器的优点是语法特别简单。

  MathCAD可以看作是一个功能强大的计算器,没有很复杂的规则;同时它也可以和Word、Lotus、WPS2000等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。

数学分析常用的4款软件对比!_第4张图片

  MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1.0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Maple强大的符号计算能力,使得它发生了一个质的飞跃。

  Mathematica 系统

  Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符号计算不是基于Maple上的,而是自己开发的。

  Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上,Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。Mathematica对于输入形式有比较严格的规定,用户必须按照系统规定的数学格式输入,系统才能正确地处理,不过由于3.0版本引入输入面板,并且可以修改、重组输入面板,因此以前版本输入指令时需要不断切换大小写字符的繁琐方式得到很好的改善。3.0版本可以用各种格式保存文件和剪贴内容,包括RTF、HTML、BMP等格式。

  Mathematica的符号功能是最强的,其运行构架也是最优的。它的构架由核心系统与前端系统构成。两个系统既合作又独立,这比Matlab的构架要合理。Mathematica是专为研究人员开发的。横向比较的话,Mathematica的符号能力比Maple强很多,Maple基本上是为中学生与大学生之学习研发的,不适合进行物理学与技术科学的运演;而Mathematica是最好的物理学科研的工具,Matlab是最好的技术科学数值求解的工具。

  4个星的“数学”软件,在数学二字上加引号是因为他已经超越了纯粹数学的范畴,这主要表现在他不断开发的面向于不同学科的工具包。就做数学和应用数学的能力来说Mathematica不如Maple(并不是说其做不了,不怕麻烦编程序也能做,但是话说回来基本的东西都编程序的话,那么和Fortran之类的语言没什么区别了)。另一个问题是Mathematica的内核不如Maple稳定(计算速度较Maple慢,我是说纯粹的计算时间,不是输入命令的时间,目前的Maple的Java界面比较失败,让人感觉算Maple算得慢,其实不是这样的)。Mathematica的诱人之处是与其它数值软件相比可以做符号运算,与Maple相比二次开发性好,工具包比Maple做的好。此外,其自带的语言是面向对象的,很厉害,很灵活。

数学分析常用的4款软件对比!_第5张图片

  优势:

  符号计算非常强大,可解的方程类型最广泛

  非常强大和灵活的语言,完成相同的工作,和同类语言相比代码量往往最少

  语言高度统一,支持相当多的编程范式,过程式、函数式、元编程,逻辑编程、基于规则…

  循环比较慢,可以用Compile加速,或使用Map、Table、Nest等代替循环

  许多内置函数具备AAS机制(AutomaticAlgorithmSelection)

  擅长高精度和大数计算,图形方面的函数很丰富,默认画图比Matlab和Maple更好看

  界面美观,输入公式很方便

  帮助文档很友好

  缺点:

  价格较高,比matlab更贵(Matlab的价格取决于你要哪些工具箱)

  向量化的操作比Matlab稍慢,有时比Matlab更耗内存

  代码调试不是很方便,但可以用Wolfram Workbench(基于Eclipse的IDE)改善

  程序语言学习曲线陡峭,排除熟悉Scheme、Haskell等函数式语言或者作为高级计算器使用的人

  (Mathematica的语法和常见的过程式程序语言有较大不同,虽然也可以作为过程式语言来用,但代码的和速度和优雅程度就大打折扣了)

数学分析常用的4款软件对比!_第6张图片

  四种软件的比较

  选用何种数学软件?如果仅仅是要求一般的计算或者是普通用户日常使用,首选的是MathCAD,它在高等数学方面所具有的能力,足够一般客户的要求,而且它的输入界面也特别友好。

  如果要求计算精度、符号计算和编程方面的话,最好同时使用Maple和Mathematica,它们在符号处理方面各具特色,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等方面,这些都是比较特殊的。如果要求进行矩阵方面或图形方面的处理,则选择MATLAB,它的矩阵计算和图形处理方面则是它的强项,同时利用MATLAB的NoteBook功能,结合Word6.0/7.0的编辑功能,可以很方便地处理科技文章。

  如果仅仅是要求一般的计算或者是普通用户日常使用,首选的是MathCAD,它在高等数学方面所具有的能力,足够一般客户的要求,而且它的输入界面也特别友好。如果要求计算精度、符号计算和编程方面的话,最好同时使用Maple和Mathematica,它们在符号处理方面各具特色,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等方面,这些都是比较特殊的。如果要求进行矩阵方面或图形方面的处理,则选择MATLAB,它的矩阵计算和图形处理方面则是它的强项,同时利用MATLAB的NoteBook功能,结合Word的编辑功能,可以很方便地编辑科技文章。


你可能感兴趣的:(大数据,数学计算,数学软件,matlab,数据分析工具,IT,程序员,IT工程师)