[Python] ODE_Runge-Kutta method


[Python] ODE_Runge-Kutta method

RK2를 이용해서 미분방정식을 풀어보자. 방정식은 TR에서 썼던 것과 같다. 타입스텝도 동일하게 적용하여 추이를 살펴보자. import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint # 미분 방정식 정의 def f(y, t): dydt = -((3 * np.tanh(3 * t) + 5) * y) return dydt # Second-order Runge-Kutta Method로 한 단계 전진을 위한 함수 def runge_kutta_step(y_n, t_n, dt): k1 = dt * f(y_n, t_n) k2 = dt * f(y_n + 0.5 * k1, t_n + 0.5 * dt) y_next = y_n + (1-1/(2*0.5))*k1 + 1/(2*0.5)*k2 return y_next # 초기 조건 y0 = 1 # 시간 범위 t_exact = np.linspace(0, 3, 100) ...


#kutta #method #ode #python #RK #RK2 #runge

원문링크 : [Python] ODE_Runge-Kutta method