이 계산기의 기능
이 도구는 초기조건 \(y(x_0) = y_0\)이 주어진 \(y' = F(x, y)\) 형태의 1계 상미분방정식을 고전적인 전진(양함수) 오일러 방법으로 수치적으로 풉니다. \(x_0\)에서 \(x_n\)까지 \(n\)개의 동일한 구간으로 나누어 진행하며, 단계 크기 \(h\), \((x, y)\) 근삿값의 전체 표, 그리고 끝점에서의 근사값 \(y(x_n)\)을 함께 보여줍니다.
사용 방법
우변 \(F(x, y)\)를 변수 \(x\)와 \(y\)에 대한 수식으로 입력하세요(연산자 + - * / ^, 괄호, 그리고 sin, cos, exp, log/ln, sqrt, abs 같은 함수와 상수 pi, e를 사용할 수 있습니다). 시작점 \(x_0\), 초깃값 \(y_0\), 끝점 \(x_n\)을 설정하고 분할 개수 \(n\)을 선택합니다. \(n\)이 클수록 단계 크기가 작아져 일반적으로 더 정확한 결과를 얻을 수 있습니다.
공식 풀이
단계 크기는 다음과 같고, 격자점은 \(x_k = x_0 + k \cdot h\)입니다.
$$\begin{gathered} y_{i+1} = y_i + h \cdot F(x_i,\, y_i), \qquad x_{i+1} = x_i + h \\[1.5em] \text{where}\quad \left\{ \begin{aligned} h &= \dfrac{\text{x}_n - \text{x}_0}{\text{n}} \\ x_0 &= \text{x}_0, \quad y_0 = \text{y}_0 \\ F &= \text{F(x,y)} \end{aligned} \right. \end{gathered}$$\(y_0\)에서 출발하여 각 새로운 값은 \(y_{k+1} = y_k + h \cdot F(x_k, y_k)\)로 계산됩니다. 즉, 현재 점에서 기울기 \(F\)를 구해 폭이 \(h\)인 직선 형태의 한 걸음을 내딛는 것입니다. 이 방법은 1차 정확도를 가지므로 전체 오차는 \(O(h)\) 규모로 변합니다.
계산 예시
\(y' = 1 - y^2\)에서 \(x_0 = 0\), \(y_0 = 0\), \(x_n = 1\), \(n = 5\)일 때 단계 크기는 \(h = 0.2\)입니다. 반복 계산을 하면 \(y_1 = 0.2\), \(y_2 = 0.392\), \(y_3 = 0.5612672\), \(y_4 \approx 0.6982668\), \(y_5 \approx 0.8007513\)이 됩니다. 따라서 \(x = 1\)에서의 오일러 추정값은 약 \(0.8008\)입니다. 정확한 해는 \(\tanh(x)\)이므로 \(\tanh(1) \approx 0.7616\)이며, \(n\)을 늘릴수록 오일러 값은 이 참값에 가까워집니다.
자주 묻는 질문
왜 정확한 해와 결과가 다른가요? 오일러 방법은 1차 정확도만 가집니다. 오차는 대략 \(h\)에 비례해 줄어들기 때문에 \(n\)을 크게(단계를 작게) 잡으면 정확도가 좋아집니다.
\(x_n\)이 \(x_0\)보다 작아도 되나요? 네. 단계 크기 \(h\)가 음수가 되어 동일한 점화식으로 거꾸로 적분합니다.
어떤 함수를 지원하나요? sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, log/ln, log10, sqrt, abs와 상수 pi, e를 지원합니다.