更新:2024/11/22

【SymPy・Python】マクローリン展開(Maclaurin expansion)を計算して検算する!

はるか
はるか
マクローリン展開って、0の周りで展開するテイラー展開の特別なケース。
ふゅか
ふゅか
そうよ!今回はSymPyを利用してマクローリン展開をしてみよう!

1. マクローリン展開とSymPy

マクローリン展開(Maclaurin expansion)は、関数を0の周りで展開するテイラー展開の特殊なケースです。SymPyを使用して、関数のマクローリン展開を簡単に求めることができます。以下に、SymPyを使用してマクローリン展開を計算する基本的な方法を示します。

テイラー展開については次のページで解説しています。

テイラーの定理とテイラー展開

2. マクローリン展開の基本的な使用例

sympyではsp.seriesメソッドを使用することで、マクローリン展開することができます。

2.1. seriesの構文

基本的にsp.series(関数,変数,0,n)のように引数を指定することでn次までマクローリン展開をすることができます。

series(expression, variable, 0, order)
  • expression: 展開する関数(例: , など)
  • variable: 使用する変数(例: )
  • 0: 展開の基準点。マクローリン展開では常に0。0以外にすると、テイラー展開になる。
  • order: 近似する項数(例: 5なら4次まで)

2.2.  \( e^x \) のマクローリン展開

まず、関数 \( e^x \) のマクローリン展開を計算します。

import sympy as sp

# 変数の定義
x = sp.symbols('x')

# 関数の定義
f = sp.exp(x)

# マクローリン展開の計算
maclaurin_series = sp.series(f, x, 0, 6)

print("e^x のマクローリン展開:")
print(maclaurin_series)

このコードは、関数 \( e^x \) のマクローリン展開を6次まで計算し、結果を表示します。出力は次のようになります。

2.3. \( \sin(x) \) のマクローリン展開

はるか
はるか
sin(x) のマクローリン展開はどうやって計算する?
ふゅか
ふゅか
同じように、関数を定義してからマクローリン展開を計算するのよ。

次に、関数 \( \sin(x) \) のマクローリン展開を計算します。

# 関数の定義
f = sp.sin(x)

# マクローリン展開の計算
maclaurin_series = sp.series(f, x, 0, 6)

print("sin(x) のマクローリン展開:")
print(maclaurin_series)

このコードは、関数 \( \sin(x) \) のマクローリン展開を6次まで計算し、結果を表示します。出力は次のようになります。

2.4. \( \cos(x) \) のマクローリン展開

次に、関数 \( \cos(x) \) のマクローリン展開を計算します。

# 関数の定義
f = sp.cos(x)

# マクローリン展開の計算
maclaurin_series = sp.series(f, x, 0, 6)

print("cos(x) のマクローリン展開:")
print(maclaurin_series)

このコードは、関数 \( \cos(x) \) のマクローリン展開を6次まで計算し、結果を表示します。出力は次のようになります。

2.5. log(1 + x) のマクローリン展開

SymPyを使用して任意の関数のマクローリン展開を計算することもできます。例えば、関数 \( \log(1 + x) \) のマクローリン展開を計算します。

# 関数の定義
f = sp.log(1 + x)

# マクローリン展開の計算
maclaurin_series = sp.series(f, x, 0, 6)

print("log(1 + x) のマクローリン展開:")
print(maclaurin_series)

このコードは、関数 \( \log(1 + x) \) のマクローリン展開を6次まで計算し、結果を表示します。出力は次のようになります。

2.6. 高次のマクローリン展開

高次のマクローリン展開も計算できます。例えば、関数 \( \tan^{-1}(x) \) のマクローリン展開を10次まで計算します。

# 関数の定義
f = sp.atan(x)

# マクローリン展開の計算
maclaurin_series = sp.series(f, x, 0, 10)

print("tan^(-1)(x) のマクローリン展開:")
print(maclaurin_series)

このコードは、関数 \( \tan^{-1}(x) \) のマクローリン展開を10次まで計算し、結果を表示します。出力は次のようになります。

このように、SymPyを使用すると、さまざまな関数のマクローリン展開を簡単に計算することができます。

ふゅか
ふゅか
これでtan⁻¹(x)のマクローリン展開も完了ね。SymPyを使うと、いろんな関数のマクローリン展開が簡単に計算できるのがわかったでしょ?
はるか
はるか
うん、SymPyは便利だね。
PR