PythonのSymPyの因数分解・factor()・例題について



1. Sympyで因数分解
SymPyを使用して因数分解を行うことも可能です。SymPyのfactor
メソッドを使用すると、多項式や式の因数分解を簡単に行うことができます。以下に、基本的な因数分解の方法をいくつか示します。

1.1. 基本的な使用例
まず、SymPyのfactor
メソッドを使用して、単純な多項式の因数分解を行う方法を示します。
import sympy as sp
# 変数の定義
x = sp.symbols('x')
# 多項式の定義
f = x**2 - 5*x + 6
# 因数分解
factored_f = sp.factor(f)
print("因数分解:", factored_f)
このコードは、多項式 \( f(x) = x^2 - 5x + 6 \) を因数分解し、結果を表示します。出力は次のようになります。
1.2. 多変数の因数分解


多変数の多項式も因数分解することができます。
# 変数の定義
x, y = sp.symbols('x y')
# 多変数の多項式の定義
g = x**2 - y**2
# 因数分解
factored_g = sp.factor(g)
print("因数分解:", factored_g)
このコードは、多変数の多項式 \( g(x, y) = x^2 - y^2 \) を因数分解し、結果を表示します。出力は次のようになります。
1.3. より複雑な式の因数分解
SymPyはより複雑な式の因数分解もサポートしています。以下にその例を示します:
# 変数の定義
x, y = sp.symbols('x y')
# 複雑な式の定義
h = x**3 + 3*x**2*y + 3*x*y**2 + y**3
# 因数分解
factored_h = sp.factor(h)
print("因数分解:", factored_h)
このコードは、複雑な多項式 \( h(x, y) = x^3 + 3x^2y + 3xy^2 + y^3 \) を因数分解し、結果を表示します。出力は次のようになります。
1.4. 分数を含む式の因数分解
分数を含む因数分解もすることができます。
# 変数の定義
x = sp.symbols('x')
# 分数式の定義
f = (x**3 - 3*x**2 + 3*x - 1) / (x - 1)
# 因数分解
factored_f = sp.factor(f)
print("因数分解:", factored_f)
このコードは、分数式 \( f(x) = \frac{x^3 - 3x^2 + 3x - 1}{x - 1} \) を因数分解し、結果を表示します。出力は次のようになります。
2. 例題
2.1. 例題 1: 3次の多項式の因数分解
\[ f(x) = x^3 - 6x^2 + 11x - 6 \]
Sympyを使用して、この多項式を因数分解します。
from sympy import symbols, factor
# 変数を定義
x = symbols('x')
# 多項式を定義
polynomial = x**3 - 6*x**2 + 11*x - 6
# 因数分解
factored_polynomial = factor(polynomial)
factored_polynomial
因数分解された形は次の通りです。
2.2. 例題 2: 4次の多項式の因数分解
\[ g(x) = x^4 - 5x^3 + 6x^2 + 4x - 8 \]
Sympyを使ってこの多項式を因数分解します。
# 多項式を定義
polynomial2 = x**4 - 5*x**3 + 6*x**2 + 4*x - 8
# 因数分解
factored_polynomial2 = factor(polynomial2)
factored_polynomial2
因数分解された形は次の通りです。
2.3. 例題 3: 三角関数や指数関数を含む多項式の因数分解
\[ h(x, y) = e^x \sin^2 x - 4e^{2x}\sin x \]
Sympyで因数分解を行います。
import sympy as sp
# Define variables
x, y = sp.symbols('x y')
# Define the polynomial
h = sp.exp(x) * sp.sin(x)**2 - 4 * sp.exp(2*x) * sp.sin(x)
# Factor the polynomial
factored_h = sp.factor(h)
factored_h
因数分解された形は次の通りです。