테일러 급수의 이해와 활용 (Taylor series)

수학 이야기 2013. 4. 29. 18:50

테일러 급수(Taylor series)에 대한 내용은 이미 인터넷에 좋은 글들이 많습니다. 그럼에도 이렇게 다시 글을 쓰는 이유는 스스로도 애매한 부분이 많기 때문입니다. 그래서 공부하는 셈치고 관련 내용들을 쭉 정리하게 되었습니다. 테일러 급수(Taylor series)가 무엇이고 왜 필요한지, 그리고 어떻게 활용되는지 하나씩 살펴보도록 하겠습니다.

 

1. 테일러 급수(Taylor series)의 이해

2. 테일러 정리(Taylor's theorem)

3. 테일러 급수의 활용 / 필요한 이유

4. 테일러 급수에 대한 생각

5. Ratio Test

 

 

1. 테일러 급수(Taylor series)의 이해

 

테일러 급수(Taylor series) 또는 테일러 전개(Taylor expansion)는 어떤 미지의 함수 f(x)를 아래 식과 같이 근사 다항함수로 표현하는 것을 말합니다. 

 

 

 --- (1)

 

테일러 급수에서 주의해야 될 사항은 좌변과 우변이 모든 x에 대해 같은 것이 아니라 x = a 근처에서만 성립한다는 점입니다. 즉, x가 a에서 멀어지면 멀어질수록 f(x) = p(x)로 놓는 것은 큰 오차를 갖게 됩니다. 한편, 근사다항식의 차수는 높으면 높을수록 f(x)를 좀더 잘 근사하게 됩니다.

 

테일러 급수는 결국 x = a에서 f(x)와 동일한 미분계수를 갖는 어떤 다항함수로 f(x)를 근사시키는 것입니다. 위 식에서 f(a) = p(a), f'(a) = p'(a), f''(a) = p''(a), ... 임은 쉽게 확인할 수 있을 것입니다. 테일러 급수를 이용해 이와같이 x = a에서 미분계수를 일치시키면 x = a 뿐만 아니라 그 주변의 일정 구간에서도 f(x)와 p(x)가 거의 일치되게 됩니다.

 

그런데 문제에 따라서는 f(x)를 1차 또는 2차까지만 테일러 전개하는 경우도 많습니다. 예를 들어, f(x)를 2차 다항함수로 근사할 경우에는

 --- (2)

와 같이 놓고 Q(x)를 0처럼 생각(무시)해 버립니다. 이 경우, f(x)를 무한차수 다항함수로 근사하는 것 보다는 근사오차가 크겠지만, x가 충분히 a에 가까운 경우에는 근사오차가 거의 없다고 볼 수 있습니다.

 

참고로, f(x)에 대한 테일러 급수/전개는 다음과 같은 형태로도 표현될 수 있습니다 (잘 보면 형태만 다를 뿐 결국 같은 말임)

 --- (3)

 

2. 테일러 정리(Taylor's theorem)

 

테일러 급수와 관계된 것으로 테일러 정리라는게 있습니다. 테일러 정리는 n번 미분가능한 함수 f(x)에 대해

 --- (4)

를 만족하는 실함수 h(x)가 반드시 존재한다는 것입니다. (증명은? wikipedia를 참조하시길..)

 

즉, 테일러 정리(Taylor's theorem)는 어떤 함수를 유한차수(n차)의 다항함수로 근사시킬 수 있는 수학적 근거를 제공합니다. 이 때, h(x)(x-a)n은 근사오차를 나타냅니다.

 

 

3. 테일러 급수의 활용 / 필요한 이유

 

테일러 급수가 필요한 이유는 쉽게 말하면 우리가 잘 모르거나 복잡한 함수를 다루기 쉽고 이해하기 쉬운 다항함수로 대체시키기 위함입니다. 또한 어떤 함수를 테일러 급수로 표현하면 그 함수의 특성을 분석하기가 좀더 용이해지기 때문입니다. 그럼 그 구체적 활용예들을 하나씩 살펴보도록 하겠습니다.

 

A. 정적분의 계산

 

부정적분을 계산하기 힘든 함수의 경우에 아래와 같이 테일러 급수를 활용하면 정적분의 계산값을 근사적으로 구할 수 있습니다.

 --- (5)

위 식에서 sin(x2)의 테일러 급수는 sin(t)의 t = 0에서의 테일러 전개에 t = x2을 대입하여 얻어진 식이며, 적분 구간이 [0, 1]이기 때문에 x = 0에서의(즉, a = 0) 테일러 급수를 사용해도 근사오차가 크지 않습니다.

 

B. 함수의 점근(asymptotic) 특성 파악

 

테일러 급수를 활용하면 함수(특히 삼각함수, 지수함수, 로그함수와 같은 초월함수)의 점근적 특성을 손쉽게 파악할 수 있습니다. 예를 들어, 아래와 같이 x = 0 근처에서 sinx ~ x 임을 테일러 급수를 이용하면 쉽게 알 수 있습니다.

 --- (6)

 

 

C. 문제 또는 모델의 단순화

 

테일러 급수의 가장 일반적인 활용예로 볼 수 있습니다. 즉, 어떤 복잡한 또는 잘 모르는 함수가 있을 때, 이 함수를 저차의(1~3차) 다항함수로 근사하여 사용함으로써 문제 또는 모델을 단순화시키는데 테일러 급수가 활용될 수 있습니다. 구체적인 예를 들기는 어렵지만 테일러 급수는 논문 등에서 어떤 이론이나 주장에 대한 논리적 근거를 단순화하여 설명할 때 유용하게 사용되는 기법 중의 하나입니다. 한 활용예로 가우스-뉴턴(Gauss-Newton) 방법을 증명하는데 테일러 급수가 활용됩니다. 이에 대한 내용은 뉴턴법/뉴턴-랩슨법의 이해와 활용(Newton's method)을 참조하기 바랍니다.

 

 

D. 기타 활용예

 

테일러 급수는 미분방정식을 풀 때, 또는 초월함수의 함수값을 계산할 때도 활용될 수 있습니다.

 

예를 들어, 미분방정식 y' = y, y(0) = 1은 y를 y = a0 + a1x + a2x2 + ... 라 놓고 풀면 y(0) = 1에서 a0 = 1, y' = y에서 a1 + 2a2x + 3a3x2 + ... = a0 + a1x + a2x2 + ...이 됩니다. 즉, a1 = a0 = 1, a2 = a1/2 = 1/2, ... 이런 식으로 y를 구할 수 있겠죠. 참고로, 이렇게 구한 y는 ex를 테일러 전개한 식과 같습니다.

 

다른 예로, sinx의 값을 컴퓨터로 계산한다고 했을 때, sinx = x - x3/3! + x5/5! - ... 와 같이 테일러 급수를 이용하여 함수값을 계산하면 몇 번의 계산만으로도 매우 정밀한 결과값을 얻을 수 있습니다.

 

 

4. 테일러 급수 근사의 유효 범위

 

어떤 함수에 대한 테일러 급수 근사는 x = a 근처에서만 유효합니다. 그렇다면 x = a에서 구한 테일러 급수가 어느 정도의 구간까지 유효할 것일까요? 고차함수로 근사할수록 구간이 넣어지겠지만 그건 함수마다, 그리고 얼마나 고차 함수로 근사를 했느냐에 따라 달라질 것입니다. 그 오차를 정량적으로 구할 수도 있겠지만 가능하면 관심 지점마다 별도로 테일러 급수를 계산하여 사용하는 것이 좋겠습니다.

 

5. Ratio Test (2014.9.13 추가된 내용)

 

댓글로 문의해 주신 분이 있어서 Ratio Test에 대한 내용을 추가합니다(참고자료: http://www.haverford.edu/physics/MathAppendices/Taylor_Series.pdf). 

 

Ratio Test는 원래 무한급수 a1 + a2 + ... 가 수렴하는지 여부를 |an+1/an|에 대한 극한값을 이용하여 간단하게 테스트할 수 있는 방법인데 테일러 급수에도 동일하게 적용할 수 있습니다.

 

테일러 급수에 대한 Ratio Test: 만일 어떤 함수 f(x)에 대해 x = a에서 구한 테일러 근사 다항식을 p(x) = p1 + p2 + p3 + ... + pn 라 하면 n→∞ 일 때, p(x) = f(x)가 되는 수렴구간은 ρ = limn→∞|pn+1/pn| < 1 인 x 구간이고, ρ>1 이면 발산, ρ = 1이면 수렴 또는 발산한다.

 

예를 들어, f(x) = ln(1+x)인 경우 x = 0에서의 테일러 급수는 다음과 같습니다.

 

ln(1+x) = x - (1/2)x^2 + (1/3)x^3 -... + (-1)^(n+1) * x^n/n + ...   --- (7)

 

이 때, ρ<1인 구간을 구해보면

 

ρ = limn→∞|(-1)^(n+2) * x^(n+1)/(n+1)) / (-1)^(n+1) * x^n/n)| = limn→∞|-(n/(n+1))x| = |x|<1 --- (8)

 

이므로 -1<x<1인 구간에서는 식 (7)의 테일러 전개가 ln(1+x)에 수렴함을 알 수 있습니다. 즉 ln(1+x)의 경우, x = 0에서 구한 테일러 근사 다항식은 다항식의 차수가 증가하면 x = 0 뿐만 아니라 -1<x<1 구간까지도 원래 함수ln(1+x)와 일치해짐을 알 수 있습니다.

 

 

by 다크 프로그래머