SymPy - 符号



符号是SymPy库中最重要的类。如前所述,符号计算是用符号完成的。SymPy变量是Symbols类的对象。

Symbol()函数的参数是一个包含符号的字符串,可以将其赋值给变量。

>>> from sympy import Symbol 
>>> x=Symbol('x') 
>>> y=Symbol('y') 
>>> expr=x**2+y**2 
>>> expr

以上代码片段给出的输出等效于以下表达式:

$x^2 + y^2$

一个符号可以包含多个字母。

>>> s=Symbol('side') 
>>> s**3

以上代码片段给出的输出等效于以下表达式:

$side^3$

SymPy还有一个Symbols()函数,可以一次定义多个符号。字符串包含用逗号或空格分隔的变量名。

>>> from sympy import symbols 
>>> x,y,z=symbols("x,y,z")

在SymPy的abc模块中,所有拉丁字母和希腊字母都定义为符号。因此,此方法比实例化Symbol对象更方便。

>>> from sympy.abc import x,y,z

但是,名称C、O、S、I、N、EQ是预定义的符号。此外,abc模块中未定义包含多个字母的符号,对于这些符号,应如上所示使用Symbol对象。abc模块定义了可以检测默认SymPy命名空间中定义的特殊名称。clash1包含单个字母,clash2包含多字母冲突符号。

>>> from sympy.abc import _clash1, _clash2 
>>> _clash1

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

{'C': C, 'O': O, 'Q': Q, 'N': N, 'I': I, 'E': E, 'S': S}

>>> _clash2

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

{'beta': beta, 'zeta': zeta, 'gamma': gamma, 'pi': pi}

可以使用类似于range()函数的语法定义索引符号。范围用冒号表示。范围的类型由冒号右侧的字符确定。如果itr是一个数字,则左侧的所有连续数字都被视为非负起始值。右侧的所有连续数字都被视为结束值加1。

>>> from sympy import symbols 
>>> symbols('a:5')

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

(a0, a1, a2, a3, a4)

>>> symbols('mark(1:4)')

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

(mark1, mark2, mark3)

广告