数学软件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 优缺点比较

数学软件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 优缺点比较

在科技和工程界上著名也比较流行的数学软件主要有四个, 它们分别为 MATLAB、MathCAD、Maple 和 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 系统

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 强大的符号计算能力, 使得它发生了一个质的飞跃。

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
  • 统计方面有些薄弱

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 的编辑功能, 可以很方便地编辑科技文章。

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值