SymPy - 符号计算

符号计算是指开发用于处理数学表达式和其他数学对象的算法。 符号计算将数学与计算机科学相结合,使用数学符号来求解数学表达式。 诸如 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 中执行上述命令,将生成以下输出 −

Integral(x**x, x)

相当于

$\int \mathrm{x}^{x}\,\mathrm{d}x$

非完全平方的平方根可以用 Latex 表示如下,使用传统符号 −

>>> from sympy import * 
>>> x=7 
>>> sqrt(x)

以上代码片段的输出如下 −

$\sqrt7$

SymPy 等符号计算系统以符号方式执行各种计算(例如导数、积分和极限、求解方程、处理矩阵)。 SymPy 包有不同的模块,支持绘图、打印(如 LATEX)、物理、统计、组合学、数论、几何、逻辑等。