본문 바로가기
컴퓨터과학/수치해석 (Numerical Analysis)

[수치해석] 1강 | Roundoff Error와 Truncation Error

by NpsCause 2026. 9. 17.

이번 강의에서는 수치해석에서 발생하는 주요 오차의 종류와 오차를 정량적으로 표현하는 방법,

컴퓨터의 숫자 표현 방식, Taylor Series를 이용한 Truncation Error 분석, 그리고 Numerical Differentiation의 Forward / Backward / Centered Difference를 다룬다.


1. 수치해석에서 왜 오차가 발생하는가?

공학 문제에서는 해석적인 방법으로 정확한 해를 구할 수 없는 경우가 많다. 따라서 Numerical Method를 사용하여 실제 해에 가까운 근사값(Approximation)을 구한다.

오차 원인 핵심
Roundoff Error 컴퓨터의 유한한 숫자 표현 컴퓨터 표현의 한계
Truncation Error 수학적 절차를 근사식으로 대체 수학적 근사의 한계

Numerical Error = Roundoff Error + Truncation Error


2. Significant Figures — 유효숫자

유효숫자(Significant Figures)는 숫자에서 우리가 신뢰할 수 있는 자릿수를 의미한다.

예제

  • 5.38 × 10⁴ → 유효숫자 3개
  • 5.380 × 10⁴ → 유효숫자 4개
  • 5.3800 × 10⁴ → 유효숫자 5개

예를 들어 0.00001753의 앞쪽 0들은 단순히 소수점의 위치를 나타내므로 유효숫자는 4개이다.

핵심
컴퓨터는 유한한 자릿수로 숫자를 표현하기 때문에 π, e, √7과 같은 무리수를 정확하게 표현할 수 없다.

3. Accuracy vs Precision

개념 의미
Accuracy 실제 True Value에 얼마나 가까운가?
Precision 반복 측정값들이 서로 얼마나 가까운가?

따라서 Accuracy와 Precision은 서로 다른 개념이다.

  • Inaccurate & Imprecise
  • Accurate & Imprecise
  • Inaccurate & Precise
  • Accurate & Precise

4. Error의 기본 정의

True Value = Approximation + Error

용어의미
True Value 실제 정확한 값
Approximation 실제 값을 대신하는 근사값
Error 둘 사이의 차이

True Error

Et = True Value − Approximation

True Relative Error

εt = (True Value − Approximation) / True Value

True Percent Relative Error

εt = |True Error / True Value| × 100%

절대오차와 상대오차

참값 측정값 절대오차 상대오차
10,000 cm 9,999 cm 1 cm 0.01%
10 cm 9 cm 1 cm 10%

같은 1 cm의 오차라도 상대오차는 크게 달라질 수 있다.


5. Approximation Error

실제 수치해석 문제에서는 True Value를 미리 알 수 없는 경우가 많다. 따라서 반복 계산에서는 이전 근사값과 현재 근사값의 차이를 이용한다.

Stopping Criterion

반복 계산은 다음 조건을 만족하면 종료한다. (충분히 수렴했다라고 봄)

εa < εs

여기서 εs는 미리 지정한 허용오차(Tolerance)이다.

유효숫자와 허용오차

εs = 0.5 × 102−n %

예를 들어 최소 3개의 유효숫자를 원한다면:

εs = 0.05%

따라서 εa < 0.05%가 될 때까지 반복한다.


6. Roundoff Error

Roundoff Error는 컴퓨터가 숫자를 제한된 자릿수로 표현하기 때문에 발생한다.

컴퓨터의 숫자 표현

  • Bit → 0 또는 1
  • Byte → 8 bits
  • Word → 컴퓨터 구조에 따라 다르며 32-bit, 64-bit 등이 사용됨

컴퓨터는 일반적으로 2진수(Binary)를 사용하기 때문에 10진수의 일부 숫자를 정확하게 표현할 수 없다.


7. Floating Point Representation

실수는 일반적으로 Floating Point 형태로 표현한다.

m × be

  • m : Mantissa / Significand
  • b : Base
  • e : Exponent

예를 들어:

0.0294 × 10⁰ → 0.2941 × 10⁻¹

정규화(Normalization)를 통해 유효숫자를 더 효율적으로 사용할 수 있다.


8. Python Floating Point

Python의 float가 64-bit double precision을 사용

  • 표현 범위: 약 10⁻³⁰⁸ ~ 10³⁰⁸
  • 정밀도: 약 15~16 decimal digits
  • Machine Epsilon: 약 2.22 × 10⁻¹⁶

Overflow / Underflow

Overflow 표현 가능한 범위를 초과하는 매우 큰 값
Underflow 표현하기 어려운 매우 작은 값

9. Roundoff Error가 커지는 경우

① 많은 계산

수많은 연산을 수행하면 작은 roundoff error가 누적될 수 있다.

② 큰 수 + 작은 수

예:

4000 + 0.0000001

큰 수에 맞춰 작은 수의 자릿수가 손실될 수 있다.

③ Subtractive Cancellation

수학적으로

x + 10⁻²⁰ − x = 10⁻²⁰

이지만 컴퓨터의 유한 정밀도로 인해 특정 상황에서는 0으로 계산될 수 있다.

④ Inner Product

Σ xᵢyᵢ와 같이 많은 곱셈과 덧셈이 필요한 계산은 계산량이 증가할수록 Roundoff Error에 취약해진다.


10. Truncation Error

미분을 근사해서 계산 하다 발생하는 오차 -> Truncation Error

Truncation Error는 정확한 수학적 절차를 근사식으로 대체할 때 발생한다.

예: 미분의 근사

정확한 미분:

dv/dt

근사:

dv/dt ≈ [v(tᵢ₊₁) − v(tᵢ)] / [tᵢ₊₁ − tᵢ]

이처럼 미분을 유한차분으로 근사하면 Truncation Error가 발생한다.


10 - 1 . Taylor Series

Taylor Series는 Truncation Error를 분석하는 핵심 도구이다.

f(xᵢ₊₁) = f(xᵢ) + f′(xᵢ)h + f″(xᵢ)h²/2! + f‴(xᵢ)h³/3! + ... + Rₙ

여기서

h = xᵢ₊₁ − xᵢ

Remainder:

Rₙ = f⁽ⁿ⁺¹⁾(ξ)hⁿ⁺¹/(n+1)!

Taylor Approximation의 차수

  • 0차f(xᵢ₊₁) ≈ f(xᵢ)
  • 1차f(xᵢ₊₁) ≈ f(xᵢ) + f′(xᵢ)h
  • 2차f(xᵢ₊₁) ≈ f(xᵢ) + f′(xᵢ)h + f″(xᵢ)h²/2

즉, Taylor Series를 이용하면 무한히 많은 항이 나오게 되는데 이때 중간에서 잘라버리게(truncate) 됨

때문에 버린 항 때문에 생기는 오차가 Truncation Error이다.


11. Numerical Differentiation

컴퓨터는 미분을 직접 계산하는 대신 주변의 함수값을 이용해서 미분을 근사

① Forward Difference

앞쪽 점(xᵢ₊₁)을 사용하여 기울기를 계산 

f′(xᵢ) ≈ [f(xᵢ₊₁) − f(xᵢ)] / h

xᵢ₊₁ 을 연결한 구간의 기울기를 사용하기 때문에 정확한 미분과 차이가 생김 

오차의 크기 : Truncation Error = O(h) 

② Backward Difference

뒤쪽 점(xᵢ-₁)을 사용하여 기울기를 계산 

f′(xᵢ) ≈ [f(xᵢ) − f(xᵢ₋₁)] / h

마찬가지로  xᵢ-₁ 을 연결한 구간의 기울기를 사용하기 때문에 정확한 미분과 차이가 생김 

오차의 크기 : Truncation Error = O(h)

③ Centered Difference

앞과 뒤를 동시에 사용하여 기울기를 구함 때문에 오른쪽 항과 왼쪽 항을 빼면 짝수항이 사라짐 

f′(xᵢ) ≈ [f(xᵢ₊₁) − f(xᵢ₋₁)] / 2h

오차의 크기 : Truncation Error = O(h²)  <- 오차가 대략 1/4로 줄어듬!

방법 공식 오차
Forward (fᵢ₊₁ − fᵢ)/h O(h)
Backward (fᵢ − fᵢ₋₁)/h O(h)
Centered (fᵢ₊₁ − fᵢ₋₁)/2h O(h²)

12. Second Derivative

Forward

f″(xᵢ) ≈ [fᵢ₊₂ − 2fᵢ₊₁ + fᵢ] / h²

Error = O(h)

Backward

f″(xᵢ) ≈ [fᵢ − 2fᵢ₋₁ + fᵢ₋₂] / h²

Error = O(h)

Centered

f″(xᵢ) ≈ [fᵢ₊₁ − 2fᵢ + fᵢ₋₁] / h²

Error = O(h²)


13.  Total Numerical Error ⭐

Total Error = Roundoff Error + Truncation Error

여기서 중요한 점은 두 오차를 줄이는 방법이 서로 반대라는 것이다.

Step Size h를 작게 하면?

h ↓ → Truncation Error ↓

하지만 계산 횟수가 증가하고 subtractive cancellation 가능성이 커질 수 있기 때문에

h ↓ → Roundoff Error ↑

가 될 수 있다.

핵심 개념: Point of Diminishing Returns
한 종류의 오차를 줄이려는 과정에서 다른 종류의 오차가 증가할 수 있기 때문에 무조건 step size를 작게 만드는 것이 최선은 아니다.

14. Centered Difference의 Total Error

Centered Difference의 경우 강의에서는 전체 오차의 상한을 다음과 같이 제시한다.

Total Error ≲ ε/h + (M/6)h²

ε/h Roundoff Error
(M/6)h² Truncation Error

따라서 전체적인 관계는

Total Error ≈ Roundoff Error + Truncation Error


15. 한 줄 정리

① Numerical Error

Roundoff + Truncation

② True Error

Eₜ = True − Approximation

③ Approximate Error

εₐ = |New − Old| / |New| × 100%

④ Stopping Criterion

εₐ < εₛ

⑤ Forward Difference

O(h)

⑥ Backward Difference

O(h)

⑦ Centered Difference

O(h²)

⑧ Step Size

h ↓ → Truncation ↓ but Roundoff ↑

댓글