SymPy で数式を扱うには、まずシンボル(記号変数)を定義する必要がある。シンボルは数学の や に相当するものだ。
symbols 関数
symbols 関数でシンボルを定義する。
from sympy import symbols x = symbols('x') y = symbols('y')
複数のシンボルを一度に定義することも可能だ。
x, y, z = symbols('x y z')
カンマ区切りでも動作する。
a, b, c = symbols('a, b, c')
Symbol クラス
Symbol クラスを直接使う方法もある。
from sympy import Symbol x = Symbol('x')
symbols は内部で Symbol を呼び出しているため、機能的には同じだ。複数定義する場合は symbols のほうが簡潔に書ける。
式の作成
シンボルを定義したら、通常の演算子で式を組み立てられる。
from sympy import symbols x, y = symbols('x y') expr1 = x + y expr2 = x * y expr3 = x ** 2 + 2*x + 1
SymPy の関数を使った式も作れる。
from sympy import symbols, sin, cos, exp, log x = symbols('x') expr1 = sin(x) + cos(x) expr2 = exp(x) * log(x)
シンボルの属性
シンボルに属性を付けることで、計算結果が変わる場合がある。
from sympy import symbols, sqrt x = symbols('x', positive=True) sqrt(x**2) # x(正なので絶対値が不要) y = symbols('y') sqrt(y**2) # sqrt(y**2)(符号不明なので簡約化されない)
positive=True
シンボルが正の値であることを指定。平方根の簡約化などに影響する。
real=True
シンボルが実数であることを指定。複素数を含む計算で結果が変わる。
integer=True
シンボルが整数であることを指定。整数性を利用した簡約化が行われる。
属性を適切に設定すると、より簡潔な結果が得られることがある。