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