matlab mathmatica mupad 对比
- 格式:docx
- 大小:50.55 KB
- 文档页数:3
Matlab
MATLAB意为矩阵实验室(Matrix Laboratory),采用C语言编写。
MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括信号处理工具包、系统识别工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包等。
MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具。
MATLAB在输入方面也很方便,可以使用内部的Editor或者其他任何字符处理器,同时它还可以与Word结合在一起,直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。
优点:
1.线性代数和数值计算方面优势显著
2.向量化运算往往比同类软件更快
3.拥有超多工具箱,仿真,图像处理,信号处理,金融,统计,优化。
4.方便构建GUI
缺点:
1.不是原生支持符号计算(符号计算远不止是推导公式),新版的mupad内核还不错,但
是和Mathematica、Maple比有明显差距,不论是深度、广度和速度
2.递归特别慢,比Mathematica和Maple都慢
3.在一些数学领域相对薄弱,如数论,图论,离散数学等
4.工具箱之间的协作能力不是很好
5.缺省画图不美观,锯齿,系统函数命名不够规范
有关于Mupad
数值计算结果并不是MA TLAB命令行窗口所得的类似代码形式,而是规范数学格式。
并拥有一内建的程序语言,帮助文档以及文本操作,文本操作在一定程度上可以取代word。
是一个超级的工程数学计算器。
而在用MuPAD工具箱时,可以直接在命令条(Command Bar)窗口选择,所看及所得,所想即可用,而且生成的代码,图形,结果可以直接复制黏贴到MATLAB *。
m文档,word文档及与MA TLAB无缝连接的word文档M-book中,可以当做代码生成器。
Mathematica
Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。
它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符号计算核心不是Maple,而是自己开发的。
Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上。
Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。
Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。
Mathematica的符号功能是最强的,其运行构架也是最优的。
它的构架由核心系统与前端系统构成。
两个系统既合作又独立,这比Matlab的构架要合理。
Mathematica是专为研究人员开发的。
横向比较的话,Mathematica的符号能力比Maple强很多,Maple基本上是为中学生与大学生之学习研发的,不适合进行物理学与技术科学的运演;而Mathematica是最好的物理学科研的工具,Matlab是最好的技术科学数值求解的工具。
就做数学和应用数学的能力来说Mathematica不如Maple(并不是说其做不了,不怕麻烦编程序也能做,但是话说回来基本的东西都编程序的话,那么和Fortran之类的语言没什么区别了)。
另一个问题是Mathematica的内核不如Maple稳定(计算速度较Maple慢,我是
说纯粹的计算时间,不是输入命令的时间,目前的Maple的Java界面比较失败,让人感觉算Maple算得慢,其实不是这样的)。
Mathematica的诱人之处是与其它数值软件相比可以做符号运算,与Maple相比二次开发性好,工具包比Maple做的好。
此外,其自带的语言是面向对象的,很厉害,很灵活。
优点:
1.符号计算非常强大,可解的方程类型最广泛
2.非常强大和灵活的语言,完成相同的工作,和同类语言相比代码量往往最少
3.语言高度统一,支持相当多的编程范式,过程式、函数式、元编程,逻辑编程、基于规
则。
4.循环比较慢,可以用Compile加速,或使用Map、Table、Nest等代替循环
5.许多内置函数具备AAS机制(AutomaticAlgorithmSelection)
6.擅长高精度和大数计算
7.图形方面的函数很丰富,默认画图比Matlab和Maple更好看
8.界面美观,输入公式很方便
9.帮助文档很友好
缺点:
1.向量化的操作比Matlab稍慢,有时比Matlab更耗内存
2.代码调试不是很方便,但可以用Wolfram Workbench(基于Eclipse的IDE)改善
3.程序语言学习曲线陡峭,排除熟悉Scheme、Haskell等函数式语言或者作为高级计算器
使用的人(Mathematica的语法和常见的过程式程序语言有较大不同,虽然也可以作为过程式语言来用,但代码的和速度和优雅程度就大打折扣了)
Maple:
Maple是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。
Maple的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。
Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。
它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。
Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。
输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。
纯粹数学的巨人,如果想做数学和应用数学的能力(数值的除外)其是最好的选择。
但是此软件二次开发能力不好,仅把软件的发展目标放在数学上,不想向其它领域发展。
优点
1.Maple自带的语言较容易理解,就像用英语说话一样。
2.符号计算非常强大,和Mathematica相比各有千秋,
3.更具体点:一些多项式操作比Mathematica更快,
4.对于一些复杂的符号计算(比如几乎全是符号的定积分)也有一定速度优势,不过有时
返回的结果没有Mathematica给出的更周全,Mathematica会给出很详细的分类讨论;
5.Maple的“适应性”更好,有的问题Mathematica需要一定的预处理才能算的更快,得出
满意的结果
6.Maple和Mathematica都能求解一些对方求解不了的一些特殊微分方程
7.Maple可以带步骤求解一些问题,Mathematica需要第三方的Package或借助
WolframAlpha
8.上手较快,一些常见的操作无需命令,通过右键菜单就能完成
缺点:
1.化简能力,不等式求解,逻辑系统较Mathematica逊色一些
2.数值计算总体上比Matlab和Mathematica差一些
3.高精度和大数计算比Matlab强,比Mathematica差
4.统计方面有些薄弱
补充评价:数值计算方面,Matlab的优势已不明显,Mathematica5之前数值计算速度明显不及Matlab,之后很多内置函数的速度已和Matlab一个级别,Mathematica8开始JIT优化进步很大,按照过程式的风格在涉及循环、条件控制的时候经常能超过Matlab(Mathematica 用Compile,Matlab用Coder工具箱),即使和Matlab擅长的矩阵运算相比也未必落下风。
就用户量来说,Matlab最多,但在国内尤为突出。
而在英语世界,Mathematica远比国内流行,去stackexchange/stackoverflow就可以看出来;通过Google trends也看得出,Matlab 的热度中国最高,区域热度最高的Top10大多是发展中国家,而Mathematica区域热度最高的大多是发达国家。