seegongsik
내 단어장
공업수학

오차는 걸음 크기가 정한다

오차는 걸음 크기의 차수만큼 줄어든다, 정확도와 안정성과 비용의 줄다리기

이 묶음의 모든 방법은 한 가지 약속으로 묶여요. 오차는 대략 C 곱하기 h의 p제곱, 즉 error≈C·hᵖ 라는 거예요. 여기서 p 는 그 방법의 차수예요. 오일러는 1차, RK2 는 2차, RK4 와 심프슨은 4차죠. 이게 왜 중요할까요? 로그-로그 평면에 오차와 걸음 h 를 찍으면 직선이 되고, 그 기울기가 바로 차수 p 예요. 차수=기울기. 그래서 걸음을 절반으로 줄이면 p차 오차는 2의 p제곱배로 줄어요. 4차 방법이라면 무려 16배요. 그럼 h 를 끝없이 줄이면 될까요? 아니에요. 너무 작아지면 반올림 오차가 바닥에서 솟구치고, 명시적 방법은 안정성 한계를 넘으면 폭발해요. 게다가 걸음 수는 1/h 에 비례해 늘어 계산 비용이 치솟아요. 결국 정확도와 비용 사이 균형점을 찾는 것, 그게 수치해석의 진짜 기술이에요.

가로축은 log h, 세로축은 log(오차)예요. error=C·hᵖ 의 양변에 로그를 씌우면 직선이 되고, 그 기울기가 정확히 차수 p 예요. 세 직선은 각각 1차·2차·4차고요. 세그먼트로 한 차수를 골라 강조하고, h 슬라이더로 직선 위 점을 움직여 보세요. 같은 만큼 h 를 줄여도 4차선의 점이 훨씬 가파르게 내려가요. 차수가 높을수록 같은 노력으로 오차가 훨씬 빨리 떨어진다는 뜻이에요. 이 한 장이 묶음 전체의 지도예요.

차수 논리만 보면 h 를 0 으로 보내면 오차도 0 이 될 것 같죠. 현실은 달라요. 전체 오차는 절단오차 C·h² 에 반올림 오차 ε/h 가 더해진 거예요. h 를 줄이면 첫째 항은 내려가지만 둘째 항은 올라가요. 그래서 곡선이 U 자 골을 그려요. h 슬라이더를 골 왼쪽 끝까지 끌어 보세요. 점이 빨갛게 변하며 반올림 바닥에 부딪혀 오차가 도로 커져요. 무한히 정밀한 건 없어요. 골 바닥이 그 기계가 낼 수 있는 최선이에요.

정확도만 벽이 아니에요. 감쇠식 y'=−ky 에 k=5 를 쓰고 명시적 오일러로 풀어 봐요. 위쪽 띠가 걸음 축이에요. 초록 구역은 안정 + 정확, 빨강 구역은 불안정이에요. 경계는 h = 2/k = 0.4 죠. 슬라이더 점을 초록 안에서 움직이면 작을수록 참해에 붙어요. 하지만 0.4 를 넘겨 빨강으로 가면 정확도와 상관없이 수치해가 부호를 튀기며 폭발해요. 작은 걸음은 정밀함만이 아니라 발산을 막는 안전선이기도 해요.

이제 네 방법을 한 평면에 모아 비교해요. Euler(1차)·RK2(2차)·RK4(4차)·심프슨(4차)의 오차 직선이 함께 그려져요. 세그먼트로 방법을 고르면 그 직선이 강조되고, h 슬라이더가 모든 직선 위 점을 동시에 옮겨요. 큰 h 에서는 차이가 작지만, h 를 줄일수록 고차 방법이 압도적으로 정확해져요. 같은 4차라도 심프슨 직선이 RK4 보다 살짝 아래인 건 계수 C 가 작기 때문이에요. 차수가 기울기를, 계수가 높이를 정해요.

마지막은 실전의 줄다리기예요. 두 막대가 보여요. 오차 = C·h² 는 h 를 줄이면 작아지고, 비용 = 걸음 수 ∝ 1/h 는 h 를 줄이면 커져요. 아래 곡선은 둘의 가중합인 총손해고요. h 슬라이더를 끝까지 양쪽으로 끌어 보세요. 한쪽 끝은 오차 과다, 반대쪽 끝은 비용 과다, 그리고 가운데 어딘가에 스위트 스팟이 있어요. 점이 초록으로 변하는 그 지점이 정밀함과 비용을 함께 만족시키는 최선의 걸음이에요. 이게 묶음 전체가 가리키던 결론이에요.

빠른 적용이 묶음의 모든 방법은 error≈C·hᵖ 로 묶여요. p 는 차수고, 로그-로그에서 오차-h 직선의 기울기로 보여요. 차수=기울기. p차 오차는 h 절반에 2ᵖ배로 줄어요. 하지만 h 를 무한히 줄일 순 없어요. 너무 작으면 반올림 오차가 바닥에서 솟고, 명시적 방법은 안정 한계를 넘으면 폭발해요. 게다가 걸음 수는 1/h 로 늘어 비용이 치솟죠. 그래서 실전은 오차와 비용의 가중합이 최소가 되는 스위트 스팟을 찾는 일이에요. 테일러가 한 걸음의 오차를, 오일러·RK·심프슨이 그 차수를, 이 강이 전체 수렴과 한계를 설명해요.
공업수학
이 페이지가 도움 됐다면 후원하기