Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : 중학생도 이해(?)할 수 있는 Runge-Kutta 방식과 Euler 방식의 적분 계산법 차이
4장에서 적분 방식에 대한 언급이 살짝됩니다. 하지만, 구체적인 설명은 없습니다. 솔직히 모르셔도 됩니다. 소프트웨어에 맡겨서 진행하시고 결과에 대한 내용을 논문이나 보고서에 작성해도 전혀 손색이 없습니다. 보통 기본 값으로 오일러(Euler) 방식으로 처리합니다. 하지만, 가끔, 아주 가끔 룬게-쿠타 방식이 나올 때도 있습니다. 그래서 쉽게 풀어보려고 작성해 봤습니다. 아래 글은 안 보셔도 괜찮습니다. 저처럼 궁금해서 미칠 것 같은 분만 보세요. ^^
솔직히 중학생도 이해할 수 있다고 자신할 수 없지만, 그대로 쉽게 설명하기 위해 노력했습니다. ^^
1. 미분방정식을 수치적으로 푼다는 건 무슨 뜻일까?
수학 교과서에서 라는 시간에 따라 가 어떻게 바뀌는지”를 나타내죠. 하지만 실제로는 이걸 종이와 연필로 풀기(해석적 해 구하기)가 쉽지 않거나 불가능한 때가 많습니다. 그럴 때 “수치적 방법(numerical method)”을 써서 조금씩 앞으로 나아가며 값을 근사하는 것이지요.
예를 들어, 처음 시점에서 을 알고 있다면, “조금 뒤(후)”의 값인 를 대략적으로 구하고, 또 그 다음 값 를 구해나가는 식입니다.
2. 오일러(Euler) 방식: “한 번만 보고 점프!”
(1) 어떻게 계산하나?
- 현재 시점 에서 를 알고 있다고 합시다.
- 미분방정식 를 통해, “지금 이 순간의 기울기(slope)”인 를 구합니다.
- 그 기울기를 그대로 써서 만큼 뻗어나가 봅니다.
- 이제 시점을 으로 옮겨, 이 값을 새로운 로 삼습니다.
(2) 비유: “직선 하나로 대충 예측하기”
- 비유: 어떤 사람이 지금 1초에 2m씩 걷고 있다고 해서, 그다음 1초 동안에도 똑같이 2m/s로 걸을 거라고 가정(직선적으로 뻗음)하는 셈입니다.
- 만약 이 사람이 갑자기 속도를 바꾼다면(가속/감속), 그걸 전혀 반영 못하고 한 번에 훅 오차가 커질 수 있겠죠.
결국, 오일러 방식은 “한 번의 기울기만 보고 다음 지점으로 뛰어가는 단순한 계산”이라 이해하면 됩니다. 계산량은 적지만, 정확도는 상대적으로 떨어질 수 있습니다.
3. 룬게-쿠타(Runge-Kutta) 방식: “중간 지점도 살펴보고 좀 더 정교하게!”
(1) 기본 아이디어
- 초기 기울기(오일러와 동일하게, 현재 시점 기울기)도 확인,
- 중간 시점( 정도)에서도 예측한 위치를 써서 기울기를 한 번 더 계산,
- 필요하면 한 번 더 중간 기울기를 살펴본 뒤,
- 이 기울기들을 평균/조합해서 “다음 시점”의 를 결정.
즉, 한 번의 기울기가 아니라 여러 번(중간 단계) 기울기를 보고 종합해 결과를 낸다는 게 룬게-쿠타의 핵심입니다.
(2) 비유: “중간에 속도 바뀌는지 한 번쯤 더 체크한다”
- 똑같이 “지금 1초에 2m씩 걷고 있는 사람”을 예로 들 때, 룬게-쿠타 방식은 중간(0.5초 후)에 이 사람이 속도를 바꿨는지 살펴봅니다.
- 그럼 실제로 0.5초 후에 가속해서 1초에 3m씩 걷게 됐다면, 평균적으로 2.5m/s 정도로 이동한다고 예측해 주는 식이죠.
- 이렇게 하면 오차가 훨씬 줄어듭니다(물론 계산은 좀 더 복잡).
4. 중학생에게 들려주는 한 줄 요약
- 오일러: “지금 기울기 하나만 보고 다음 지점으로 점프” → 간단하고 빠르지만 오차가 클 수 있다.
- 룬게-쿠타: “중간에도 기울기를 여러 번 확인해 평균 내고 이동” → 좀 더 복잡하지만 정확도↑.
둘 다 라는 시간 간격을 가지고 조금씩 계산하는 점에서는 비슷하지만, 얼마나 꼼꼼하게 기울기를 ‘재측정’하느냐에 따라 정확도가 달라집니다.
5. 마무리: “비용 vs. 정확도”의 선택
현실에선 오일러가 쉬워서(코딩이 간단!) 빠르게 시도해 볼 수 있지만, 큰 로 하면 오차가 상당할 수 있습니다. 반면 룬게-쿠타(특히 4차 방식 등)는 계산량이 조금 늘지만, 더 믿을 만한 결과를 줍니다.
결국 수치해석에서도, 우리가 얼마나 ‘정확한’ 해를 원하는지, 어떤 속도로 계산해야 하는지 등의 요구 사항에 따라 오일러를 쓸지, 룬게-쿠타를 쓸지, 혹은 다른 고차 적분법을 쓸지 결정하게 됩니다.
Tip
- 오일러: 정말 이해하기 쉽고, 프로그래밍도 쉽다 → “미분방정식을 처음 배울 때 입문”.
- 룬게-쿠타: 가장 흔히 쓰는 중간 단계 기울기 평가 방식 → “공학 시뮬레이션, 물리 시뮬레이션 등에서 표준적으로 사용”.
이 정도로 생각하시면, 중학생도 충분히 “아, 여러 번 측정해서 좀 더 정확히 가는 거구나!” 하고 이해할 수 있을 거라 믿습니다.
댓글
댓글 쓰기