[파이썬][Scipy] 수치 적분 및 미분방정식 해법 예제

Scipy의 scipy.integrate 모듈은 수치 적분 및 미분 방정식 해법에 사용됩니다. 아래는 간단한 수치 적분 및 미분 방정식 해법 예제입니다.

  1. 수치 적분 예제:

    주어진 함수를 수치적으로 적분하는 예제입니다.

from scipy.integrate import quad
    
    # 적분할 함수 정의
    def integrand(x):
        return x**2
    
    # 적분 범위
    a = 0
    b = 1
    
    # 수치 적분 수행
    result, error = quad(integrand, a, b)
    
    print(f"결과: {result}")
    print(f"오차: {error}")
  1. 미분 방정식 해법 예제:

    미분 방정식의 초기 값 문제를 수치적으로 해결하는 예제입니다. 여기서는 단순한 1차 미분 방정식을 다룹니다.

from scipy.integrate import solve_ivp
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 미분 방정식 정의
    def differential_equation(t, y):
        dydt = -2 * t * y  # 예시: dy/dt = -2ty
        return dydt
    
    # 초기 조건
    t0 = 0
    y0 = 1
    
    # 시간 범위
    t_span = (0, 5)
    
    # 미분 방정식 해법 수행
    solution = solve_ivp(differential_equation, t_span, [y0])
    
    # 결과 시각화
    t_values = solution.t
    y_values = solution.y[0]
    
    plt.plot(t_values, y_values)
    plt.xlabel('시간')
    plt.ylabel('y(t)')
    plt.title('미분 방정식 해법 결과')
    plt.grid(True)
    plt.show()
이 코드는 주어진 초기 조건에서 미분 방정식을 수치적으로 해결하고 결과를 시각화합니다.

Scipy의 scipy.integrate 모듈은 다양한 수치 적분 및 미분 방정식 해법 기능을 제공합니다. 필요에 따라 더 복잡한 미분 방정식과 다른 적분 방법을 사용할 수 있습니다.