미분방정식 수치해(오일러·RK4) 계산기
dy/dx = f(x, y)를 오일러·개선오일러·RK4로 같이 풀어 나란히 보여 줍니다. h를 반씩 줄이며 오차가 1/2·1/4·1/16로 주는 것을 표로 보여 차수의 뜻을 눈으로 확인할 수 있습니다.
예제
x와 y를 씁니다. 곱은 x*y처럼 별표로 쓰세요 — xy는 «xy라는 이름»으로 읽혀 거절됩니다.
h = (끝 x − 시작 x) ÷ n = 0.1
알고 있으면 넣으세요. 오차와 수렴 차수를 함께 냅니다. x만 씁니다.
x = 1에서의 y
2.71827974
RK4 기준입니다. 참값 2.71828183과의 오차는 2.084e-6으로 추정됩니다
세 방법의 자취
굵은 파랑이 RK4, 짧은 파선이 개선오일러, 긴 파선이 오일러입니다. 회색 굵은 선이 해석해입니다. h가 크면 오일러가 눈에 띄게 벌어집니다.
h를 반씩 줄이면 오차가 얼마나 주는가 — 차수가 여기 보입니다
«비»는 앞 줄 대비 오차입니다. 오일러가 0.5, 개선오일러가 0.25, RK4가 0.0625(=1/16)에 가까워지는 것이 각각 1·2·4차라는 뜻입니다.
걸음마다의 값
계산 방법
- 1예제 버튼을 누르거나 dy/dx = f(x, y)를 직접 씁니다. 곱은 x*y처럼 별표로 씁니다.
- 2시작점 (x₀, y₀)과 어디까지 풀지를 넣습니다.
- 3걸음 수를 정합니다. h는 (끝 x − 시작 x) ÷ 걸음 수입니다.
- 4해석해를 알면 넣으세요. 오차와 수렴 차수를 함께 냅니다.
- 5세 방법의 자취와 걸음마다의 값, 그리고 h를 반씩 줄인 오차 표를 봅니다.
자주 묻는 질문
기울기를 몇 번 보느냐가 다릅니다. 오일러는 지금 자리의 기울기 하나로 직선처럼 밀고 나가고, 개선오일러는 끝의 기울기까지 평균 내며, RK4는 가운데를 두 번 더 봐서 네 기울기를 가중평균합니다. 한 걸음에 f를 각각 1·2·4번 부릅니다.
h를 반으로 줄일 때 오차가 얼마나 주는지를 말합니다. 1차인 오일러는 오차가 1/2, 2차인 개선오일러는 1/4, 4차인 RK4는 1/16로 줄어듭니다. 이 계산기는 h를 반씩 줄인 오차 표를 함께 내는데, 그 «비» 칸이 0.5·0.25·0.0625에 가까워지는 것이 바로 차수입니다.
같은 정확도를 훨씬 적은 걸음으로 내기 때문입니다. dy/dx = y를 x=1까지 풀면 오일러가 160걸음으로 낸 정확도를 RK4는 10걸음으로 이미 넘어섭니다. 한 걸음의 비용이 4배여도 걸음 수가 비교가 안 되게 줄어 전체로는 훨씬 쌉니다.
아닙니다. 자름오차는 h와 함께 줄지만 반올림오차는 걸음 수에 따라 늘어납니다. 배정도 실수는 유효숫자가 16자리뿐이라 걸음이 아주 많아지면 매 걸음의 반올림이 쌓여 자름오차를 앞지릅니다. 그래서 어느 지점부터는 h를 줄여도 오차가 다시 커지며, 자름오차가 워낙 작은 RK4는 그 지점이 일찍 옵니다.
h가 너무 클 가능성이 큽니다. 아주 빠르게 사그라드는 성분이 섞인 방정식(강성)에서는 h가 조금만 커도 수치해가 진동하며 커집니다. 오일러의 안정 조건은 |1 + hλ| < 1이라 y′ = −1000y면 h < 0.002여야 하고, RK4는 hλ > −2.785까지 버팁니다. 걸음 수를 늘려 보세요.
음함수법(후진오일러, BDF 등)이 필요하며 이 계산기의 범위 밖입니다. 안정 조건을 맞추려고 h를 아주 작게 잡으면 걸음 수가 감당이 안 되기 때문입니다. 해는 매끈하게 사그라드는데 수치해만 진동하는 것이므로, 계산이 터졌다고 방정식을 의심하면 안 됩니다.
«xy»가 x 곱하기 y가 아니라 «xy라는 이름» 하나로 읽히기 때문입니다. 여러 글자를 한 이름으로 집어야 sin이나 atan2 같은 함수 이름을 쓸 수 있어서입니다. 곱은 «x*y»라고 명시하세요. 다만 숫자 뒤의 곱은 생략할 수 있어 «2x»는 2*x로 읽습니다.
이 계산기로는 안 됩니다. 1계 단일 방정식만 풉니다. 2계는 y′ = v, v′ = f(x, y, v)처럼 1계 연립으로 바꿔야 하는데 입력이 복잡해져 다루지 않습니다.
넣지 않아도 풉니다. 다만 해석해를 넣으면 오차와 수렴 차수 표를 함께 볼 수 있어, 지금 h가 충분히 작은지 판단하는 데 도움이 됩니다. 해석해를 모르는 경우에는 걸음 수를 두 배로 늘려 값이 거의 안 변하는지 보는 것이 실무적인 방법입니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이루어지며 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 오일러·개선오일러(호이네)·RK4를 같은 자료에 나란히 돌립니다. 값은 같은 알고리즘을 numpy로 다시 돌려 대조했습니다.
- h를 반씩 줄인 오차 표가 이 계산기의 요점입니다. 오차비가 0.5·0.25·0.0625로 가는 것이 차수 1·2·4의 뜻입니다.
- 식은 eval 없이 자체 파서로 읽습니다. 이름끼리 붙여 쓴 xy는 x*y가 아니라 모르는 이름으로 거절됩니다.
- 값이 너무 커지면 그 걸음에서 멈추고 발산으로 표시합니다.
- 강성 방정식은 h를 줄이는 것만으로는 실용적이지 않습니다. 음함수법이 필요하며 범위 밖입니다.
- 1계 단일 방정식만 풉니다. 연립·2계 이상은 다루지 않습니다.
- 입력한 값은 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.