数学软件是科学软件的分支,也常常作为其他科学软件的底层基础。数学软件通常由人机交互界面、核心算法程序库和各种功能模块组成。
数学软件种类繁多,大致可分为如下4种:①知识处理软件。用于制作数学文档,建立数学数据库,存储、处理和显示数学知识。TeX/LaTeX(电子排版软件)和MathML(数学文本处理语言)是其中的典型代表。②数值计算软件。用于进行数值代数计算、代数与微分方程的数值求解等数值计算。包括Matlab(商业软件)和Scilab(开源自由软件)等通用数值计算软件和侧重于专门领域的软件,如SAS(商业软件)、R(开源自由软件)等统计分析软件;Gams(商业软件)、Lingo(商业软件)等运筹优化软件;CGAL(开源自由软件)等离散几何计算软件。③计算机代数系统,又称符号计算软件。用于符号和代数计算、数学推理和化简等。Maple(商业软件)和Mathematica(商业软件)是其中的典型代表。④绘图与可视化软件。用于几何作图、几何造型、几何对象的可视化等。AutoCAD和JavaView是其中的典型代表。
数学软件一般都提供可通过鼠标、键盘或触控等方式进行操作的人机交互界面,主要包括以下3类:①文本编辑。通过键盘输入数学符号、图形、图表等编码后的文本,经过编译和运行后得到的结果直接返回到当前界面中,如WinEdt GUI、Maple Worksheet、Mathematica Notebook等。②按钮点击。通过鼠标点击按钮得到相应数学符号的编码文本(如MathML),一般还会以所见即所得的方式将数学符号呈现出来,如MathType、iMathEQ、MathMagic等数学公式编辑器以及LyX、Mathcha等数学文档编辑器。③手写识别。通过鼠标、触控笔或手指在软件界面上书写数学表达式,经过专门的程序识别得到相应的数学编码,如MathBrush、E-chalk、MathPad等。
大部分数学软件都具有图形图像绘制、函数动态模拟等可视化功能,并可以进行交互处理,使抽象的数学内容以直观生动的方式呈现出来。