几大数学软件各有什么优缺点

如题所述

曾经很喜欢折腾,至少用过有40多个数学软件,包括几乎所有出名的和一些不出名的,大型的中型的。其中3M(Matlab、Mathematica、Maple)用的较多,一些浅见:

Matlab
线性代数和数值计算方面优势显著,
向量化运算往往比同类软件更快,
拥有超多工具箱,仿真,图像处理,信号处理,金融,统计,优化......
程序语言比较易学,编辑和调试环境不错
方便构建GUI
不是原生支持符号计算(符号计算远不止是推导公式),新版的mupad内核还不错,但是和Mathematica、Maple比有明显差距,不论是深度、广度和速度
递归特别慢,比Mathematica和Maple以及常见的脚本语言都慢
在一些数学领域相对薄弱,如数论,图论,离散数学等
高精度和大数计算比较慢(如精确计算100万的阶乘或π的前500万位)
工具箱之间的协作能力不是很好
界面不太好看(新版R2013a的Ribbon界面不错)
缺省画图不美观,锯齿,系统函数命名不够规范

Mathematica
符号计算非常强大,可解的方程类型最广泛
非常强大和灵活的语言,完成相同的工作,和同类语言相比代码量往往最少
语言高度统一,支持相当多的编程范式,过程式、函数式、元编程,逻辑编程、基于规则...
循环比较慢,可以用Compile加速,或使用Map、Table、Nest等代替循环
许多内置函数具备AAS机制(AutomaticAlgorithmSelection)
擅长高精度和大数计算,
图形方面的函数很丰富,默认画图比Matlab和Maple更好看
界面美观,输入公式很方便
帮助文档很友好
价格较高,比matlab更贵(Matlab的价格取决于你要哪些工具箱)
向量化的操作比Matlab稍慢,有时比Matlab更耗内存
代码调试不是很方便,但可以用Wolfram Workbench(基于Eclipse的IDE)改善
程序语言学习曲线陡峭,排除熟悉Scheme、Haskell等函数式语言或者作为高级计算器使用的人
(Mathematica的语法和常见的过程式程序语言有较大不同,虽然也可以作为过程式语言来用,但代码的和速度和优雅程度就大打折扣了)

Maple:
符号计算非常强大,和Mathematica相比各有千秋
许多多项式操作比Mathematica更快
一些符号积分Maple也有速度优势(特别是不定积分),不过有时返回的结果没有Mathematica给出的更严谨、鲁棒性好,能算的积分类型没有Mathematica多
Maple的“适应性”更好,有的问题Mathematica需要一定的预处理才能算的更快,得出满意的结果
Maple更擅长(偏)微分方程,(其实Maple和Mathematica都能解一些对方解不了的一些特殊微分方程)
可以带步骤求解一些问题,Mathematica需要第三方的Package或借助WolframAlpha
上手较快,一些常见的操作无需命令,通过右键菜单就能完成
界面有点卡(基于Java swing),经典界面流畅但是很土
自带的代数方面的package比较丰富
化简能力,不等式求解,逻辑系统较Mathematica逊色一些
数值计算总体上比Matlab和Mathematica差一些
高精度和大数计算方面强于Matlab弱于Mathematica
统计方面有些薄弱
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答