更新:2024/09/06

SymPyを利用した積分方法・不定積分・定積分・例題について

はるか
はるか
SymPy、積分もできるんだよね。
ふゅか
ふゅか
そうそう!微分だけじゃなくて、積分もサポートしてるの♪ 特に不定積分や定積分、両方とも簡単に計算できるよ!

1. 積分の基本的な使用例

1.1. 不定積分

SymPyを利用して不定積分を行う例です。

import sympy as sp

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

# 関数の定義
f = x**2 + 3*x + 2

# 不定積分
F = sp.integrate(f, x)

print("不定積分:", F)

このコードは、関数 \( f(x) = x^2 + 3x + 2 \) の不定積分を計算し、結果を表示します。出力は次のようになります。

1.2. 定積分

はるか
はるか
定積分の例もあるんだ。
ふゅか
ふゅか
うん、定積分はある範囲内での面積を求めるのに使うの!例えば、\( x=0 \) から \( x=1 \) までの定積分を計算するなら、SymPyで簡単にできるわ♪

次に、定積分を計算する例です。

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

# 関数の定義
f = x**2 + 3*x + 2

# 定積分(例: x = 0 から x = 1 まで)
a, b = 0, 1
F_definite = sp.integrate(f, (x, a, b))

print("定積分:", F_definite)

このコードは、関数 \( f(x) = x^2 + 3x + 2 \) を \( x = 0 \) から \( x = 1 \) まで定積分し、結果を表示します。出力は次のようになります。

1.3. 多変数関数の積分

はるか
はるか
多変数関数、難しそう…
ふゅか
ふゅか
大丈夫だよ!SymPyでは、例えば \( g(x, y) = x^2 + y^2 + xy \) を \( x \) と \( y \) に分けて積分できるんだ。

SymPyは多変数関数の積分もサポートしています。

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

# 多変数関数の定義
g = x**2 + y**2 + x*y

# xに関する不定積分
G_x = sp.integrate(g, x)

# yに関する不定積分
G_y = sp.integrate(g, y)

print("G_x:", G_x)
print("G_y:", G_y)

このコードは、関数 \( g(x, y) = x^2 + y^2 + xy \) の \( x \) および \( y \) に関する不定積分を計算します。出力は次のようになります。

2. 例題

ふゅか
ふゅか
ここまで理解できた?次に進む前に、何か質問ある?
はるか
はるか
いや、大丈夫。
ふゅか
ふゅか
良かった!じゃあ、最後にいくつか練習問題をやってみようか。

2.1. 問題 1:

次の関数の定積分を計算してください。 \[ \int_0^1 (x^2 + 2x + 1) \, dx \]
import sympy as sp

# シンボルの定義
x = sp.symbols('x')

# 問題 1: ∫_0^1 (x^2 + 2x + 1) dx
integral_1 = sp.integrate(x**2 + 2*x + 1, (x, 0, 1))

\[ \int_0^1 (x^2 + 2x + 1) \, dx = \frac{7}{3} \]

2.2. 問題 2:

次の三角関数の定積分を計算してください。 \[ \int_0^{\pi/2} \sin(x) \, dx \]
# 問題 2: ∫_0^(π/2) sin(x) dx
integral_2 = sp.integrate(sp.sin(x), (x, 0, sp.pi/2))

\[ \int_0^{\frac{\pi}{2}} \sin(x) \, dx = 1 \]

2.3. 問題 3:

次の指数関数の定積分をSymPyを用いて計算してください。 \[ \int_1^e \frac{1}{x} \, dx \]
# 問題 3: ∫_1^e 1/x dx
e = sp.E # e定数の定義
integral_3 = sp.integrate(1/x, (x, 1, e))

\[ \int_1^e \frac{1}{x} \, dx = 1 \]

2.4. 問題 4:

次の不定積分をSymPyで計算し、答えに定数 \( C \) を加えてください。 \[ \int (x^3 - 4x + 6) \, dx \]
# 問題 4: ∫ (x^3 - 4x + 6) dx (不定積分)
integral_4 = sp.integrate(x**3 - 4*x + 6, x)

\[ \int (x^3 - 4x + 6) \, dx = \frac{x^4}{4} - 2x^2 + 6x + C \]

2.5. 問題 5:

次の関数の定積分をSymPyを利用して計算してください。 \[ \int_0^1 \frac{1}{1 + x^2} \, dx \]

# 問題 5: ∫_0^1 1/(1 + x^2) dx
integral_5 = sp.integrate(1/(1 + x**2), (x, 0, 1))

\[ \int_0^1 \frac{1}{1 + x^2} \, dx = \frac{\pi}{4} \]

PR