테일러 급수

오류 제보
수치해석 마지막 수정: 2026-07-11 04:06:22

○ 공개 검수 대기 표시 기준 보기

1. 개요

테일러 급수(Taylor series)는 충분히 매끄러운 함수를 한 점 근방에서 그 점의 함숫값과 미분값들로 이루어진 다항식(멱급수)으로 전개하는 방법이다. 함수 ff가 점 aa에서 무한히 미분 가능하면

f(x)=∑n=0∞f(n)(a)n! (x−a)n=f(a)+f′(a)(x−a)+f′′(a)2!(x−a)2+⋯f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}\,(x-a)^n = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^2 + \cdots

로 쓴다. a=0a=0인 특수한 경우를 매클로린 급수(Maclaurin series)라 부른다. 한마디로 “복잡한 함수를 그 자리에서 다항식으로 근사하는 만능 도구”이고, 이 단순한 아이디어가 수치미분·수치적분·유한차분법·뉴턴-랩슨법까지 수치해석 거의 전부의 이론적 토대가 된다.1

미분을 안다는 건 결국 그 점 근처에서 함수가 어떻게 생겼는지를 안다는 것이고, 테일러 급수는 그 “어떻게”를 항 하나하나로 풀어 쓴 설계도다. 1차항까지 자르면 접선(선형 근사), 2차항까지 자르면 접하는 포물선(2차 근사)이 된다.

2. 절단오차와 나머지항

현실의 컴퓨터는 무한급수를 다 더할 수 없으니 어딘가에서 자른다. nn차항까지 남기고 그 뒤를 버리는 것을 절단(truncation)이라 하고, 버려진 부분이 곧 절단오차(truncation error)다. 이 오차를 정확히 기술하는 것이 테일러 정리의 나머지항(remainder)이다. 라그랑주 형태로 쓰면 어떤 ξ∈(a,x)\xi \in (a, x)에 대해

Rn(x)=f(n+1)(ξ)(n+1)! (x−a)n+1R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\,(x-a)^{n+1}

이다. 핵심은 나머지항이 (x−a)n+1(x-a)^{n+1}에 비례한다는 것. 그래서 전개점에 가까울수록(∣x−a∣|x-a|가 작을수록) 근사가 급격히 좋아진다. 이 성질을 보통 빅오 표기로 압축해서, 스텝 크기 h=x−ah = x - a에 대해 오차가 O(hn+1)O(h^{n+1})이라고 쓴다.

수치해석에서 “이 도식은 2차 정확도(second-order accurate)다”라는 말은 바로 여기서 나온다. 오차가 O(h2)O(h^2)이라는 뜻이고, hh를 절반으로 줄이면 오차가 4분의 1로 준다는 실전적 약속이다. 격자만 촘촘히 하면 답이 좋아진다는 믿음의 수학적 근거가 이 나머지항 하나에 담겨 있다.

3. 수렴반경과 배신하는 함수들

테일러 급수가 항상 원래 함수로 수렴하는 것은 아니다. 급수가 수렴하는 구간의 반지름을 수렴반경(radius of convergence)이라 하는데, 이 밖에서는 아무리 항을 더해도 발산한다. ln⁡(1+x)\ln(1+x)의 매클로린 급수가 ∣x∣<1|x|<1에서만 수렴하는 것이 대표적인 예다.

더 얄궂은 경우도 있다. 매끄럽다고 무조건 안심하면 안 된다. 고전적인 반례가 f(x)=e−1/x2f(x) = e^{-1/x^2} (f(0)=0f(0)=0)인데, 이 함수는 원점에서 모든 계도함수가 0이라 매클로린 급수가 항등적으로 0이 되어버린다. 함수는 멀쩡히 살아 있는데 급수는 원점 말고는 어디서도 함수를 재현하지 못한다.2 이런 함수를 “해석적이지 않다”고 하며, 실함수 세계의 은근한 지뢰다.

이 이야기의 교훈. 테일러 근사는 국소적이다. 전개점 근처에서는 잘 맞지만 멀어지면 배신한다. 함수를 넓은 구간에서 다항식으로 다루고 싶다면 테일러가 아니라 보간과 근사의 체비쇼프 전개 같은 도구가 낫다.

4. 유한차분법의 뿌리

유한차분법의 모든 공식은 테일러 급수를 몇 번 전개하고 요령껏 조합해서 나온다. f(x+h)f(x+h)와 f(x−h)f(x-h)를 각각 전개해 보자.

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

두 식을 빼면 짝수차항이 상쇄되어 중심차분(central difference)이 나온다.

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

두 식을 더하면 홀수차항이 상쇄되어 2계도함수의 근사가 나온다.

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

한쪽만 전개해서 자르면 오차 O(h)O(h)짜리 전진/후진 차분이 된다. 즉 “어느 항을 남기고 어느 항을 지우느냐”의 선택이 곧 도식의 정확도 차수를 결정한다. 더 높은 차수를 원하면 여러 점의 전개를 연립해 절단오차의 주항을 소거하는데, 이 조직적 소거 기법이 수치미분의 리처드슨 외삽(Richardson extrapolation)이다.3

5. 뉴턴-랩슨법과 최적화

뉴턴-랩슨법도 테일러 급수의 자식이다. f(x)=0f(x)=0의 근을 찾을 때, 현재 추정값 xkx_k 근처에서 ff를 1차까지 전개한다.

f(x)≈f(xk)+f′(xk)(x−xk)f(x) \approx f(x_k) + f'(x_k)(x - x_k)

이 선형 근사를 0으로 놓고 xx에 대해 풀면 그 유명한 갱신식 xk+1=xk−f(xk)/f′(xk)x_{k+1} = x_k - f(x_k)/f'(x_k)이 곧바로 튀어나온다. 다변수로 확장하면 f′f' 자리에 자코비안 행렬이 들어간다. 뉴턴법이 근 근처에서 2차 수렴(반복마다 정확한 자릿수가 대략 2배)하는 이유도, 버린 것이 2차항 이상이라 오차가 제곱으로 줄기 때문이다.

최적화에서는 한 항 더 챙긴다. 함수를 2차까지 전개하면 헤세 행렬(Hessian)이 등장하고, 이 2차 근사의 극값을 찾는 것이 뉴턴형 최적화 알고리즘의 골자다. 요컨대 “근처를 다항식으로 근사하고 그 다항식의 답을 정답으로 삼는다”는 발상이 근 찾기와 최적화를 관통하는 하나의 정신이다.

6. 실전에서의 감각

  • 차수와 스텝의 줄다리기. 절단오차는 hh를 줄일수록 작아지지만, 무작정 줄이면 이번엔 부동소수점 연산의 반올림오차가 커진다. 특히 수치미분의 f(x+h)−f(x)f(x+h)-f(x)는 가까운 두 수의 뺄셈이라 자리수 손실(catastrophic cancellation)의 온상이다. 그래서 최적 스텝 크기가 존재하며, 이걸 무시하고 hh를 극단적으로 줄이면 오히려 답이 나빠진다.
  • 몇 항이면 충분한가. 실용 함수 라이브러리도 내부적으로 테일러/근사 다항식을 쓰지만, 수렴이 느린 구간에서는 급수 대신 유리함수 근사(파데 근사)나 논변수 축소(argument reduction)를 병행한다. “그냥 항 많이 더하면 되지”는 순진한 생각이다.
  • 오차 차수를 신뢰하되 검증하라. 도식이 O(h2)O(h^2)이라 주장하면, hh를 반씩 줄여가며 오차가 정말 4배씩 주는지 확인하는 격자 수렴 연구(grid convergence study)가 검증 및 확인의 기본기다. 이론 차수와 관측 차수가 어긋나면 코드에 버그가 있다는 강력한 신호다.

7. 관련 문서

8. Footnotes

  1. “미적분에서 배운 것 중 실무에서 제일 자주 써먹는 게 뭐냐”고 물으면 수치해석 하는 사람들은 대체로 테일러 급수라고 답한다. 나머지는 다 이걸 위한 빌드업이었다는 우스갯소리가 있다. ↩

  2. 이 함수는 “매끄럽지만(smooth) 해석적이지 않은(non-analytic)” 함수의 표준 예시다. 실해석과 복소해석의 결정적 차이가 여기서 갈린다. 복소평면에서는 이런 배신이 불가능하고, 미분 한 번 가능하면 무한히 가능하고 급수도 수렴한다. ↩

  3. 리처드슨 외삽은 서로 다른 스텝 크기의 근사를 영리하게 조합해 절단오차의 주항을 소거하는 기법이다. 오차의 hh 의존성을 알고 있다는 사실 하나만으로 공짜로 정확도를 끌어올리는, 수치해석계의 대표적 “머리를 쓰면 계산을 아낀다” 사례다. ↩

이 문서가 문제를 푸는 데 도움이 됐나요? 한 번의 클릭이 다음 검수 순서를 정합니다.

의견을 반영할게요. 감사합니다.

다음으로 읽기 수치적분 약 5분 더 탐색 →