多項式の展開
SymPy で多項式 A と多項式 B の積をつくると、(多項式 A) * (多項式 B) という形で返ってきます。
# SYMPY_EXPAND
# In[1]
# sympyをインポート
import sympy
# 文字を定義
sympy.var('a b')
# 多項式を定義
f1 = a + 5 * b + 2
f2 = a + 2 * b + 5
# 多項式の積
g = f1 * f2
print(g)
# (a + 2*b + 5)*(a + 5*b + 2)
SymPy で 多項式を展開 したいときは sympy.expand() を使います。
# In[2]
# 多項式の展開
g = sympy.expand(f1 * f2)
print("f1 × f2 =", g)
# f1 × f2 = a**2 + 7*a*b + 7*a + 10*b**2 + 29*b + 10
因数分解
SymPy で 因数分解 するときは sympy.factor() を使います。一例として、$a^2+5a+6$ を因数分解してみましょう。
# SYMPY_FACTORIZATION
# In[1]
import sympy
# 記号を定義
sympy.var('a')
# 多項式を定義
f = a ** 2 + 5 * a + 6
# fを因数分解
print(sympy.factor(f))
# (a + 2)*(a + 3)
次は $a^2+7ab+4ac+10b^2+11bc+3c^2$ を因数分解してみます。
# In[2]
# 記号を定義
sympy.var('a b c')
# 多項式を定義
f = a**2 + 7*a*b + 4*a*c + 10*b**2 + 11 * b*c + 3*c**2
# fを因数分解
print(sympy.factor(f))
# (a + 2*b + c)*(a + 5*b + 3*c)
コメントを書く