SymPy - 符号计算


符号计算是指用于操作数学表达式和其他数学对象的算法的开发。符号计算将数学与计算机科学相结合,利用数学符号来求解数学表达式。计算机代数系统 (CAS)(例如 SymPy)使用传统手动方法中使用的相同符号精确(而不是近似)计算代数表达式。例如,我们使用 Python 的数学模块计算数字的平方根,如下所示 -

>>> import math 
>>> print (math.sqrt(25), math.sqrt(7))

上述代码片段的输出如下 -

5.0 2.6457513110645907

正如您所看到的,7 的平方根是近似计算的。但在 SymPy 中,非完美平方数的平方根默认不计算,如下所示 -

>>> import sympy 
>>> print (sympy.sqrt(7))

上述代码片段的输出如下 -

开方(7)

可以使用下面的代码片段以符号方式简化和显示表达式结果 -

>>> import math
>>> print (math.sqrt(12))

上述代码片段的输出如下 -

3.4641016151377544

您需要使用下面的代码片段来使用 sympy 执行相同的操作 -

##sympy output 
>>> print (sympy.sqrt(12))

其输出如下 -

2*平方(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)、物理、统计、组合、数论、几何、逻辑等。