[파이썬][Scipy] scipy.integrate 예제

scipy.integrate 모듈은 수치적으로 함수를 적분하는데 사용됩니다. 아래 예제에서는 scipy.integrate 모듈을 사용하여 함수를 적분하는 방법을 보여줍니다.

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

mport numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad

예제 1: 정적분 (Definite Integral)

이 예제에서는 정적분을 수행하여 함수의 부정적분 값을 계산합니다.

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

# 정적분 수행
result, _ = quad(f, 0, 2)  # 함수 f를 0에서 2까지 적분
print("부정적분 결과:", result)

이 코드는 함수 f(x)를 정적분하여 부정적분 값 (면적)을 계산합니다.

예제 2: 미적분방정식 풀이 (Ordinary Differential Equation, ODE)

이 예제에서는 미적분방정식을 풀어 함수의 변화를 시각화합니다.

from scipy.integrate import solve_ivp

# 미분방정식 정의
def odefunc(t, y):
    return [y[1], -y[0]]

# 초기 조건 설정
initial_conditions = [1.0, 0.0]

# 시간 범위 설정
t_span = (0, 10)

# 미분방정식 풀이
solution = solve_ivp(odefunc, t_span, initial_conditions, t_eval=np.linspace(0, 10, 100))

# 결과 시각화
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 모듈은 다양한 적분 및 미분방정식 문제를 다룰 수 있으며, 위의 예제는 간단한 적분과 미분방정식 풀이를 보여줍니다.