여러 함수의 테일러 급수에 대한 내용은 테일러 급수/목록 문서 참고하십시오.
테일러 급수의 예 (사인 함수) [math(\displaystyle\small{\sin{x}=\sum_{n=0}^\infty \frac{(-1)^n x^{2n+1}}{(2n+1)!}})] |
1. 개요
Taylor series잉글랜드의 수학자 브룩 테일러가 18세기에 만든 급수이다. 주어진 함수를 정의역의 특정 점의 미분계수들을 계수로 하는 다항식의 극한(멱급수)으로 표현하는 것을 말한다. 테일러 전개(Taylor expansion)라고도 부른다.
[math(\displaystyle \begin{aligned} f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(a)}{n!}(x-a)^{n} \end{aligned})]
간단히 설명하자면, 테일러 급수란 여러 번 미분이 가능한 함수 [math(f(x))]에 대해 [math(x=a)]에서 그 [math(f(x))]에 접하는 멱급수[1]로 표현하는 방법이라고 할 수 있다. 특히 [math(a=0)]에서의 테일러 전개는 자주 사용되며, 이를 특별히 매클로린 급수(Maclaurin series)라고도 부른다.
[math(\displaystyle \begin{aligned} f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(0)}{n!}x^{n} \end{aligned})]
원래 테일러 급수는 무한개의 항을 가진 멱급수를 통해 어떤 함수를 표현하는 것이지만, 실제로 사용할 때에는 편의를 위하여 유한 개의 항만 사용하여 근사의 형태로 활용한다.
1.1. 관련 영상
2. 테일러 정리
어느 구간에서 미분 가능한 함수를 유한 테일러 다항식과 근접할수록 [math(0)]에 가까워지는 오차항의 합으로 표현할 수 있다는 정리. 우리가 보통 테일러 급수를 통해서 함수를 근사한다고 하는 것은 이 테일러 정리를 가리킨다.'접선'을 통해 함수를 근사하는 선형 근사를 일반화한 다항함수 형태라고 생각하면 이해하기 쉬우며,[2] 테일러 급수는 이 테일러 다항식에서 오차항을 없애고 무한차원까지 계속 확장한 것으로 볼 수 있다.
참고로 테일러 정리를 이용해 함수를 근사할 수 있단 점은 무한히 미분 가능한 실함수의 테일러 급수와 주어진 함수가 같단 것을 의미하진 않는다. 테일러 다항식의 차원을 계속 확장시켜도 다항식의 값은 전혀 생뚱맞은 값을 가지고 오차항이 사라지지 않을 수 있다! 대표적인 예로 [math(x>0)]에서는 [math(e^{-1/x})]로, 나머지에서는 [math(0)]으로 정의된 함수를 들 수 있는데, 이 함수를 [math(0)]에서 테일러 전개하면 언제나 0이 나온다. 테일러 급수가 그 급수를 만드는 데 사용된 함수와 같아지는 함수는 특별히 해석함수(analytic function)라고 부른다.
한편, 실수와는 다르게[3] 복소함수의 경우엔 함수가 열린 집합에서 한 번 미분 가능하면, 무한 번 미분이 가능함이 보장되며, 테일러 급수로 표현이 가능한 독특한 성질이 있다.
또한 오차항, 즉 나머지항(reminder)은 코시의 형태와 라그랑주의 형태의 2가지 형태가 있는데, 각각 다음과 같다.
- 코시의 나머지항
{{{#!wiki style="text-align:center"
[math(\displaystyle R_n(x)=\frac{f^{(n+1)}(t_x)}{n!}(x-t_x)^{n}(x-a))] (단, [math(a<t_x<x)])}}} - 라그랑주의 나머지항
{{{#!wiki style="text-align:center"
[math(\displaystyle R_n(x)=\frac{f^{(n+1)}(t_x)}{(n+1)!}(x-a)^{n+1})] (단, [math(a<t_x<x)])}}}
특히 라그랑주의 나머지항에 [math(n=0)]을 대입하면
[math(\displaystyle R_0(x)=f'(t_x)(x-a))]
가 되어[4], 평균값 정리의 형태가 된다. 그렇기에 라그랑주의 나머지항을 대입한 테일러 정리는 확장된 평균값 정리의 형태로 여겨지기도 한다.[5]
3. 증명
증명은 크게 2가지로 나눌수 있다. 하나는 적분을 통한 방법, 하나는 미분을 통한 방법이다. 보통은 증명의 복잡함 때문에, 변수 하나짜리 함수로 증명하는 경우가 많다.적분법은 미적분학 제2정리와 부분적분을 통해 증명하고, 미분법은 엡실론-델타 논법에 의한 부등식에서 출발해서 증명한다.
그 외에도 복소해석학의 정리를 이용하게 될 경우는 일반화된 코시 적분 공식만으로 증명이 끝난다.
3.1. 적분법으로 증명
무한번 미분 가능한 어떤 함수 [math(f(x))]를 고려하자. 미적분학의 기본 정리에 의하여[math(\displaystyle \begin{aligned} f(x)=f(a)+\int_{a}^{x} f'(t)\,{\rm d}t \end{aligned})]
가 성립한다. 여기서 부분적분을 시행하는데, 1을 적분할 함수, [math(f'(t))]를 미분할 함수로 설정하자. 이때, 이 적분에서 [math(t)]가 적분 변수이므로 [math(x)]는 상수 취급할 수 있다. 따라서 1을 [math(t)]에 대하여 적분한 형태는
[math(\displaystyle \begin{aligned} t+C \end{aligned})] (단, [math(C)]는 적분 상수)
로 쓸 수 있다. 이때, [math(C=-x)][6]라 두면, 1의 부정적분을 [math(t-x)]로 잡을 수 있다.
1 | [math(\displaystyle \begin{aligned} \int^x_a f'(t)\,{\rm d}t &= \biggl[(t-x)f'(t) \biggr]_{a}^{x}-\int^x_a (t-x)f(t)\,{\rm d}t \\&=f'(a)(x-a)+\int^x_a (x-t)f(t)\,{\rm d}t \end{aligned})] |
2 | [math(\displaystyle \begin{aligned} \int_{a}^{x} (x-t) f(t)\,{\rm d}t &= \biggl[-\frac{{(x-t)}^{2}}{2}f(t) \biggr]_{a}^{x}-\int^x_a -\frac{{(x-t)}^{2}}{2}f(t) \,{\rm d}t \\&= \frac{(x-a)^2}{2}f''(a)+\int^x_a \frac{{(x-t)}^{2}}{2}f(t) \,{\rm d}t \end{aligned})] |
3 | [math(\displaystyle \begin{aligned} \int_{a}^{x}\frac{(x-t)^2}{2}f'''(t)\,{\rm d}t &= \biggl[-\frac{{(x-t)}^{3}}{6}f(t) \biggr]_{a}^{x}-\int^x_a -\frac{{(x-t)}^{3}}{6}f'(t) \,{\rm d}t \\& = \frac{(x-a)^3}{6}f(a)+\int_{a}^{x}\frac{(x-t)^3}{6}f'(t)\,{\rm d}t \end{aligned})] |
[math(\vdots)] | [math(\vdots)] |
[math(n)] | [math(\displaystyle \begin{aligned} \int_{a}^{x}\frac{(x-t)^{n-1}}{(n-1)!}f^{(n)}(t)\,{\rm d}t &= \biggl[-\frac{{(x-t)}^{n}}{n!}f^{(n)}(t) \biggr]_{a}^{x}-\int^x_a -\frac{{(x-t)}^{n}}{n!}f^{(n+1)}(t) \,{\rm d}t \\& = \frac{{(x-a)}^{n}}{n!}f^{(n)}(a) +\int^x_a \frac{{(x-t)}^{n}}{n!}f^{(n+1)}(t) \,{\rm d}t \end{aligned})] |
[math(\displaystyle \begin{aligned} f(x)=f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^{2}+\cdots+\frac{f^{(n)}(a)}{n!}(x-a)^{n}+\int_{a}^{x}\frac{f^{(n+1)}(t)}{n!}(x-t)^{n}\,{\rm d}t \end{aligned})]
이것을 합의 기호로 간단히 만들면,
[math(\displaystyle \begin{aligned} f(x)=\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^{k}+\int_{a}^{x}\frac{f^{(n+1)}(t)}{n!}(x-t)^{n}\,{\rm d}t \end{aligned})]
여기서 적분의 평균값 정리를 사용하면,
[math(\displaystyle \begin{aligned} \int_{a}^{x}\frac{f^{(n+1)}(t)}{n!}(x-t)^{n}\,{\rm d}t =\frac{f^{(n+1)(\xi)}(\xi)}{(n+1)!}(x-a)^{n+1} \end{aligned})] (단, [math(\xi)]는 [math(a)]와 [math(x)] 사이의 실수)
이를 라그랑주의 나머지라 부르고, [math(n \to \infty)]일 때, 라그랑주의 나머지가 0으로 수렴한다면 최종적으로 [math(f(x))]는 다음과 같이 나타낼 수 있다.
[math(\displaystyle \begin{aligned} f(x)&=\lim_{n \to \infty}\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^{k} \\ &=\sum_{n=0}^{\infty}\frac{f^{(n)}(a)}{n!}(x-a)^{n} \end{aligned})]
이때, [math(a=0)]을 대입하면
[math(\displaystyle \begin{aligned} f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(0)}{n!}x^{n} \end{aligned})]
인데 이것은 위에서 밝혔듯 매클로린 급수이다. 보통 테일러 급수를 활용할 때, 이 형태로 하게된다.
3.2. 코시 적분 공식을 통한 복소해석적 증명
[정리] 함수 [math(\displaystyle \begin{aligned} f: A\subseteq\mathbb{C}\to\mathbb{C} \end{aligned})] 가 단순 닫힌 경로 [math(\displaystyle \begin{aligned}\mathcal{C}:=\left|z-z_0\right|<r\end{aligned})] 에서 해석적이라면, [math(\displaystyle \begin{aligned}f(z)=\displaystyle{\lim_{n \to \infty}\sum_{k=0}^{n}\frac{f^{(k)}(z_0)}{k!}\left(z-z_0\right)^{k}}\end{aligned})] 이다. |
[전제 조건] 함수 [math(\displaystyle \begin{aligned} f: A\subseteq\mathbb{C}\to\mathbb{C} \end{aligned})] 가 주어졌을 때, 이 함수가 단순 연결 영역 [math(\mathfrak{R})]에서 해석적이다. 이 경우 해당 영역 내의 단순 단힌 경로 [math(\mathcal{C})] 내부의 점 내부의 점 [math(z_0)]에 대하여, 모든 자연수 [math(n)]에 대하여 다음이 성립한다.
|
증명은 아래와 같다.
[math(\mathcal{C}:\left|z\right|=r)]
내부의 점 [math(w)]에 대해서 증명하자. 코시 적분 공식인
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z-w}{\rm d}z})]
에서 시작하자.
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z-w}{\rm d}z})]
는
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z}\frac{1}{1-{w}/{z}}{\rm d}z} \quad \cdots \, \small{\text{①}})]
그런데, [math(w)]는
[math(\mathcal{C}:\left|z\right|=r)]
내부의 점이다. 즉, [math(\displaystyle| {w}/{z}|<1)]임은 자명하다.
여기에 등비급수의 성질을 이용하자. [math(|t|<1)]에 대하여
[math(\displaystyle{\lim_{n \to \infty}\sum_{k=0}^{n}t^n=\frac{1}{1-t}})]
라는 것은 잘 알려져 있다.
이제
[math(t=\displaystyle{\frac{w}{z}})]
를 대입하면
[math(\displaystyle{\lim_{n \to \infty}\sum_{k=0}^{n}\left(\frac{w}{z}\right)^n=\frac{1}{1-{w}/{z} }}\quad \cdots \, \small{\text{②}} )]
①에 ②를 대입하자. 즉,
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z}\frac{1}{1-\frac{w}{z}}{\rm d}z=\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z}\lim_{n \to \infty}\sum_{k=0}^{n}\left(\frac{w}{z}\right)^n{\rm d}z})]
라고 쓸 수 있다. 그런데 적분 내부는 [math(z)]에 대해서 적분하는 것이므로, [math(z)]와 관계 없는 [math(w)]는 상수 취급해서 적분기호 앞으로 빼낼 수 있다. 즉,
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\lim_{n \to \infty}\sum_{k=0}^{n}w^n\int_{\mathcal{C}}\frac{f(z)}{z}\frac{1}{z^n}{\rm d}z=\frac{1}{2\pi i}\lim_{n \to \infty}\sum_{k=0}^{n}w^n\int_{\mathcal{C}}\frac{f(z)}{z^{n+1}}{\rm d}z}\quad \cdots \, \small{\text{③}})]
여기에 일반화된 코시 적분 공식을 대입하자.
[math(f^{(n)}(0)=\displaystyle{\frac{n!}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z^{n+1}}{\rm d}z})]
이므로
[math(\displaystyle{\frac{1}{2\pi i}\int_{\mathcal{C}}\frac{f(z)}{z^{n+1}}{\rm d}z=\frac{f^{(n)}(0)}{n!}}\quad \cdots \, \small{\text{④}})]
③에 ④를 대입하자.
[math(f(w)=\displaystyle{\frac{1}{2\pi i}\lim_{n \to \infty}\sum_{k=0}^{n}w^n\int_{\mathcal{C}}\frac{f(z)}{z^{n+1}}{\rm d}z=\lim_{n \to \infty}\sum_{k=0}^{n}\frac{f^{(n)}(0)}{n!}w^n})]
가 된다.
이제 이걸 일반화시키기 위해
[math(\mathcal{C}:\left|z-z_0\right|=r)]
로 두자. 즉 [math(w=z-z_0)]로 두면,
[math(f(z)=f(w+z_0)=\displaystyle{\lim_{n \to \infty}\sum_{k=0}^{n}\frac{f^{(n)}(z_0)}{n!}\left(z-z_0\right)^n})]
이 된다.
4. 다변수함수의 테일러 전개
다변수함수의 테일러 전개는 다음과 같이 쓸 수 있다.[math( \displaystyle \begin{aligned} &T[f(x_1,\,x_2,\,...,\,x_n) ]_{x_1 = a_1,\, x_2 = a_2,\, \cdots,\, x_n = a_n} \\& \qquad \qquad = f(a_1, a_2, ... , a_{n-1}, a_n) + \sum_k^n {\partial f(x_1, ..., x_n)\over \partial x_k}\biggr|_{x_1 = a_1,\, x_2 = a_2,\, \cdots,\, x_n = a_n} (x_k - a_k) \\ &\qquad \qquad \qquad \qquad + {1\over 2!}\sum_{j,k}{\partial^2 f(x_1, ..., x_n)\over \partial x_j \partial x_k}\biggr|_{x_1 = a_1,\, x_2 = a_2,\, \cdots,\, x_n = a_n} (x_j - a_j)(x_k - a_k) + \cdots \end{aligned})]
헤세 행렬 \
[math( \displaystyle D^2_{ij} = H_{ij} = {\partial^2\over\partial_i\partial_j} )]
및
[math(\displaystyle Df(\mathbf{x}) = \boldsymbol{\nabla} f(\mathbf{x}))]
로 이차항까지 다시 쓰면 다음과 같이 정리된다.
[math(\displaystyle T[f(\mathbf{x}) ]_{\mathbf{x}=\mathbf{a}} = f(\mathbf{a})+(\mathbf{x}-\mathbf{a})^T Df(\mathbf{a}) + {1\over 2!}(\mathbf{x}-\mathbf{a})^T D^2 f(\mathbf{a}) (\mathbf{x}-\mathbf{a}) + \cdots)]
5. 사용법
5.1. 중등 교육과정에서
중등 교육과정(고등학교 교육과정)에서는 일반적으로 테일러 급수를 다루지 않지만, 일부 문제에서 활용되는 경우가 있어 학원가에서 종종 가르치는 일이 있다.이때 해석함수가 아니면서 무한히 미분 가능한 함수가 나오지 않으므로[7][8] 주어진 함수가 테일러 급수로 표현될 수 있다고 가정하고 사용한다. 다만 테일러 급수로 표현되더라도 그 급수가 수렴하는지 여부를 잘 따져야 한다.
2015 개정 교육과정에서는 고급 수학Ⅱ에 수록되었다. 다만 이 과목은 거의 과학고에서만 배우므로 일반고에서는 배울 일이 없다.
2020년대에 이르러서는 고등학교 교육과정에 아예 포함되지도 않는 내용을 가지고 시험문제가 출제되는 경우는 없다고 봐도 무방하므로 이 글을 보는 고등학생은 안심해도 좋다. 교육과정에 포함되지 않는 내용을 출제하는 것은 '고등학교 교육과정에서 배운 내용을 토대로 그것을 얼마나 이용할 수 있는지를 판단한다'는 수능 문제 출제 원리에 적합지 않고, 내신문제로서도 학생들이 크게 반발할 것을 우려하여 교사들도 도박을 하지 않는다.
5.1.1. 극한에서
극한에서는 아주 사기적인 무기인 로피탈이 존재하긴 하지만, 이는 제약이 크고 부정형일 경우에만 쓸 수 있다는 단점이 있다.[9] 그러나 테일러 급수를 조금만 이용하면 얼마든지 초월함수의 극한을 쉽게 풀 수 있다.로피탈 정리와 같이 사용될 수 있으며 설명은 아래와 같다.
사실 말로만 거창하지 쉽게 말하면 '접곡선 변환'[10] 이라고 생각하자. [math(\sin x)] 의 [math(x=0)]의 접선이 [math(y=x)]임을 이용해서[11]
[math(\sin x=\tan x=x)]
로 치환
[math(\displaystyle\cos x=1-\frac{x^{2}}{2})][12]
로 치환,
[math(\begin{aligned} e^{x}&=x+1 \\ \ln\left(1+x\right)&=x \end{aligned})]
로 각각 치환하면 정말로 쉽게 풀린다! 로피탈 정리는 조건이 엄격하지만 테일러 급수는 단지 극한이 [math(x=0)]으로만 가준다면 위처럼 치환해서도 아무런 문제가 없다. 애초에 [math(x=a)] 에서의 접선의 정의가 [math(x=a)]에서 함숫값과 미분계수가 동일한 직선을 고른 것이기 때문이다. 이를 응용하면
[math(\displaystyle \begin{aligned} \sin ax &\approx ax \\ \cos ax &\approx1-\frac{\left(ax\right)^2}{2}\end{aligned})]
라는 식으로 '안에 있는 변수까지' 쉽게 치환해도 되기 때문에 상관은 없다.[13] 만약 주관식에 쓰고 싶다면 코사인 함수를 제외하고 '접선이기 때문에~' 라고 설명해도 아무런 수학적 모순이 없다!
다만 코사인 함수는 테일러 급수를 알아야 하기 때문에... 아래와 같이 배각의 공식으로 묘수(?)를 써야 한다.
[math(\begin{aligned} \cos x&=1-2\sin^2\frac{x}{2} \\& \approx 1-2\left(\frac{x}{2}\right)^2\\&=1-\frac{x^2}{2} \end{aligned})]
단, 종종 [math(\sin x)]라든가 [math(\tan x)]를 그냥 [math(x)]로 치환하여 푸는 걸 방지하고자 답이 틀리게 나오도록 만들어진 문제도 있으니 주의해야 한다. 가령
[math( \displaystyle \lim_{x \to 0} \frac{\tan x - \sin x}{x^3} = \frac{1}{2} )]
이지만
[math(\sin x=\tan x=x)]
로 치환할 경우 답이 제대로 나오지 않는다. 사실 제대로 된 테일러 급수로 풀면 당연히 답이 나온다. 분모에 [math(x^3)]이 있으니 접선이 아니라 3차항까지 전개하는 것이 당연.
[math(\begin{aligned} \sin x &= x-\frac{x^3}{6} \\ \tan x &= x+\frac{x^3}{3} \end{aligned})]
로 치환하면 테일러 급수만으로 풀린다.[14]
- [참고: 정석적인 풀이]
- -----
[math(\begin{aligned} \lim_{x\to 0} \frac{\tan{x}-\sin{x}}{x^3}&=\lim_{x\to 0} \frac{\sin{x}(\sec{x}-1)}{x^3} \\ &=\lim_{x\to 0} \frac{\sin{x}}{x} \frac{\sec{x}-1}{x^2} \\&=\lim_{x\to 0} \frac{\sin{x}}{x}\frac{1-\cos{x}}{x^2} \cdot \sec{x} \\ &=\lim_{x\to 0} \frac{\sin{x}}{x} \frac{2 \sin^{2}{\dfrac{x}{2} }}{x^2} \cdot \sec{x} \\ &=\lim_{x\to 0} \frac{\sin{x}}{x} \frac{2 \sin^{2}{\dfrac{x}{2} }}{\biggl(\dfrac{x}{2} \biggr)^2} \cdot \frac{1}{4} \cdot \sec{x} \\ &=\lim_{x\to 0} \frac{\sin{x}}{x} \cdot \frac{1}{2}\lim_{x\to 0} \frac{ \sin^{2}{\dfrac{x}{2} }}{\biggl(\dfrac{x}{2} \biggr)^2} \cdot \lim_{x\to 0} \sec{x} \\ &= 1 \cdot \biggl( \frac{1}{2} \cdot 1 \biggr)\cdot 1 \\&=\boldsymbol{\frac{1}{2}} \end{aligned})]
위 풀이에는 삼각함수 항등식
[math( \tan{x}=\dfrac{\sin{x}}{\cos{x}}=\sin{x}\sec{x} )]
와 반각의 공식
[math( \sin^{2}{\dfrac{x}{2}}=\dfrac{1-\cos{x}}{2} )]
가 쓰였다.
지금 소개한 테일러 급수와 로피탈의 정리의 차이점은 먼저 로피탈의 정리는 '원래 함수 형태를 모르는 함수' 도 미분값만 안다면 얼마든지 정리를 적용할수 있지만, 테일러 급수는 그럴 수 없다. 만약 테일러 급수를 쓰고도 뭔가 이상한 형태이면 로피탈 정리도 써버려서 쉽게 정리하면 되니까 결국 대학공식만 가지고 대부분의 문제를 풀 수 있을 것 같았는데 요즘 수능 체제 자체가 '극한값 자체는' 쉽게 구하는 대신 '도형을 관찰하여 극한식을 추출하기가' 무척 어렵다.
단, 이 예제에서는 [math(x)]가 0으로 갈 때의 극한값을 구하는 것이라는 사실을 주의해야 한다. 여기서 사용한 테일러 급수는 일반적인 식에서 [math(a=0)]을 대입한 경우이다. 만약에 일반적으로 [math(x)]가 [math(a)]로 가는 경우라면 일반적인 테일러 급수의 식을 사용하여야 한다.
지수함수, 삼각함수, 로그함수 등 문제에 잘 나오는 함수들을 이렇게 일차항 근사를 빠르게 할 수 있다면(혹은 외워버린다면) 이제 극한문제는 고민할 필요도 없을 거다. 혹, 안 풀리는 것이 있다면, 불연속이거나 미분불가능한 이상한 방법으로 만들어진 특수한 함수일 수 있다.[15] 그건 다른 방법을 찾아야 하겠지만, 그것도 아닌데 풀리지 않으면, 이차항 근사까지 하면 다 풀릴 거다. 높은 차수항까지 근사할수록 값이 정확할 확률은 더욱 높다.
5.2. 고등 교육과정에서
테일러 급수가 원래 함수보다 다루기 편하기 때문에[16] 다변수나 복소수 환경에서 테일러 급수를 다루는 법을 익히게 된다.실수에서는 일부가 같다고 다른 곳에서도 언제나 같은 것은 아니지만, 복소수의 경우 '유계'인 영역에서는 일부만 같아도 정의되는 영역 전부에서 같아진다. 즉, 테일러 전개로 구한 급수도 수렴범위에서는 원래 함수랑 완전히 똑같아 진다는 사실. 테일러 정리를 수식으로 쓰면 다음과 같다.
[math(f(x))]가 [math((n+1))]번 미분 가능할때 [math(\xi\in(x_{0},\,x))]가 존재하여,
[math(\displaystyle \begin{aligned} f(x)&=P_{n}(x)+R_{n}(x) \\ \displaystyle P_{n}(x)&= \sum_{k=0}^{n}\frac{f^{(k)}(x_{0})}{k!}(x-x_{0})^{k} \\ \displaystyle R_{n}(x)&= \frac{f^{(n+1)}(\xi)}{(n+1)!} {(x-x_{0})^{n+1}} \end{aligned})]
[math(P_{n}(x))]는 [math(n)]차 테일러 다항식으로 부르며 [math(R_{n}(x))]는 나머지 항[17] 또는 truncation error로 부른다. [math(n \to \infty)]일 때 [math(P_{n}(x))]의 극한을 테일러 급수로 부른다.
공학수학에서는 미분방정식을 풀 때도 사용할 수 있다. 다만 계산의 과정은 노가다이다. 사실 풀이법이 정확히 알려진 미분방정식은 그렇지 않은 미분방정식보다 훨씬 적기 때문에, 프로베니우스 해법(Frobenius method)을 위시한 무한급수 해법만이 실제로 계산하는 데에 사용된다. 애초 베셀 함수, 초기하함수, 르장드르 함수 등 자연과학, 공학 계열에서 등장하는 수많은 특수함수들은 미분방정식과 그 해로서의 무한급수로 정의된다.
복소함수에서는 이를 일반화한 로랑 급수가 있으며, 테일러 급수는 [math(0)]차항(상수항)부터 쭉 더한다면, 로랑 급수는 여기다가 [math(-1)]차항부터 밑으로도 쭉 더한 것을 추가한다.[18] 테일러 급수와 같은 방식을 실수가 아닌 임의의 대수적 구조 위에서 전개하기도 한다. (대표적으로 행렬의 지수를 이렇게 표현한다.)
계산기나 각종 수치해석 프로그램에서 삼각함수, 로그함수 등의 복잡한 함수를 계산할 때 쓰이는 방법 중 하나이기도 하다. 컴퓨터의 특징 상 삼각비를 직접 재서 계산하는 등의 짓은 할 수 없기에 사칙연산으로만 이루어졌으면서 충분한 숫자의 항을 더하면 일정 이상의 정확도를 보장하는 테일러 급수로 대체하는 것.
아래의 사용 예를 보면 알 수 있겠지만, 인간이 다루기 편리한 무한급수의 꼴로 exponential, sinusoidal과 같은 초월함수 및 무리수의 영역을 근사적으로 모사할 수 있는 수단을 제공한다는 점에서 테일러 급수의 실용적인 의미는 상당하다 하겠다.[19] 테일러 급수가 없었다면 계산적으로 원주율이나 [math(e)]의 정밀한 근사값을 얻고, 이를 다른 수치 계산에 마음껏 활용하는 일이 가능했었을까?
이 때문에 공학에서 아주 유용하게 사용된다. 역학계열 공학(기계, 토목, 건축 등)에서 주로 사용되는 것이 미분방정식인데, 이 미분방정식이 역학에서 적용될 때 기본적으로 근사값이고 이때 테일러 급수를 매우 유용하게 사용한다. 학부 수준에서는 보통 일차항 정도에서 적당히 근사시켜 표현하지만 정확도를 높혀야 할수록(특히 첨단 기술이 이용될 경우) 고차항까지 늘리게 된다.
6. 여담
발명자의 성씨인 테일러(Taylor)는 재단사라는 뜻이다. 재단사가 옷감을 수치를 맞춰 자르는 일을 한다는 것을 보면, 꽤나 절묘한 이름이다.이곳에 따르면 구 소련의 수리물리학자 이고르 예브게니예비치 탐(Igor Yevgenyevich Tamm)[20]은 이것 덕분에 목숨을 건진 적이 있다고 한다. 이 일화는 일부 대학생들이 "미분은 쓸데도 없는 걸 선생들이 학생들 괴롭히려고 만든 거다." 같은 소리를 할 때 유용하다고 한다. 러시아 혁명 중 수리물리학자였던 이고르는 반공주의 게릴라에 의해 '우크라이나에 반대하는 공산당 선동가'로 몰려서 잡혀갔다.[21] 두목이 직업을 묻기에 수학자라고 대답했다. 두목은 총알을 세기 시작했다. 게릴라 두목은
테일러 급수[22]에서 [math(n)]차항까지 근사할 때 생기는 오차항을 대라. 해내면 풀어주마. 못 하면 (수학자라는 건 거짓말로 간주하고) 총살하겠다.
라고 했다. 이고르는 다행히 목숨을 보전할 수 있었다는 이야기. 2013년 인터넷수능 영어독해 B형 마지막 문제에 장문으로도 출제된 유명한 일화이다.[23]이딴 짓을 왜 하는가에 의문을 가질 수 있다. 테일러 급수나 푸리에 급수 등 급수전개는 미적분 계산이 어려운 해석함수를 계산이 쉬운 함수로 근사시키는 것[24]으로서의 의미가 매우 크다. 고등학교나 학부생 1학년 수준의 미적분에서는 급수전개를 해야 할 정도로 어려운 미적분은 잘 나오지 않지만, 미분방정식만 접하더라도 급수해법을 적용해야하는 미분방정식은 왕왕 나온다. 대충 [math(f(x)= e^{-x^2} )] 같은 함수는 연속이기에 역도함수가 존재하는 것은 알지만 저 모양 그대로 찾아내기란 쉬운 일이 아니다.[25] 이때 저 함수를 급수전개하여 다항함수로 바꾸어 적분하면 다항함수의 항별 적분 문제로 바뀌어 쉽게 구할 수 있다. 게다가 자연로그의 밑 [math(e)] 같은 특정 무리수의 값을 계산하는 데 쓰이기도 한다. [math(e)]의 값은 [math(e^x)]의 매클로린 급수에 x=1을 대입하여 계산하고, [math(\pi)]의 값은 [math(4 \arctan x)]의 매클로린 급수에 1을 대입하여 계산했던 과거가 있다.
특히 [math(\lvert x-a\rvert \ll 1)], 즉 주어진 스케일에 대해 [math(x-a)]가 충분히 작다고 가정할 수 있을 경우 2차 이상의 오차항을 전부 생략할 수 있어 정말 어마무시하게 강력해진다. 이게 무슨 뜻이냐면 아무리 복잡한 해석함수라도 저 조건만 만족한다면 직선방정식 [math(a+bx)] 의 형태로 근사할 수 있다는 뜻이다! 실제로 물리학 문제를 풀 때 "테일러 급수로 1차항까지 전개" 를 넣는 순간 복잡했던 수식이 한번에 사르르 풀리는 것을 관찰할 수 있다. 만약 정확도가 부족할 경우 2차항이나 3차항까지 넣어서 계산하면 된다. 그야말로 물리학자의 영원한 친구 중 하나.
비슷한 성격으로 푸리에 급수가 있다. 다항함수 대신 삼각함수를 이용해 함수를 묘사하는 방법이다.
테일러 급수, 푸리에 급수 모두 컴퓨터 공학에서도 활발하게 사용된다. 일반적인 CPU에서 사칙연산은 Arithmetic Logic Unit (ALU)를 통해서 처리하지만, 지수함수와 삼각함수 같은 초월함수의 계산은 일반적인 ALU로 처리하기 힘들기 때문에, 따로 초월함수 전용 연산유닛을 탑재한다. 이 초월함수 연산유닛의 구현은 크게 2가지로, 첫 번째는 내부에 많이 사용하는 초월함수의 값을 표로 미리 가지고 계산해야 하는 값과 가장 근사한 값을 표에서 찍어주는 방식이 있고, 두번째로는 테일러급수나 푸리에 급수를 통해서 값을 근사하는 방식을 사용한다. 이러한 초월함수 연산기는 반도체 면적을 많이 차지하고 사용처가 제한적이기 때문에, X86 CPU 또는 GPU같이 고성능을 지향하는 연산장치 에서나 구비가 가능하며, 이러한 연산기가 없는 IOT 및 저전력을 위한 Micro Controller Unit (MCU)에서는 필요한 경우 직접 푸리에 급수를 코드로 구현해서 초월함수의 연산을 근사하는 경우가 많다. [26]
[1] 다항함수가 되기 위해서는 차수가 유한해야 한다. 테일러 급수의 경우, 차수가 무한히 커지기 때문에 '다항함수'라는 표현은 정확하지 않다.[2] 예를 들어, [math(e^x)]함수를 해보면 쉽게 알 수 있다.[3] 실함수는 미분 가능하거나 연속이지만 해석함수가 아닌 함수가 널려 있다.[4] 선형 근사의 타당성이 여기서 유래한다.[5] 사실 코시의 나머지항에서도 [math(n=0)]을 대입하면 형태는 같아지지만, 일관성을 유지하기 위해 라그랑주 나머지항을 사용한다.[6] 이렇게 잡는 것이 무슨 의미가 있냐 싶겠지만 실로 중요한 역할을 한다. 만약 이렇게 하지 않고 1의 부정적분을 [math(t)]라고만 두면 나중에 계산하고 나서 결과가 제대로 꼬인 모습을 발견하게 된다.[7] 어떤 함수가 해석함수가 아니라는 걸 증명하는 게 까다롭기 때문이다.[8] 해석함수가 아니면서 무한히 미분 가능한 함수의 예로 혹 함수가 있다.[9] 만약 분모에 고차 다항함수가 결합되어 버리면 그 차수만큼 로피탈 정리를 계속해서 사용해야하므로 오히려 헬게이트가 열린다.[10] 공식용어는 아니다.[11] 이런 것을 이른바 선형 근사라고 한다. 선형 근사에 대한 자세한 내용은 대학 미적분학 교재에서 배울 수 있다. 특정 구간 [math((a, \,b))]에서 미분 가능한 연속함수 [math(f(x))]가 존재한다고 하면, [math(c\in \left(a,b\right))]인 점 [math(c)]에서의 선형 근사 함수 [math(L_{c}(x))]는 다음과 같이 주어진다.
[math(\qquad \qquad L_{c}(x)=f'(c)(x-c))]
이 뒤에 추가로 계속 다항함수를 더해서 원 함수에 근접하게 만드는 테크닉이 바로 테일러 급수로,
[math(\qquad \qquad \displaystyle f(x)=L_{c}(x)+\frac{1}{2}f(c)(x-c)^2+\frac{1}{3!}f'(c)(x-c)^3+\cdots)]
가 된다.[12] 접선이 아닌 곡선이지만 똑같다. 참고로 원래는 [math(\cos x=1)]로 치환해야 하는데 그러면 [math(x=0)]을 넣은 거랑 다른 게 없으니까 이걸로 치환하는 거다.[13] 참고로 수학뿐만 아니라 물리Ⅱ에서도 이런 식으로 식을 유도하는 경우가 있다. 대표적인 예로 단진자 운동.[14] 반면 이 문제에서 로피탈의 정리를 사용해서 풀려면 삼각함수 미분을 3번이나 해야 하기에 극히 비효율적이며, 정석적인 풀이인 분자에서 [math(\sin{x})]를 빼고
[math(\qquad \qquad \begin{aligned} \frac{\sin{x}}{x}=1 \end{aligned})]
임을 이용하는 것도 상당히 풀이가 길어진다. 그나마 쉽게 풀려면 분자를
[math(\qquad \qquad \tan x(1-\cos x))]
로 바꾸고 분자분모에 각각
[math(\qquad \qquad 1+\cos x)]
를 곱한 뒤 분자쪽
[math(\qquad \qquad 1-\cos^2 x=\sin^2x)]
로 바꾸어서 극한을 계산하면 된다.[15] 대표적으로 소수 계량 함수 [math(\pi(x))]. 불연속에 미분불가능한 함수다. 합의 꼴로 고쳐봐도 [math(displaystyle sum_{n=1}^{x} bold{1}_{mathbb{P}}(n))]이 나와서 미궁인 건 마찬가지다.[16] 원래 함수가 어떤 모양이든 급수는 덧셈과 곱셈만 사용해서 전개했으므로 당연히 다루기가 쉽다.[17] 특히 서술되어 있는 나머지항은 위쪽에도 언급되어 있듯이 라그랑주의 형태이라고 부른다. 나머지항의 일반항에서 Weighted mean-value theorem을 이용하면 유도 가능. 코시의 형태 이후 발표된 형태다.[18] 이때 [math(-1)]차항에 붙어있는 상수를 [math(f(z))]의 [math(a)]에 대한 유수(Residue)라고하며 주로 [math(\text{Res}(f,\,a))]라고 표기한다. 이렇게 특별하게 분류하는 이유는, 복소공간의 폐곡선을 따라 적분할 경우 [math(-1)]차항에 의한 값들 외엔 모두 [math(0)]이 되어버려서 유수가 적분값을 결정하기 때문.[19] 무한급수와 같이 일정한 규칙에 따라 한없이 더하는 노가다성 작업은 컴퓨터에게 시키기 딱 좋은 일이다. 이를 체계화한 것이 수치해석학이다.[20] 체렌코프 현상의 해석으로 1958년 노벨물리학상을 공동 수상하였다. 그밖에 세계최초 핵융합 토카막 장치를 자신의 제자 안드레이 사하로프와 만들었다.[21] 다만 이 사람은 실제로도 혁명을 지지하고 직접 1차대전 반전운동도 뛰었던 인물이라 맞는 말이긴 하다. 그러나 우크라이나 반공 게릴라에게 우크라이나에서 고등학교 나온 양반이 빨갱이로 몰렸으니 목이 달아날 처지라 어떻게든 둘러대야지...[22] 정확히는 [math(x=0)]에서 근사한 매클로린 급수(Maclaurin's series).[23] 추가로 이딴 문제를 낸 그 게릴라 두목은 대학원생이었다는 얘기도 있다.[24] 푸리에 급수도 계산이 상대적으로 쉬운 삼각함수의 선형결합이다.[25] 저 함수는 오히려 [math((-\infty,\, \infty))] 구간의 특이적분 값은 [math(\sqrt{\pi})]로 잘 알려져 있다. 값을 찾는 방법은 가우스 적분에 잘 나와 있다.[26] ARM 프로세서에서 테일러 급수로 exponent 연산을 근사하는 예시 https://developer.arm.com/documentation/102107a/0100/Single-precision-vector-exponent?lang=en
[math(\qquad \qquad L_{c}(x)=f'(c)(x-c))]
이 뒤에 추가로 계속 다항함수를 더해서 원 함수에 근접하게 만드는 테크닉이 바로 테일러 급수로,
[math(\qquad \qquad \displaystyle f(x)=L_{c}(x)+\frac{1}{2}f(c)(x-c)^2+\frac{1}{3!}f'(c)(x-c)^3+\cdots)]
가 된다.[12] 접선이 아닌 곡선이지만 똑같다. 참고로 원래는 [math(\cos x=1)]로 치환해야 하는데 그러면 [math(x=0)]을 넣은 거랑 다른 게 없으니까 이걸로 치환하는 거다.[13] 참고로 수학뿐만 아니라 물리Ⅱ에서도 이런 식으로 식을 유도하는 경우가 있다. 대표적인 예로 단진자 운동.[14] 반면 이 문제에서 로피탈의 정리를 사용해서 풀려면 삼각함수 미분을 3번이나 해야 하기에 극히 비효율적이며, 정석적인 풀이인 분자에서 [math(\sin{x})]를 빼고
[math(\qquad \qquad \begin{aligned} \frac{\sin{x}}{x}=1 \end{aligned})]
임을 이용하는 것도 상당히 풀이가 길어진다. 그나마 쉽게 풀려면 분자를
[math(\qquad \qquad \tan x(1-\cos x))]
로 바꾸고 분자분모에 각각
[math(\qquad \qquad 1+\cos x)]
를 곱한 뒤 분자쪽
[math(\qquad \qquad 1-\cos^2 x=\sin^2x)]
로 바꾸어서 극한을 계산하면 된다.[15] 대표적으로 소수 계량 함수 [math(\pi(x))]. 불연속에 미분불가능한 함수다. 합의 꼴로 고쳐봐도 [math(displaystyle sum_{n=1}^{x} bold{1}_{mathbb{P}}(n))]이 나와서 미궁인 건 마찬가지다.[16] 원래 함수가 어떤 모양이든 급수는 덧셈과 곱셈만 사용해서 전개했으므로 당연히 다루기가 쉽다.[17] 특히 서술되어 있는 나머지항은 위쪽에도 언급되어 있듯이 라그랑주의 형태이라고 부른다. 나머지항의 일반항에서 Weighted mean-value theorem을 이용하면 유도 가능. 코시의 형태 이후 발표된 형태다.[18] 이때 [math(-1)]차항에 붙어있는 상수를 [math(f(z))]의 [math(a)]에 대한 유수(Residue)라고하며 주로 [math(\text{Res}(f,\,a))]라고 표기한다. 이렇게 특별하게 분류하는 이유는, 복소공간의 폐곡선을 따라 적분할 경우 [math(-1)]차항에 의한 값들 외엔 모두 [math(0)]이 되어버려서 유수가 적분값을 결정하기 때문.[19] 무한급수와 같이 일정한 규칙에 따라 한없이 더하는 노가다성 작업은 컴퓨터에게 시키기 딱 좋은 일이다. 이를 체계화한 것이 수치해석학이다.[20] 체렌코프 현상의 해석으로 1958년 노벨물리학상을 공동 수상하였다. 그밖에 세계최초 핵융합 토카막 장치를 자신의 제자 안드레이 사하로프와 만들었다.[21] 다만 이 사람은 실제로도 혁명을 지지하고 직접 1차대전 반전운동도 뛰었던 인물이라 맞는 말이긴 하다. 그러나 우크라이나 반공 게릴라에게 우크라이나에서 고등학교 나온 양반이 빨갱이로 몰렸으니 목이 달아날 처지라 어떻게든 둘러대야지...[22] 정확히는 [math(x=0)]에서 근사한 매클로린 급수(Maclaurin's series).[23] 추가로 이딴 문제를 낸 그 게릴라 두목은 대학원생이었다는 얘기도 있다.[24] 푸리에 급수도 계산이 상대적으로 쉬운 삼각함수의 선형결합이다.[25] 저 함수는 오히려 [math((-\infty,\, \infty))] 구간의 특이적분 값은 [math(\sqrt{\pi})]로 잘 알려져 있다. 값을 찾는 방법은 가우스 적분에 잘 나와 있다.[26] ARM 프로세서에서 테일러 급수로 exponent 연산을 근사하는 예시 https://developer.arm.com/documentation/102107a/0100/Single-precision-vector-exponent?lang=en