数学软件四⼤家族——Maple、MATLAB、MathCAD和Mathematica优缺点⽐较⽬录
数学软件四⼤家族——Maple、MATLAB、MathCAD和Mathematica优缺点⽐较
2016-11-10 20:03
⽬前在科技和⼯程界上⽐较流⾏和著名的数学软件主要有四个,分别是Maple、MATLAB、MathCAD和Mathematica。它们在各⾃针对的⽬标都有不同的特⾊。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
上⼿较快,⼀些常见的操作⽆需命令,通过右键菜单就能完成
缺点:
界⾯有点卡(基于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的使⽤⼊门到其他专题应⽤均有详细的介绍。
MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应⽤线性代数、数理统计、⾃动控制、数字信号处理、动态系统仿真⽅⾯已经成为⾸选⼯具,同时也是科研⼯作⼈员和⼤学⽣、研究⽣进⾏科学研究的得⼒⼯具。MATLAB在输⼊⽅⾯也很⽅便,可以使⽤内部的Editor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在⼀起,在Word的页⾯⾥直接调⽤MATLAB的⼤部分功能,使Word具有特殊的计算能⼒。
优势:
线性代数和数值计算⽅⾯优势显著,
向量化运算往往⽐同类软件更快,
拥有超多⼯具箱,仿真,图像处理,信号处理,⾦融,统计,优化......
程序语⾔⽐较易学,编辑和调试环境不错
⽅便构建GUI
缺点:
不是原⽣⽀持符号计算(符号计算远不⽌是推导公式),新版的mupad内核还不错,但是和Mathematica、Maple⽐有明显差距,不论是深度、⼴度和速度递归特别慢,⽐Mathematica和Maple以及常见的脚本语⾔都慢
在⼀些数学领域相对薄弱,如数论,图论,离散数学等
⾼精度和⼤数计算⽐较慢(如精确计算100万的阶乘或π的前500万位)
⼯具箱之间的协作能⼒不是很好
界⾯不太好看(新版R2013a的Ribbon界⾯不错)
缺省画图不美观,锯齿,系统函数命名不够规范
MathCAD 系统
c语言ide编辑器
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等字处理软件很好地配合使⽤,可以把它当作⼀个出⾊的全屏幕数学公式编辑器。
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做的好。此外,其⾃带的语⾔是⾯向对象的,很厉害,很灵活。
优势:
符号计算⾮常强⼤,可解的⽅程类型最⼴泛
⾮常强⼤和灵活的语⾔,完成相同的⼯作,和同类语⾔相⽐代码量往往最少
语⾔⾼度统⼀,⽀持相当多的编程范式,过程式、函数式、元编程,逻辑编程、基于规则...
循环⽐较慢,可以⽤Compile加速,或使⽤Map、Table、Nest等代替循环
许多内置函数具备AAS机制(AutomaticAlgorithmSelection)
擅长⾼精度和⼤数计算,图形⽅⾯的函数很丰富,默认画图⽐Matlab和Maple更好看
界⾯美观,输⼊公式很⽅便
帮助⽂档很友好
缺点:
价格较⾼,⽐matlab更贵(Matlab的价格取决于你要哪些⼯具箱)
向量化的操作⽐Matlab稍慢,有时⽐Matlab更耗内存
代码调试不是很⽅便,但可以⽤Wolfram Workbench(基于Eclipse的IDE)改善
程序语⾔学习曲线陡峭,排除熟悉Scheme、Haskell等函数式语⾔或者作为⾼级计算器使⽤的⼈
(Mathematica的语法和常见的过程式程序语⾔有较⼤不同,虽然也可以作为过程式语⾔来⽤,但代码的和速度和优雅程度就⼤打折扣了)
四种软件的⽐较
选⽤何种数学软件?如果仅仅是要求⼀般的计算或者是普通⽤户⽇常使⽤,⾸选的是MathCAD,它在⾼等数学⽅⾯所具有的能⼒,⾜够⼀般客户的要求,⽽且它的输⼊界⾯也特别友好。
如果要求计算精度、符号计算和编程⽅⾯的话,最好同时使⽤Maple和Mathematica,它们在符号处理⽅⾯各具特⾊,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等⽅⾯,这些都是⽐较特殊的。如果要求进⾏矩阵⽅⾯或图形⽅⾯的处理,则选择MATLAB,它的矩阵计算和图形处理⽅⾯则是它的强项,同时利⽤MATLAB的NoteBook功能,结合Word6.0/7.0的编辑功能,可以很⽅便地处理科技⽂章。
如果仅仅是要求⼀般的计算或者是普通⽤户⽇常使⽤,⾸选的是MathCAD,它在⾼等数学⽅⾯所具有的能⼒,⾜够⼀般客户的要求,⽽且它的输⼊界⾯也特别友好。如果要求计算精度、符号计算和编程⽅⾯的话,最好同时使⽤Maple和Mathematica,它们在符号处理⽅⾯各具特⾊,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等⽅⾯,这些都是⽐较特殊的。如果要求进⾏矩阵⽅⾯或图形⽅⾯的处理,则选择MATLAB,它的矩阵计算和图形处理⽅⾯则是它的强项,同时利⽤MATLAB的NoteBook功能,结合Word的编辑功能,可以很⽅便地编辑科技⽂章。
选⽤何种数学软件?
如果仅仅是要求⼀般的计算或者是普通⽤户⽇常使⽤,⾸选的是MathCAD,它在⾼等数学⽅⾯所具有的能⼒,⾜够⼀般客户的要求,⽽且它的输⼊界⾯也特别友好。
如果要求计算精度、符号计算和编程⽅⾯的话,最好同时使⽤Maple和Mathematica,它们在符号处理
⽅⾯各具特⾊,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等⽅⾯,这些都是⽐较特殊的。
如果要求进⾏矩阵⽅⾯或图形⽅⾯的处理,则选择MATLAB,它的矩阵计算和图形处理⽅⾯则是它的强项,同时利⽤MATLAB的NoteBook功能,结合Word6.0/7.0的编辑功能,可以很⽅便地处理科技⽂章。
mathematica 值得信赖,国外很多著名的⼤学都在⽤它作解析计算和公式的推导,证明,算法的研究,⾮常好的数学研究软件,我个⼈认为是No.1。它的数学分析可视化⽆与伦⽐。综合性能和另⼀个著名的软件Maple相⽐,有过之⽽⽆不及,要知道世界上绝⼤部分的量⼦物理,天体物理论⽂中的公式推导都由它完成,绝对⾼端但⼜易
⽤,是数学,⼒学,物理研究⼈员的好帮⼿,甚⾄它的数值计算也完全可以应付学术研究。mathematica和Maple 的最新版本在⽤户公式的输⼊上都有很⼤改进,更加⽅便,随意。
北美不少Top⼤学的弹性⼒学,板壳理论,有限元等数学⼒学理论课的作业和Project都要求⽤它来完成。我个⼈认为,作为计算⼒学的⼯作者,从掌握语⾔的⾓度来讲,只要掌握3种计算语⾔⾜够了,mathematica⽤来作解析法和数学模型的研究,Matlab⽤来实现数值算法(当然仍然可以还⽤mathematica), Fortran⽤来写可执⾏源代码。没必要把⾃⼰陷⼊众多的语⾔和计算软件之中,没有意义
的。
符号计算:积分是Mathematica强,化简也是Mathematica的强项。有些Mathematica可以直接积分的,Maple却要⽤置换积分。微分⽅程的解析解是Maple强些,有很多微分⽅程的解析解Maple能算出,Mathematica却不能。根据⽂献,Maple可以解Kamke书上的97%的微分⽅程。
另外,积分⽅程也是Maple强些,因为Maple⾥内带intsolve函数,因此可以算出解析解。例如eq:=f(x)=2x^2- x+Int(f(t),t=0..2)的关于f(x)的积分⽅程,Maple得出intsolve(eq,f(x)) => 2x^2-x-10/3,⽽Mathematica解不了。
数值计算:数值计算是Mathematica好,主要差别在于有时间差的微分⽅程的数值解只有Mathematica可以解,再者从Mathematica 9开始可以解概率微分⽅程
了,Maple还不⾏。总体来说Mathematica在这个⽅⾯⽐Maple强。
语⾔⽅⾯:由于Maple像C语⾔,Maple⽐Mathematica简单,Matlab移植也是Maple⽐Mathematica强多了。
线性代数:线性代数是Mathematica强,有些Maple不能做的Mathematica能做,再者Mathematics⽐Maple快。
计算代数⼏何:计算代数是Maple的超强项,强暴于Mathematica,特别是PolynomialIdeals操作等,微分多元环操作Mathematica是没有的,再者多项式计算也是Maple快于Mathematica。所以,代数计算是Maple⼤⼤超过mathematica。
GUI:总体内容Maple的GUI像LATEX⼀样漂亮,⽽Mathematica适应于编程GUI。
Maple和Mathematica都得⽤,微分,积分⽅程基本可以拜托Maple了(概率微分⽅程拜托Mathematical)。
积分拜托给Mathematica。
计算代数⼏何,GUI,Programming拜托给Maple。
线性代数,数值计算拜托给Matlab和Mathematica。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论