SymPy - 符号计算



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

>>> 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)

在 Jupyter Notebook 中运行的 SymPy 代码使用 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)、物理、统计、组合数学、数论、几何、逻辑等。

广告