SymPy 符号
Symbol 是 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模块中,所有的拉丁字母和希腊字母都被定义为符号。因此,使用这种方法比实例化符号对象更方便。
>>> from sympy.abc import x,y,z
然而,名称 C, O, S, I, N, E 和 Q 是预定义符号。此外,拥有超过一个字母的符号在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)