SymPy-シンボル
SymbolsymPyライブラリで最も重要なクラスです。前述のように、記号計算は記号を使用して行われます。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, 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)