[파이썬][Scipy] Integration (적분) 함수 예제

scipy.integrate 모듈은 수치적 적분을 수행하기 위한 다양한 함수를 제공합니다. 아래 예제에서는 scipy.integrate 모듈을 사용하여 함수를 적분하는 방법을 보여줍니다.

먼저, 필요한 모듈을 가져옵니다:

mport numpy as np
from scipy import integrate

예제 1: 단일 변수 함수의 정적분 (Definite Integral)

단일 변수 함수의 정적분을 수행하는 예제입니다.

# 적분할 함수 정의
def f(x):
    return x**2

# 정적분 수행 (0에서 1까지의 정적분)
result, _ = integrate.quad(f, 0, 1)
print("부정적분 결과:", result)

예제 2: 이중 변수 함수의 이중적분 (Double Integral)

이중 변수 함수의 이중적분을 수행하는 예제입니다.

# 이중 적분할 함수 정의
def g(x, y):
    return x**2 + y**2

# 이중적분 수행 (x: 0에서 1, y: 0에서 1)
result, _ = integrate.dblquad(g, 0, 1, lambda x: 0, lambda x: 1)
print("이중적분 결과:", result)

예제 3: 미분방정식의 수치해법

미분방정식의 초기값 문제를 수치적으로 해결하는 예제입니다.

from scipy.integrate import solve_ivp

# 미분방정식 정의
def odefunc(t, y):
    return -2 * t * y

# 초기 조건 설정
t0 = 0
t_final = 4
y0 = 1
t_eval = np.linspace(t0, t_final, 100)

# 미분방정식 수치해법 수행
solution = solve_ivp(odefunc, [t0, t_final], [y0], t_eval=t_eval)

# 결과 시각화
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 6))
plt.plot(solution.t, solution.y[0], label='y(t)')
plt.xlabel('Time (t)')
plt.ylabel('y(t)')
plt.title('Solution of Ordinary Differential Equation')
plt.legend()
plt.grid(True)
plt.show()

이러한 예제에서는 단일 변수 및 이중 변수 함수의 정적분, 미분방정식의 수치해법을 수행하는 방법을 보여줍니다. scipy.integrate 모듈을 사용하면 다양한 적분 및 미분방정식 문제를 다룰 수 있습니다.