절단오차

편집 역사 토론
수치해석 마지막 수정: 2026-07-23 05:12:07

1. 개요[편집]

절단오차(truncation error)는 무한급수나 연속적인 수학 연산을 유한 개의 항 또는 이산적인 근사로 “잘라내면서(truncate)” 생기는 오차다. 테일러 급수를 어느 항에서 끊거나, 미분·적분 같은 극한 연산을 유한한 차분·합으로 바꿀 때 필연적으로 따라온다. 수치해석에서 오차는 크게 절단오차와 반올림 오차(round-off error) 둘로 나뉘는데, 절단오차는 알고리즘이 근본적으로 근사라서 생기는 것이지 컴퓨터의 유한 자릿수 탓이 아니다.1

쉽게 말해 “수학을 컴퓨터가 삼킬 수 있게 잘게 썰면서 흘린 부스러기”다. 격자를 촘촘히 하면 부스러기가 줄지만 공짜는 아니다 — 계산량이 늘고, 너무 촘촘히 하면 이번엔 반올림 오차가 고개를 든다.

2. 테일러 전개가 범인이자 해결사[편집]

절단오차의 정체를 가장 선명하게 보여주는 건 테일러 급수다. 매끄러운 함수 ff를 점 xx 주위에서 전개하면

f(x+h)=f(x)+hf(x)+h22f(x)+h36f(x)+f(x+h) = f(x) + h f'(x) + \frac{h^2}{2}f''(x) + \frac{h^3}{6}f'''(x) + \cdots

이다. 여기서 1차 항까지만 남기고 나머지를 버리면, 버려진 꼬리 h22f(ξ)\frac{h^2}{2}f''(\xi)가 바로 절단오차다. 라그랑주 나머지항(Lagrange remainder) 형태로 쓰면 어떤 ξ(x,x+h)\xi \in (x, x+h)에 대해

R=h22f(ξ)R = \frac{h^2}{2} f''(\xi)

로 정확히 표현된다. 즉 절단오차는 “미지의 점에서의 고차 도함수 × hh의 거듭제곱”이다. 이 구조가 수치해석의 거의 모든 오차 분석의 뼈대가 된다.

3. 전진차분으로 본 실전 예[편집]

1차 도함수를 전진차분(forward difference)으로 근사해 보자. 위 전개를 hh로 나누고 정리하면

f(x)=f(x+h)f(x)hh2f(ξ)f'(x) = \frac{f(x+h) - f(x)}{h} - \frac{h}{2}f''(\xi)

우변의 분수가 우리가 실제로 계산하는 근사값이고, 뒤의 h2f(ξ)-\frac{h}{2}f''(\xi)가 절단오차다. 오차가 hh에 비례하므로 이 도식은 1차 정확도(first-order accurate), 즉 O(h)\mathcal{O}(h)라고 한다. 반면 중심차분(central difference)

f(x)=f(x+h)f(xh)2h+O(h2)f'(x) = \frac{f(x+h) - f(x-h)}{2h} + \mathcal{O}(h^2)

는 대칭성 덕분에 hh항이 소거되어 O(h2)\mathcal{O}(h^2), 2차 정확도가 된다. 같은 두 점 사이 정보를 대칭으로 쓰기만 해도 오차 차수가 한 단계 올라가니, 공짜 점심에 가깝다.2 이 관계는 유한차분법수치미분의 출발점이다.

4. 국소 절단오차 vs 전역 절단오차[편집]

시간 적분처럼 오차가 누적되는 문제에서는 두 종류의 절단오차를 구별해야 한다.

  • 국소 절단오차(local truncation error, LTE): 딱 한 스텝만 진행할 때, 정확한 해를 넣었다고 가정하고 생기는 오차. 룽게-쿠타법이나 오일러법 한 걸음의 “순간 실수”다.
  • 전역 절단오차(global truncation error, GTE): 여러 스텝을 밟아 최종 시각에 도달했을 때 쌓인 총오차. 보통 국소 오차보다 차수가 하나 낮다.

예를 들어 전진 오일러법은 스텝당 국소 오차가 O(h2)\mathcal{O}(h^2)이지만, 구간을 도는 스텝 수가 O(1/h)\mathcal{O}(1/h)개라서 곱하면 전역 오차는 O(h)\mathcal{O}(h)로 떨어진다. “한 걸음의 실수는 작지만 만 걸음이면 티가 난다”는 것. 그래서 방법의 차수(order)를 말할 때는 보통 전역 차수를 가리킨다.3

5. 차수(order)와 격자 세분화[편집]

방법의 차수 pp는 절단오차가 O(hp)\mathcal{O}(h^p)일 때의 pp다. 차수가 높을수록 격자를 조금만 조밀하게 해도 오차가 급격히 준다. p=2p=2인 방법은 hh를 반으로 줄이면 오차가 1/4로, p=4p=4면 1/16으로 준다. 이 관계는 리처드슨 외삽법이나 격자 수렴 지수로 오차를 추정하고 검증하는 근거가 된다 — 격자를 체계적으로 줄여가며 관찰된 수렴률이 이론 차수 pp와 맞는지 확인하는 것이 검증 및 확인의 핵심 절차다.

절단오차가 hh와 함께 어떤 기울기로 줄어드는지 — 그리고 어디서 배신하는지 — 는 직접 재보는 게 제일 빠르다.

sin의 도함수를 전진·중심차분으로 근사한 실제 오차(배정밀도 실측). h를 줄이면 log-log에서 기울기 1(전진)·2(중심)로 떨어지다가, h가 너무 작아지면 반올림 오차가 역전해 다시 커진다 — 총오차의 U-커브

여기서 놓치면 안 되는 함정. 절단오차를 줄이겠다고 hh를 무한정 줄이면, 명시적 도식에서는 CFL 조건 때문에 시간 간격도 같이 줄여야 해서 계산량이 폭증하고, 어느 지점을 넘어서면 이번엔 반올림 오차가 절단오차를 역전한다. 총오차 곡선은 U자를 그리며, 그 바닥에 최적 hh가 있다. “촘촘할수록 좋다”는 순진한 믿음이 배신당하는 지점이다.4

6. 절단오차를 줄이는 무기들[편집]

  • 고차 도식: 차수 pp를 올린다. 다만 고차 도식은 진동에 약하고 불연속에서 오버슈트를 일으키기 쉽다(수치 소산과 분산 참고).
  • 격자 세분화: 오차가 큰 곳만 국소적으로 촘촘히 하는 적응 격자 세분화가 효율적이다.
  • 외삽: 리처드슨 외삽법으로 두 격자 해를 조합해 최저차항을 소거한다. 롬베르그 적분이 이 아이디어의 적분판이다.
  • 수정 방정식 분석: 이산식이 실제로 푸는 방정식을 역으로 유도해(수정 방정식), 절단오차가 어떤 물리적 오차(인위적 확산·분산)로 나타나는지 파악한다.

결국 절단오차는 없앨 수 없고 관리하는 대상이다. 얼마나 큰지 알고, 격자·차수·비용의 삼각형에서 타협점을 찾는 것 — 그게 수치해석 엔지니어의 일이다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 이 둘을 헷갈리면 디버깅이 미궁에 빠진다. 절단오차는 hh를 줄이면 준다. 반올림 오차는 hh를 줄이면 오히려 는다(작은 수끼리 빼면서 유효숫자가 날아가서). 오차가 격자를 줄여도 안 줄면 반올림을 의심하라.

  2. 물론 진짜 공짜는 아니다. 중심차분은 경계 근처에서 한쪽 점이 도메인 밖으로 나가는 문제가 있다. 세상에 공짜 점심은 없고, 다만 청구서가 나중에 온다.

  3. “국소적으로는 우등생인데 누적되니 낙제”라는 서사는 수치적분(오일러)의 숙명이다. 그래서 실전에서는 국소 오차가 아무리 예뻐도 전역 차수로 줄을 세운다.

  4. 이 U자 곡선을 모르고 “격자 무한정 조밀화”에 매달리다 오히려 오차가 커지는 걸 보고 멘붕에 빠지는 게 수치해석 입문자의 통과의례다. 총오차 = 절단 + 반올림, 둘의 합에 최적점이 있다.