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

수학 이야기 2013.04.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 = 0 근처에서 테일러 급수를 사용하는 것이 일반적입니다 (그래서 x = 0에서의 테일러 급수를 별도로 맥클로린 급수, Maclaurin series라고 부르죠). 그런데, 어떤 함수에 대한 테일러 급수 근사는 x = a 근처에서만 유효합니다. 그렇다면 x = 0에서 구한 테일러 급수가 어느 정도의 구간까지 유효할 것일까요? 그건 함수마다, 그리고 얼마나 고차 함수로 근사를 했느냐에 따라 달라질 것입니다. 그 오차를 정량적으로 구할 수도 있겠지만 가능하면 관심 지점마다 별도로 테일러 급수를 계산하여 사용하는 것이 좋을 것 같습니다.



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에서의 테일러 급수는 다음과 같습니다.


 --- (7)


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


 --- (8)


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



by 다크 프로그래머

저작자 표시 비영리 변경 금지
신고
  • 이전 댓글 더보기
  • student 2014.02.12 15:27 신고 ADDR 수정/삭제 답글

    테일러 급수를 어떻게 적용할 수 있는지에 대해서 궁금한 점이 많았었는데, 많은 도움이 되었습니다. 정말 감사합니다.

  • BlogIcon 겅대생 2014.04.11 15:05 신고 ADDR 수정/삭제 답글

    도움 많이 되었습니다 애매하던것들이 명쾌해졌네요!

  • 덩어리 2014.05.15 08:54 신고 ADDR 수정/삭제 답글

    감사합니다. 덕분에 궁금했던게 시원하게 해결되네요 ㅋ

  • 2014.09.05 11:55 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2014.09.05 12:26 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2014.09.05 13:01 신고 수정/삭제

      안녕하세요. 어떤 함수 전체를 근사하는 목적으로는 테일러 급수는 적합하지 않습니다. 테일러 급수는 어떤 함수를 극소적으로 다항 함수로 근사시키는 목적에 사용됩니다. 함수(데이터)를 전체적으로 근사하는 목적이라면 최소자승법과 같은 최적화 기법을 적용하시기 바랍니다(http://darkpgmr.tistory.com/142 글 참조)
      참고로, 가급적 문의성 댓글은 다른 분들에게도 참고가 되도록 공개로 부탁드립니다.

  • BlogIcon 김지원 2014.09.05 13:23 신고 ADDR 수정/삭제 답글

    극소적이라면 너무 활용가치가 없는것 아닌가요? 말그대로 f(x)=a인경우에만 테일러 급수를 찾을수 있다면 예제에 링크하신신 Logarithm은 어떻게 설명이 되야하는지요?
    제가보기엔 양끝을 제외한 다른 부분은 많이 근사가 잘된것 같습니다
    사실 헷갈리는 부분이 말씀하신 극소점 즉, 한점 에만 사용하여 근사화할수 있다고 하셨는데 Logarithm과 같은 결과를 보아도 잘 매치가 되는데요

    • BlogIcon 다크pgmr 2014.09.05 15:52 신고 수정/삭제

      네.. 기본적으로 테일러 급수는 x=a 에서 다항근사를 하는 것이지만 그 주변까지도 어느 정도는 근사가 되는 것이 사실입니다. 하지만 얼마나 멀리까지 근사가 되는지는 함수마다 다른 것이라서.. 어쨌든 테일러 전개의 목적은 어떤 복잡한 함수를 지역적으로 다항함수로 근사해서 분석, 또는 처리하는데 있습니다.

  • BlogIcon 김지원 2014.09.12 17:58 신고 ADDR 수정/삭제 답글

    다크 프로그래머님, 특정 함수를 테일러 series로 다항식 전개 할때 이 다항식이 수렴할지 않할지는 어떻게 판단 할수 있나요?
    -1에서 1사이는 그 어떤 함수가 와도 수렴 할까요?

    • BlogIcon 다크pgmr 2014.09.12 19:02 신고 수정/삭제

      함수에 따라서 수렴할 수도 있고 수렴하지 않을 수도 있습니다. ratio test라는 걸 이용하면 수렴구간을 계산할 수 있습니다. http://www.haverford.edu/physics/MathAppendices/Taylor_Series.pdf 글의 내용을 참조하시기 바랍니다.

  • 김지원 2014.09.12 23:05 신고 ADDR 수정/삭제 답글

    다크 프로그래머님 말씀하신 ratio를 보았는데요 거기 예제에 나온 ln(1+x) 가 실제 어떻게 적용된건가요? 아무리 봐도 수식이 이해가 가질 않아서요

    수식 (11) 에보면 |nx|/|n+1| 이 갑자기 나왔는데 이게 어떻게 나올수 있는것인지요?

    • BlogIcon 다크pgmr 2014.09.13 07:24 신고 수정/삭제

      간략히 설명을 드려보면,
      어떤 함수 f의 x=0에서의 테일러 전개가 f = p1 + p2 + ... + pn + ... 라 할때, ρ = lim n->∞ |pn+1/pn|<1 인 구간에서는 테일러 급수가 수렴(해당 x구간에서 f와 테일러 다항식이 일치)하고, ρ>1이면 발산하며, ρ=1이면 수렴할수도 발산할수도 있다는 것이 ratio 테스트입니다. ln(1+x)의 경우에는 pn = (-1)^n(x^n/n)이므로 ρ = lim n->∞ |{(-1)^(n+1)x^(n+1)/(n+1))}/{(-1)^n(x^n/n)}| = lim n->∞ |-nx/(n+1)| = |x| 가 됩니다. 따라서, |x|<1 즉, -1<x<1에서는 x=0에서의 테일러 전개가 원래 함수 f에 수렴하게 됩니다. 그리고 x<-1, x>1인 구간에서는 아무리 차수를 높여도 x=0에서 구한 테일러 다항식이 f와 같아지지 않는다는 것을 알 수 있습니다.

  • 감사합니다! 2014.09.23 00:35 신고 ADDR 수정/삭제 답글

    감사합니다! 테일러급수, 테일러전개식에 대한 정보에 허덕이던 중에 많은 도움이 되었습니다.

  • 금도끼은도끼 2015.03.30 12:55 신고 ADDR 수정/삭제 답글

    안녕하세요.
    40대중반 나이에 취미삼아 프로그래밍공부를 하는중에
    테일러급수라는게 나와서 이게먼가 하구 검색하다가 여기까지와보게되었네요
    역시 수학은 ㅠㅠ
    미적분도 나오고 공부한지가 넘오래되서 ㅠㅠ
    찾아볼게 더생겨서 가네요
    좋은정보감사합니다.

  • Ha's 2015.04.03 16:58 신고 ADDR 수정/삭제 답글

    대학 교양통계학 때 이후로 한 30년 수학을 들여다 볼 일이 없었는데.... 어쩌다가 테이러까지 들어와버린 것인지 .. 다크프로그래머님 글을 보면서 소일삼아 수학공부를 해볼까합니다...
    그런데,,,,, 식(5)에서 sin(x^2) 가 그 우측의 괄호안 수식으로 어떻게 변환하는지 유추가 안됩니다만..... 대학 수학입문서로서 탄탄한 책 소개해주시기바랍니다...부탁드립니다.

    • BlogIcon 다크pgmr 2015.04.04 05:53 신고 수정/삭제

      sin(x^2)의 테일러 전개를 적은 것인데, 식 (1)을 참고하시면 좋을 것 같습니다. 그리고 sin(x^2)을 미분하기 위해서는 '합성함수의 미분'에 대해 찾아보시면 좋을 것 같습니다. 서적에 대해서는 저도 아는 바가 없어서 .. ^^;

  • 이진용 2015.04.06 17:07 신고 ADDR 수정/삭제 답글

    도움이 많이되었어요.
    왜 이런 공부를 해야하는지 이해가되지않아
    공부의 진전이 없었는데 궁금했던 부분이
    명쾌하게 설명이되어 정말 감사합니다.

  • 가카 2015.04.26 17:24 신고 ADDR 수정/삭제 답글

    안녕하세요! 블로그 잘 보고 있습니다. 항상 감사합니다.
    본문중에서 햇깔리는 내용이 있는데 본문에서

    ' 테일러 급수가 필요한 이유는 쉽게 말하면 우리가 잘 모르거나 복잡한 함수를 다루기 쉽고 이해하기 쉬운 다항함수로 대체시키기 위함입니다. '

    이라고 하셨는데 결국 근사를 한다는 것은 원래 함수 f(x)를 알고 있다는 뜻 아닌가요?
    그래야만 f'(x)를 구해 알기 쉬운 다항식으로 근사 할 수 있으니깐요...
    즉, ' 우리가 잘 모르거나 복잡한 함수' 라는 말은 함수가 수식적으로 표현 되어 있어 저희가 수식은 이미 알고있지만 충분히 복잡하여 잘 모른다는 뜻인가요?

    • BlogIcon 다크pgmr 2015.04.27 07:38 신고 수정/삭제

      네, 좋은 질문이신데요 말씀하신 것처럼 f(x)는 알고 있어야 합니다. 하지만, 수식을 알고 있어도 함수가 어떤 변화 특성을 갖는지 알기 위해서는 가능한 x 값들을 일일히 대입해 봐야 할 것입니다. 그런데, f(x)가 어떤 구간에서 예를 들어 우리가 잘 알고 있는 y = x^2과 유사하다는 것을 안다면 이 구간에서 함수값의 변화를 예측하거나 처리를 하는 것이 훨씬 용이할 것입니다. 이러한 목적으로 함수를 단순화하는 것이 테일러 근사라고 생각하시면 좋을 것 같습니다.

  • 로션 2015.09.21 12:37 신고 ADDR 수정/삭제 답글

    감사합니다 테일러급수에 대한 이해에 큰도움이 되었습니다. 정리가 깔끔하니 잘읽히고 좋네요 ㅎㅎ, 저장해두고 보고 싶은데 비공개로 포스팅 해도 될까요?

  • 감사합니다 2016.03.12 22:34 신고 ADDR 수정/삭제 답글

    대학 강의 중 너무 순식간에 설명이 끝나서 보충 설명이 필요했는데 덕분에 정리 잘 했습니다. 감사합니다!!

  • 곰디와친구들 2016.04.16 15:56 신고 ADDR 수정/삭제 답글

    Ln(1+x) 를 테일러 전개하신 것에 대해 궁금한게 있습니다. 제 생각에도 Ratio Test 로 풀어보면 분명 -1 < x < +1 로 범위 제한되는게 맞는 것 같은데 인터넷 검색해보면 -1 < x <= +1 즉 x구간 (-1,+1] 로 명시한 곳도 많아서 뭐가 맞는지 궁금하네요? x = -1 은 당연히 로그함수 특성상 제외되어야 겠고..

    • BlogIcon 다크pgmr 2016.04.17 12:09 신고 수정/삭제

      수렴범위는 -1 < x <= 1이 맞는 것 같습니다. ratio test < 1이면 수렴하고 ratio test = 1이면 함수에 따라서 수렴할수도 있고 발산할 수도 있기 때문에 그건 함수마다 따져 봐야 합니다. ln(1+x)의 경우는 테일러 급수가 +, -가 교대로 반복되는 형태이기 때문에 ratio test가 1이면 급수의 후반부가 ... + a - a + a - a ... 와 같은 형태가 된다는 말이고 또한 a -> 0이기 때문에 수렴할 것으로 생각됩니다.

  • Lee HyeSung 2016.11.17 11:51 신고 ADDR 수정/삭제 답글

    좋은글 잘 읽고 갑니다. 이해가 잘되었어요~^^

  • 공도리 2017.04.08 12:14 신고 ADDR 수정/삭제 답글

    너무 좋은정리 감사합니다. 전자기학 배우다가 궁금해서 검색해서 좋은 글읽고가네요.

  • BlogIcon 톈진난만 2017.05.26 13:53 신고 ADDR 수정/삭제 답글

    잘읽었습니다! ㅎㅎ

  • 감사합니다 ㅜㅜ 2017.10.08 22:34 신고 ADDR 수정/삭제 답글

    학교 과제를 수행하는데 많은 도움이 되었네요!
    이해하게 해주셔서 정말정말 감사합니다 ㅜㅜ 참고 좀 해도 될까요??