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 也有一个 符号() 可以一次定义多个符号的函数。字符串包含用逗号或空格分隔的变量名称。

>>> 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、E and Q 是预定义的符号。此外,abc 模块中没有定义具有多个字母的符号,你应该使用上面的 Symbol 对象。 abc 模块定义了可以检测默认 SymPy 命名空间中的定义的特殊名称。冲突 1 包含单个字母,冲突 2 具有多字母冲突符号

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

上述代码段的输出如下:

(标记1,标记2,标记3)