이 계산기의 기능
이 도구는 주어진 초기조건 y(x0) = y0 아래에서 y' = F(x, y) 형태의 1계 상미분방정식을 x0부터 xn까지의 구간에서 수치적으로 풀어줍니다. 수치해석에서 가장 널리 쓰이고 신뢰도 높은 단일 단계 적분법 중 하나인 고전적 4차 룽게-쿠타 방법(RK4)을 사용합니다. 결과로는 실제 해를 근사한 점들의 표 (xi, yi)와 함께 최종값 y(xn)을 제공합니다. 특정 국가나 단위에 얽매이지 않는 순수 수학 도구입니다.
사용 방법
우변 F(x,y)를 x와 y에 대한 식으로 입력하세요(예: 1-y^2, x+y, x*y, sin(x)+y). 사용할 수 있는 연산자는 + - * / ^이며, sin, cos, tan, exp, log, ln, sqrt, abs, tanh 같은 함수와 상수 pi, e도 지원합니다. 시작점 x0, 초기값 y0, 끝점 xn을 설정하고, 구간을 몇 개의 동일한 소구간 n으로 나눌지 선택합니다. RK4의 전체 오차는 \(h^4\)에 비례해 줄어들므로 분할 수가 많을수록 정확도가 높아집니다.
공식 설명
구간은 폭이 \(h = \dfrac{x_n - x_0}{n}\)인 n개의 동일한 단계로 나뉩니다. 각 단계에서 RK4는 기울기를 네 번 계산합니다. 시작점에서 한 번(k1), 중간점에서 두 번(k2, k3), 끝점에서 한 번(k4)입니다. 다음 값은 가중 평균으로 구해집니다:
$$y_{i+1} = y_i + \frac{h}{6}\left(k_1 + 2k_2 + 2k_3 + k_4\right)$$여기서
$$\left\{ \begin{aligned} h &= \dfrac{x_n - x_0}{n} \\ k_1 &= F(x_i,\,y_i) \\ k_2 &= F\!\left(x_i + \tfrac{h}{2},\, y_i + \tfrac{h}{2}k_1\right) \\ k_3 &= F\!\left(x_i + \tfrac{h}{2},\, y_i + \tfrac{h}{2}k_2\right) \\ k_4 &= F\!\left(x_i + h,\, y_i + h\,k_3\right) \end{aligned} \right.$$이렇게 하면 4차까지의 오차 항이 상쇄되어, 국소 절단 오차는 \(O(h^5)\), 전체 오차는 \(O(h^4)\)가 됩니다.
예제 풀이
\(x_0 = 0\), \(y_0 = 0\), \(x_n = 1\), \(n = 10\)(\(h = 0.1\))으로 \(y' = 1 - y^2\)를 풀어봅시다. 정확한 해는 \(y = \tanh(x)\)입니다. RK4의 첫 단계는 \(y_1 = 0.0996679\)를 주는데, 이는 \(\tanh(0.1) = 0.0996680\)과 일치합니다. 열 단계를 모두 거치면 \(y(1) = 0.7615942\)로, \(\tanh(1) = 0.7615942\)와 소수점 일곱 자리까지 일치합니다.
자주 묻는 질문
RK4가 오일러 방법보다 나은 이유는? 오일러 방법은 단계마다 기울기를 한 번만 사용해 오차가 \(O(h)\)입니다. RK4는 네 번 계산해 평균을 내므로 같은 단계 크기에서 \(O(h^4)\)의 정확도를 얻습니다. 따라서 목표 정밀도에 도달하는 데 필요한 단계 수가 훨씬 적습니다.
분할 수는 몇 개가 좋을까요? 우선 50으로 시작해 보세요. 해가 매끄럽다면 보통 이것으로 충분합니다. 급격히 변하거나 강성(stiff)에 가까운 문제라면 100, 200, 500으로 늘려보세요.
NaN이나 Infinity가 나오면? 해가 발산했거나 F(x,y)에서 유효하지 않은 연산(음수의 로그, 0으로 나누기 등)이 발생했을 수 있습니다. 식을 다시 확인하고 더 좁은 구간이나 더 많은 분할 수로 시도해 보세요.