본문으로 건너뛰기
실습하기

scipy.integrate 사용하기

scipy.integrate 모듈은 수치적분과 상미분방정식(ODE)을 푸는 함수를 제공합니다.

주로 활용되는 작업은 다음과 같습니다.

  • 정적분을 계산해야 할 때
  • 해석적(정확한) 원시함수가 없는 함수를 적분하고 싶을 때
  • ODE(상미분방정식) 계를 풀 때

scipy.integrate를 사용하기 위해서는 아래와 같이 integrate 모듈을 불러와야 합니다.

NumPy와 SciPy integrate 임포트
import numpy as np
from scipy import integrate

예제 1: quad로 정적분

정적분을 계산할 때 quad 함수를 사용할 수 있습니다.

0에서 π까지 sin(x)의 정적분
# 적분할 함수
f = lambda x: np.sin(x)

# 0부터 π까지 적분
val, err = integrate.quad(f, 0, np.pi)

print("적분값:", val)
print("추정 오차:", err)

설명:

  • quad는 적분값과 오차 추정치를 반환합니다
  • 매끄럽고 잘 거동하는 함수에 유용합니다

예제 2: solve_ivp로 ODE 풀기

ODE를 풀 때 solve_ivp 함수를 사용할 수 있습니다.

ODE 풀기
# 미분 방정식(도함수) 함수
def dydt(t, y):
return -2 * y

# 시간 구간과 평가 지점
t_span = (0, 3)
t_eval = np.linspace(*t_span, 100)

# ODE 풀기
sol = integrate.solve_ivp(dydt, t_span, y0=[1.0], t_eval=t_eval)

print("처음 5개 y 값:", sol.y[0][:5])

설명:

  • solve_ivp는 ODE의 초기값 문제를 풉니다
  • t_span은 적분 구간입니다
  • y0는 초기 조건입니다

핵심 정리

  • quad(): 주어진 구간에서 단변수 함수를 적분합니다.
  • solve_ivp(): 미분방정식의 초기값 문제를 풉니다.
  • SciPy의 적분 루틴과 호환되도록 함수와 배열 정의에 NumPy를 사용하세요.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!