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