PythonのSymPyで式の展開・部分分数分解・三角関数の加法定理・例題について



1. 式の展開
SymPyを使用して式の展開を行うことができます。展開は、因数分解された式や括弧で囲まれた式を簡単な形に展開する操作です。SymPyのexpand
メソッドを使用して、式を展開することができます。以下に基本的な展開の方法をいくつか示します。
1.1. 基本的な使用例
まず、SymPyのexpand
関数を使用して、単純な多項式を展開する方法を示します。
import sympy as sp
# 変数の定義
x = sp.symbols('x')
# 因数分解された式の定義
factored_f = (x - 2)*(x - 3)
# 展開
expanded_f = sp.expand(factored_f)
print("展開:", expanded_f)
このコードは、因数分解された多項式 \( (x - 2)(x - 3) \) を展開し、結果を表示します。出力は次のようになります。
1.2. 多変数の式の展開
多変数の式も展開することができます。以下にその例を示します。
# 変数の定義
x, y = sp.symbols('x y')
# 因数分解された多変数の式の定義
factored_g = (x - y)*(x + y)
# 展開
expanded_g = sp.expand(factored_g)
print("展開:", expanded_g)
このコードは、多変数の因数分解された式 \( (x - y)(x + y) \) を展開し、結果を表示します。出力は次のようになります。
同様に、\( (x + y)^3 \) を展開して計算してみます。
# 変数の定義
x, y = sp.symbols('x y')
# 複雑な因数分解された式の定義
factored_h = (x + y)**3
# 展開
expanded_h = sp.expand(factored_h)
print("展開:", expanded_h)
このコードは、複雑な因数分解された式 \( (x + y)^3 \) を展開し、結果を表示します。出力は次のようになります。
1.3. 分数の式の展開
分数の式も展開する(部分分数分解)ことができます。
# 変数の定義
x = sp.symbols('x')
# 分数式の定義
factored_f = (x - 1)**2 / (x + 1)
# 展開
expanded_f = sp.expand(factored_f)
print("展開:", expanded_f)
このコードは、分数の式 \( \frac{(x - 1)^2}{x + 1} \) を展開し、結果を表示します。出力は次のようになります。
1.4. 三角関数の展開
SymPyは三角関数の展開(加法定理)もサポートしています。
# 変数の定義
x = sp.symbols('x')
# 三角関数の定義
trig_expr = sp.sin(x + y)
# 展開
expanded_trig = sp.expand(trig_expr, trig=True)
print("展開:", expanded_trig)
このコードは、三角関数 \( \sin(x + y) \) を展開し、結果を表示します。出力は次のようになります。


2. 例題
Sympyのexpand
関数は、代数式の展開を行うために使用されます。ここでは、expand
を使用して多項式の展開や三角関数の展開を行う例題を作成します。
2.1. 例題 1: 多項式の展開
次の式をSympyのexpand
を使って展開してください。
\[ (x + 2)(x - 3) \]
import sympy as sp
# 変数の定義
x = sp.symbols('x')
# 式の定義
expr = (x + 2) * (x - 3)
# 式の展開
expanded_expr = sp.expand(expr)
expanded_expr
出力:
2.2. 例題 2: 三角関数を含む式の展開
次の式を展開してください。
\[ ((\sin x) ^4 + y)^3 \]
import sympy as sp
# 変数の定義
x, y = sp.symbols('x y')
# 式の定義
expr = (sp.sin(x) + y)**3
# 式の展開
expanded_expr = sp.expand(expr)
expanded_expr
出力:

2.3. 例題 3: 三角関数の展開
次の三角関数の式を加法定理を利用して展開してください。
\[ \cos(x^2 + y+ z^2) \]
解答:
import sympy as sp
# 変数の定義
x, y, z = sp.symbols('x y z')
# 式の定義
expr = sp.cos(x**2 + y+z**2)
# 式の展開
expanded_expr = sp.expand(expr,trig=True)
expanded_expr
出力: