简述
符号计算是指开发用于操作数学表达式和其他数学对象的算法。符号计算将数学与计算机科学相结合,使用数学符号求解数学表达式。诸如 SymPy 之类的计算机代数系统 (CAS) 使用与传统手动方法中使用的相同符号来精确(而不是近似)评估代数表达式。例如,我们使用 Python 的数学模块计算数字的平方根,如下所示 -
>>> import math
>>> print (math.sqrt(25), math.sqrt(7))
上述代码片段的输出如下 -
5.0 2.6457513110645907
如您所见,大约计算出 7 的平方根。但是在 SymPy 中,不是完美平方的数字的平方根默认情况下不计算,如下所示 -
>>> import sympy
>>> print (sympy.sqrt(7))
上述代码片段的输出如下 -
sqrt(7)
可以使用下面的代码片段象征性地简化和显示表达式的结果 -
>>> import math
>>> print (math.sqrt(12))
上述代码片段的输出如下 -
3.4641016151377544
您需要使用以下代码片段使用 sympy 执行相同的操作 -
##sympy output
>>> print (sympy.sqrt(12))
其输出如下 -
2*sqrt(3)
SymPy 代码在 Jupyter notebook 中运行时,利用 MathJax 库以 LatEx 形式呈现数学符号。它显示在下面的代码片段中 -
>>> from sympy import *
>>> x=Symbol ('x')
>>> expr = integrate(x**x, x)
>>> expr
在 python shell 中执行上述命令时,将生成以下输出 -
这相当于
$$\int \mathrm{x}^{x}\,\mathrm{d}x$$
非完美正方形的平方根可以用 Latex 表示,使用传统符号如下 -
>>> from sympy import *
>>> x=7
>>> sqrt(x)
上述代码片段的输出如下 -
$$\sqrt7$$
SymPy 等符号计算系统以符号方式进行各种计算(如导数、积分和极限、求解方程、处理矩阵)。SymPy 包有不同的模块,支持绘图、打印(如 LATEX)、物理、统计、组合、数论、几何、逻辑等。