计算机代数系统
外观
计算机代数系统(英文:Computer Algebra System,简称 CAS)是进行符号运算的软件。这种系统的要件是数学表示式的符号运算。
表示式的类别
表示式的例子包括:
符号运算
以下是几种典型的符号运算:
- 表示式的简化
- 对表示式求值
- 表示式的变形:展开、积、幂次、部分分式表法、将三角函数表为指数函数等等。
- 对单变元或多变元的微分。
- 带条件或不带条件的整体最佳化。
- 部分或完整的因式分解。
- 求解线性方程组或一些非线性方程式。
- 某类微分方程或差分方程的符号解。
- 求某些函数的极限值。
- 一些函数的定积分或不定基分,包括多变元的情形。
- 泰勒展开式、罗朗展开式与 Puiseux 展开式
- 某些函数的无穷级数展开式。
- 对某些级数求和。
- 矩阵运算。
- 数学式的显示,通常借着 TeX 之类的系统达成。
其它功能
通常计算机代数系统还能进行一些数值运算:
- 函数的确切求值。
- 高精度求值,例如计算 到小数点后 位。
- 线性代数的数值运算。
- 描绘二维或三维的函数图形。
在数值运算方面,计算机代数系统的速度通常较 Matlab、GNU Octave或C语言中以同等方式实作的程式慢。这是因为计算机系统几乎总是对符号表示式运算,故不能充分利用CPU的既有指令。
许多计算机代数系统内建高阶编程语言,以供使用者扩充功能,或设置个人的操作模式。
历史
马丁纽斯·韦尔特曼 (Martinus J. G. Veltman) 是这个领域的先驱,他首先考虑了在高能物理中的应用。他在1963年设计的第一个程式叫 Schoonship (荷兰文,意指“干净的船”)。
最早受到欢迎的系统是 Reduce、Derive 与 Macsyma,现在仍然可取得。Macsyma 的一个GNU通用公共许可证发行的版本叫作 Maxima,现在仍有维护。市场的龙头为 Maple 与 Mathematica,两者被数学家、科学家及工程师们广泛采用,此外还有 MuPAD 与 MathCad。
另有一些系统着眼于特定的应用领域,这些系统通常在学院中被设计、发展及维护,例如交换代数系统 Macaulay 2 或数论系统 PARI/GP。
几种计算机代数系统
文献
- Richard J. Fateman. Essays in algebraic simplification. Technical report MIT-LCS-TR-095, 1972.