UNIX® 有许多工具可供使用,它们可以满足您的数学启蒙要求。其中有些工具是内置的;大多数则是下载保存的。本文将向您展示 UNIX 工作站上通往数学殿堂之路。
谈到数学,并不缺乏相关的计算机软件包。数学是程序员和分析人员的流行主题,从而导致了大量不同的工具可供选择。
数学是科学之王。 数学工作站的商业使用群体非常庞大:从基础工程到设计创意,从基因治疗到天体导航,数学统治着整个世界。帮助人们解决他们所选领域的数学问题的计算机程序 并不缺乏。本文的剩余部分将描述几个商业和开放源代码系统,它们在您所从事的领域可能证明是有价值的。所描述的所有系统都有专用于它们的网页,并包括在本 文的参考资料部分。
UNIX 工作站中存在的最常用数学工具以计算器和更高级的电子表格程序(如 GNU Calc)的形式出现。算术规则非常简单,所有这些工具都忠实地遵守它们。几乎每个全功能的窗口管理工具包都至少突出体现了一个计算器,有时还有多个版本的计算器。
GNU 项目还提供了可供下载的计算工具。其中包括 GNU Calc、GNU Plot、ATLAS、Choose 和 4,000 多个其他面向数学的程序。请参见参考资料部分以获得指向完整列表的链接。
正 如您在学校中级课程中所学习到的,数学所涉及的远不只是对数字的简单运算。数字占位符的符号表示形式——诸如 x、y 和 z 等变量、笛卡儿坐标、因素分解原理以及积分和微分世界——是一个丰富和多样性领域的一部分,该领域要求提供同样丰富和多样性的计算机资源。为这些任务而设 计的程序领域的最常用名称是“计算机代数系统”(Computer Algebraic Systems,CAS)。同时存在商业和开放源代码 CAS 程序可供使用,下面将描述其中一些最常用程序。
但是,能够操作符号在大多数情况下还不足够。与原始坐标点值清单所能提供的信息相比,图形可以告诉我们更多信息。可用于计算机代数的大多数系统还突出体现了某种绘图机制,允许您可视化所标绘的数据。
可以使用许多计算机程序来帮助您解决数字和符号数学问题,但是还有些程序可以帮助您学习数学。MetaMath 系列程序就是一个理想的起点(请参见参考资料部分)。对于初学者或通常认为自己无意从事该领域的读者,本文描述的数学和程序也是引人入胜的。只需下载和试验其中一些程序就可能会激发您成为某方面的专家,从而比任何计算机游戏都更能充实您的生活。
下面是一些最常用商业 CAS 系统的简要概述。如果您对其中任何系统感兴趣,可以通过浏览它们的网站来找到更多信息,参考资料部分列出了所有这些网站。
Derive。Software Warehouse 是创建旨在运行于早期工作站计算机上的数学软件的最早先行者之一。该公司设立于 1979,当时 PC 革命刚起步,计算机代数系统还仅在使用分时终端的大型计算机系统上可用,该公司设计了一款名为 muMATH 的程序,以便 PC 用户能够超越简单的计算器,从而在有限的小型计算机硬件上处理符号数学问题。后来 muMATH 系统停止了使用,并被远远更高级的 Derive 系统所取代。Derive 是使用 Lisp 语言编写的,Lisp 是一种公共编程语言,尤其适合基于规则的处理,该处理是将一个抽象数学表达式变换为另一个表达式所必需的。
Fermat。这 个专有共享软件计算机代数系统是为纪念已故最著名数学家之一 Pierre de Fermat 而命名的。它在各种各样的计算机系统上运行,尤其擅长于涉及任意长度整数和小数、图、矩阵和多项式代数的算术。Fermat 运行得非常快。据该公司的广告宣称,如果您需要计算 Q 上的 400 x 400 矩阵的特征多项式,那么您就需要 Fermat。
Maple。 Maple 数学软件包由 Waterloo Maple Inc. (Maplesoft) 开发并销售,最初由加拿大安大略省沃特卢的沃特卢大学的 Symbolic Computation Group 于 1981 年创建。Maple 是一款给人印象深刻的软件包,尤其擅长于三维绘图和以课本形式显示数学公式。它在一个动态工具中组合了界面和编程语言,可同时用于数字和符号问题的解答。 许多大学已将 Maple 作为教授数学概念的标准工具;该公司提供此软件的学生版和专业版。
MathCAD。 PTC 是一家工程设施公司,于 2006 年收购了 MathCAD 的股权。MathCAD 在简单性方面与 Maple 类似,具有允许工程师在屏幕上输入和显示各种公式以及图形和文本的界面。MathCAD 组合了一个庞大的功能库,包括微积分、拉普拉斯变换、贝塞尔函数、统计和财务函数。
Mathematica。 Stephen Wolfram 的公司 Wolfram Research 于 20 世纪 80 年代晚期开发了 Mathematica,并重点强调了该工具的编程方面。它提供了过程式和函数式编程的灵活组合,并引入了自动重新编写公式的非确定性方法。它是一个强大 的软件包,带有一个大型的多样性功能库,并提供了解决问题的独特多范例方法。
Reduce。 Reduce 是另一个通用计算机代数系统,是由许多科学家以协作方式开发完成的。该系统于 20 世纪 60 年代由 Anthony Hearn 创建。Reduce 现已成为科学界许多人的最爱。它以收取成本回收费用的方式进行分发,并且分发版中通常包括源代码。
本部分研究开放源代码的世界。下面是一些最常用的开放源代码 CAS 系统的简要概述,这些系统的源代码在常用开放源代码许可证之一下授予许可。如果您对其中任何系统感兴趣,可以通过浏览它们的网站来找到更多信息,参考资料部分列出了所有这些网站。
Axiom。这 个称为 Axiom 的开放源代码计算机代数系统是在修改后的 Berkeley Software Distribution (BSD) 许可证下发布的,它对于探索不同的数学算法非常有用。其突出特性是强类型的数学对象层次结构和对对象进行分组和控制的常用编程数据结构。Axiom 是使用自定义 A# 编程语言来编写的,对于有意探索算法设计的人来说是值得的工具。
CoCoA。 Computations in Commutative Algebra (CoCoA) 是另一个免费计算机代数系统,用于处理超大型整数、有理数和多项式。它为自定义 C++ 程序提供了有用的数学功能库。
Dcas。计 算机代数领域几乎为数学研究的每个方面提供了丰富多彩的方法。存在许多在程序中表示数学对象的方法,而 Martin Johansen 的 Dcas 系统则证明了这些方法可以如何的千差万别。Dcas 突出体现了一种使用标识作为规则来操作代数表达式的方法。Dcas 非常值得一试;您可能会发现它是处理您所在领域问题的理想方法。
DoCon。 称作 Haskell 的函数式编程语言展示了一个用于符号数学的程序,名为 DoCon。按照该公司网站(请参见参考资料部分)上的文档,DoCon 实现了线性代数、多项式最大公约数、因素分解、Grobner 基,并支持域上的结构(constructions on domains)——分数、多项式、留数环,等等。它是开放源代码的,可能就是用于您正打算要编写的应用程序的恰当工具。
Eigenmath。Eigenmath 是由 George 使用 C 语言来编写的,是一个简单易用的计算机代数系统。由于有源代码可用,它成了刚开始探索计算机代数系统的学生的有用工具。
GiNaC。 GiNaC 与大多数其他计算机代数系统不同,它没有提供用于输入表达式的图形用户界面 (GUI),而是选择让用户以本机 C++(其实现语言)来输入表达式。它使用运算符重载这种本机 C++ 面向对象技术来实现代数语法。在这个由许多陌生名称所主宰的领域,它还具有一个比较陌生的名称!
Jscience。Jscience 软件包是一个强大的基于 Java™ 的物理和数学函数库,它通过提供单个用于所有开发的体系结构,旨在帮助跨不同科学领域构建协同作用。至少可以这样说,这是个非常崇高的目标,但是也不排除该公司能够实现该目标。
Macaulay。Macaulay 计算机代数系统对于多项式计算非常有用,并重点强调 Grobner 基计算。它旨在解决具有简单语法并且已描述为代数机器语言 (algebraic machine language) 的问题。
Magma. Magma 在成本回收许可证下进行分发,是一个旨在解决代数问题的高性能系统。它突出体现了用于群论的功能以及群数据库、用于整数和多项式算术的渐近快速算法和几个用于高级运算的前沿库。
Mathomatic。此程序没有内置的编程功能,旨在用作简单的符号数学计算器。它可以在任何系统上使用 C 编译器、标准 C 库和 UNIX make
实用程序进行编译。
Maxima。与 大多数计算机代数系统一样,Maxima 是使用 Lisp 语言编写的。Maxima 基于商业软件包 Macsyma,并包括一种完整的 ALGOL 风格的编程语言,对于教授计算机代数方面的编程概念最有用。它提供了任意精度的算术,使得整数和有理数的大小仅受到系统可用内存的限制。
PARI/GP。PARI 是快速运行的符号函数 C 语言库,用于因素分解、代数数论、椭圆曲线、矩阵和超越函数。GP 是交互式的 Shell,用于提供对 PARI 函数的访问。通过使用 gp2c 编译器,可以为问题域创建快速运行的程序。
SAGE。Software for Algebra and Geometry Experimentation (SAGE) 是使用 Python 语言编写的,并使用交互式的 Python Shell 作为其用户界面。SAGE 的独特之处在于,它能够用作其他各种计算机代数系统的集成器,从而允许用户利用不同软件包的各自强项。
SINGULAR。对于交换代数、代数几何和奇点理论,SINGULAR 计算机代数系统在软件包内核以及共享库中提供了大量的算法。它还包括详尽的文档。SINGULAR 是个值得一试的系统,如果您对奇点理论感兴趣则尤其如此。
Yacas。Yet Another Computer Algebra System (Yacas) 具有漂亮的用户界面和开放源代码软件的所有其他强项。该系统的输入可以是 ASCII 或 OpenMath;该程序还具有批处理模式。
数学是科学之王,帮助解决您在特定领域所面对的数学问题的工具并不缺乏。无论您是处理保险单定价的保险精算师,还是确定飞向冥王星的宇宙飞船最优路线的天体导航员,都有相关程序可帮助回答您的问题。