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)

廣告