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

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

某种程度上这几个软件都用过。但是,MathCAD貌似我只用过几天,而Maple用过几个月吧,这都是约5年前的事情。现在主要用MATLAB和Mathematica。所以以下我讨论一下后两者,简称ML和MM吧。

首先,ML是一种数值计算程序,而MM(及Maple等)是一种符号计算程序。这样来说,两类程序恐怕可比性并不很高。

然后,ML的语言是结构化的、解释性的,MM的语言有点像lisp(看了MM全书以后感触挺深)。这应该是二者的本质区别。相应的优点、缺点,也几乎就是结构化语言和函数型语言的优点、缺点。顺带一提,ML语言为解释性的,其计算效率并不高。

最后,从应用领域的角度看,二者都可谓包罗万象。控制仿真、图像处理、信号分析等等都是ML的强项。它的优势在于工具包非常全面(这弥补了计算效率上的劣势)。MM的我研究得不是很深,但我大略扫过它的文档,感觉功能的数量不亚于ML(对了,MM的数据可视化强于ML;我做过MCM,当时特意用MM显示数据)。

我现在用ML,主要做些数据处理;用MM,主要推些公式。

要补充的是,ML也带有符号计算的功能,但是借用的MuPAD内核(以前貌似是Maple的);而MM也能作数值计算,而且能计算到任意精确的程度。但我认为这些都不是两者的核心功能。参考linux的观点,各个软件将某一方面的能力提升到极致,最后组合起来,可以非常强大。

楼上提到MATLAB脚本字体之类的问题,其实完全可以用其他编辑器编辑脚本,然后用ML调用脚本去跑。ML自带编辑器,对我来说是很奇怪的事情,呵呵。