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