이 계산기의 기능
이 도구는 \(y'' = F(x, y, y')\) 형태로 표현된 2계 상미분방정식을 구간 \([x_0, x_n]\)에서 고전적인 4차 룽게-쿠타(RK4) 방법으로 수치적으로 풉니다. 우변 \(F\)를 \(x, y, p\)에 대한 수식으로 입력하고(여기서 \(p\)는 \(y'\)를 의미합니다), 초기 조건 \(y(x_0)\)와 \(y'(x_0)\), 구간의 양 끝점, 그리고 분할 단계 수를 지정하면 됩니다. 계산기는 \(x, y, y'\) 값의 전체 표와 함께 끝점에서의 값을 돌려줍니다. 순수한 수치해석이므로 국가나 분야에 관계없이 보편적으로 적용됩니다.
사용 방법
\(F(x, y, p)\)를 입력합니다 — 예를 들어 \(y'' + 4y' + 4y = 0\)의 경우 -4*p - 4*y로 쓰면 됩니다. \(x_0\), \(y_0 = f(x_0)\), \(p_0 = y'(x_0)\)을 설정합니다. 끝점 \(x_n\)을 정하고 분할 구간 수 \(n\)을 선택합니다(\(n\)이 클수록 단계 크기 \(h = (x_n - x_0)/n\)이 작아지고 정확도가 높아집니다). 표시할 유효 숫자 자릿수를 고릅니다. RK4의 오차는 전역적으로 \(O(h^4)\)이므로, \(n\)을 두 배로 늘리면 오차는 대략 16분의 1로 줄어듭니다.
공식 설명
2계 ODE는 \(p = y'\)로 두어 1계 방정식 두 개로 이루어진 연립계로 변환됩니다. 즉 \(y' = p\)이고 \(p' = F(x, y, p)\)가 됩니다. RK4는 매 단계마다 네 번의 가중 기울기 계산(\(y\)에 대한 \(k\), \(p\)에 대한 \(j\))을 사용해 두 미지수를 함께 전진시키며, 이를 \((k_1 + 2k_2 + 2k_3 + k_4)/6\)와 \((j_1 + 2j_2 + 2j_3 + j_4)/6\)로 결합합니다.
$$\begin{gathered} y^{\prime\prime} = F(x,\,y,\,p), \qquad p = y^{\prime} \\[1.2em] h = \frac{\text{xn} - \text{x0}}{\text{n}} \end{gathered}$$$$\begin{gathered} \begin{aligned} k_1 &= h\,p_i & l_1 &= h\,F(x_i,\,y_i,\,p_i) \\ k_2 &= h\left(p_i+\tfrac{l_1}{2}\right) & l_2 &= h\,F\!\left(x_i+\tfrac{h}{2},\,y_i+\tfrac{k_1}{2},\,p_i+\tfrac{l_1}{2}\right) \\ k_3 &= h\left(p_i+\tfrac{l_2}{2}\right) & l_3 &= h\,F\!\left(x_i+\tfrac{h}{2},\,y_i+\tfrac{k_2}{2},\,p_i+\tfrac{l_2}{2}\right) \\ k_4 &= h\left(p_i+l_3\right) & l_4 &= h\,F\!\left(x_i+h,\,y_i+k_3,\,p_i+l_3\right) \end{aligned} \\[1em] y_{i+1} = y_i + \tfrac{1}{6}\left(k_1+2k_2+2k_3+k_4\right), \quad p_{i+1} = p_i + \tfrac{1}{6}\left(l_1+2l_2+2l_3+l_4\right) \\[1.4em] \text{where}\quad \left\{ \begin{aligned} F &= F(x,\,y,\,p) \\ h &= \dfrac{\text{xn} - \text{x0}}{\text{n}} \\ x_0 &= \text{x0},\; y_0 = \text{y0},\; p_0 = \text{p0} \end{aligned} \right. \end{gathered}$$
풀이 예제
\(y'' = -4p - 4y\)를 \(x_0 = 0\), \(y_0 = 0\), \(p_0 = 1\), \(x_n = 1\)로 두고 단 한 번의 큰 단계(\(n = 1\), \(h = 1\))로 계산해 봅시다. 네 단계에서 \(k_1=1\), \(k_2=-1\), \(k_3=2\), \(k_4=-5\)와 \(j_1=-4\), \(j_2=2\), \(j_3=-6\), \(j_4=12\)를 얻습니다. 그러면 $$y(1) = \frac{1 - 2 + 4 - 5}{6} = -\frac{1}{3} = -0.3333$$이고 $$p(1) = 1 + \frac{-4 + 4 - 12 + 12}{6} = 1$$이 됩니다. 정확한 해는 \(y = x e^{-2x}\)이므로 \(y(1) = e^{-2} = 0.1353\)입니다. \(h = 1\)짜리 거대한 단계 하나로는 너무 거칠다는 것을 알 수 있습니다. \(n = 50\)이나 \(100\)을 사용하면 정확한 값으로 잘 수렴합니다.
자주 묻는 질문
거꾸로 적분할 수 있나요? 네 — \(x_n\)을 \(x_0\)보다 작게 설정하면 단계 크기 \(h\)가 음수가 되어 \(x_0\)에서 \(x_n\)으로 거꾸로 적분합니다.
단계 수가 적을 때 답이 이상해 보이는 이유는? RK4의 정확도는 단계 크기가 작은 것에 달려 있습니다. 연속된 결과가 더 이상 변하지 않을 때까지 \(n\)을 늘려 보세요.
F에는 어떤 함수를 쓸 수 있나요? + - * / ^, 괄호, 그리고 sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, log/ln, log10, sqrt, abs와 상수 pi, e를 사용할 수 있습니다.