logo

테일러 급수의 응용 📂미분적분학

테일러 급수의 응용

설명

테일러 급수(맥클로린 급수)란 주어진 함수를 멱급수로 근사한 것으로, 함수 ff의 테일러 급수는 다음과 같다.

n=0f(n)(a)n!(xa)n=f(a)+f(a)(xa)+f(a)2!(xa)2+ \sum\limits_{n=0}^{\infty} \dfrac{f^{(n)}(a)}{n!} (x-a)^{n} = f(a) + f^{\prime}(a)(x-a) + \dfrac{f^{\prime \prime}(a)}{2!} (x-a)^{2} + \cdots

좋은 조건에서는 ffff의 테일러 급수가 실제로 같다.

f(x)=n=0f(n)(a)n!(xa)n=f(a)+f(a)(xa)+f(a)2!(xa)2+ f(x) = \sum\limits_{n=0}^{\infty} \dfrac{f^{(n)}(a)}{n!} (x-a)^{n} = f(a) + f^{\prime}(a)(x-a) + \dfrac{f^{\prime \prime}(a)}{2!} (x-a)^{2} + \cdots

테일러 급수는 극한을 포함하고 있어서 언뜻 보기에는 더 어려워 보이지만 실제로는 그렇지 않다. 함수 ff가 복잡한 경우에는 테일러 급수로 다루는 것이 더 편리할 수 있다. 기본적으로 테일러 급수는 (무한 차수) 다항함수이기 때문에 미분과 적분, 그리고 함숫값 계산이 쉽다.

여러가지 상황에서 함수를 멱급수로 표현하는 것이 어떻게 유용한지에 대해서 살펴보자.

함숫값 근사

사인 함수 sin\sin을 예로 생각해보자. 이런 초월 함수의 함숫값을 계산하는 것은 쉽지 않다. sinx\sin x의 값을 쉽게 알 수 있을 때는 xx00, π6\dfrac{\pi}{6}, π4\dfrac{\pi}{4} 등의 특수각일 때 뿐이다. 당장에 sin0.672\sin 0.672의 값을 계산하라고 하면 어려울 것이다. 이럴 때는 sin\sin의 테일러 급수로 근사값을 계산하면 된다. sin\sin의 테일러 급수는 다음과 같다.

sinx=xx33!+x55!x77!+=n=0(1)nx2n+1(2n+1)! \sin x = x - \dfrac{x^{3}}{3!} + \dfrac{x^{5}}{5!} - \dfrac{x^{7}}{7!} + \cdots = \sum\limits_{n=0}^{\infty} (-1)^{n} \dfrac{x^{2n+1}}{(2n+1)!}

즉 다음과 같은 근사식을 이용하면, 적절한 곱셈과 덧셈만으로 sin0.672\sin 0.672의 값을 쉽게 계산할 수 있다.

sinxxx33!+x55!x77! \sin x \approx x - \dfrac{x^{3}}{3!} + \dfrac{x^{5}}{5!} - \dfrac{x^{7}}{7!}

실제로 프로그래밍 언어에서 초월함수를 테일러 급수로 근사하여 구현하기도 한다. 줄리아코드를 까보면 사인 함수가 테일러 급수의 7번째 항까지로 근사되어있는 것을 확인할 수 있다.

상수를 가지고 함수를 직접 정의해서 계산해보면 줄리아에서 구현된 사인 함수와 거의 같은 값을 얻을 수 있다.

julia> function mysin(x)
           S = [-1.66666666666666324348e-01,
                8.33333333332248946124e-03,
                -1.98412698298579493134e-04,
                2.75573137070700676789e-06,
                -2.50507602534068634195e-08,
                1.58969099521155010221e-10]
           sinx = x +  S[1]*x^3 + S[2]*x^5 + S[3]*x^7 + S[4]*x^9 + S[5]*x^11 + S[6]*x^13
           return sinx
       end
mysin (generic function with 1 method)

julia> sin(0.672)
0.622552387351666

julia> mysin(0.672)
0.6225523873516658

구간 [0,π/4][0, \pi/4]에서 sinx\sin xs6=n=06(1)nx2n+1(2n+1)!s_{6} = \displaystyle \sum\limits_{n=0}^{6} (-1)^{n} \dfrac{x^{2n+1}}{(2n+1)!}을 비교해보면 거의 차이가 없음을 확인할 수 있다.

S = [-1.66666666666666324348e-01,
         8.33333333332248946124e-03,
         -1.98412698298579493134e-04,
         2.75573137070700676789e-06,
         -2.50507602534068634195e-08,
         1.58969099521155010221e-10]

x = 0:0.01:π/4
y = sin.(x)
s₆ = x .+ S[1]*x.^3 .+ S[2]*x.^5 .+ S[3]*x.^7 .+ S[4]*x.^9 .+ S[5]*x.^11 .+ S[6]*x.^13

using Plots
plot(x, y, label="sin(x)", linewidth=8, dpi=300, size=(728,300))
plot!(x, s₆, label="s_6", linewidth=3, ls=:dash, lc=:red)

무리수 근사

삼각함수도 계산하기 어려운데 역삼각함수는 계산하기 더 어렵지 않겠는가? 아크탄젠트의 함숫값은 아크탄젠트의 테일러 급수를 이용하여 근사할 수 있을 것이다.

tan1x=n=0(1)nx2n+12n+1 \tan^{-1} x = \sum\limits_{n=0}^{\infty} (-1)^{n} \dfrac{x^{2n+1}}{2n+1}

위 식에서 재밌는 공식을 얻을 수 있는데, x=1x = 1을 대입하면 다음과 같다.

π4=tan11=113+1517+ \dfrac{\pi}{4} = \tan^{-1} 1 = 1 - \dfrac{1}{3} + \dfrac{1}{5} - \dfrac{1}{7} + \cdots

    π=4(113+1517+) \implies \pi = 4 \left( 1 - \dfrac{1}{3} + \dfrac{1}{5} - \dfrac{1}{7} + \cdots \right)

즉, 무리수 π\pi를 근사할 수 있는 급수를 얻을 수 있다.

적분

함수를 테일러 급수로 표현하는 것은 함숫값 계산 뿐만 아니라 적분을 할 때도 유리하다. 그럴 수 밖에 없는 것이, 테일러 급수는 다항함수이기 때문이다. 다항함수의 적분은 매우 쉬우므로, 복잡한 꼴의 함수는 테일러 급수로 나타내어 적분하면 쉽다. 예를 들어 f(x)=sinxx2f(x) = \dfrac{\sin x}{x^{2}}과 같은 함수는 부정적분을 구하기 어렵다. (부분적분법이 생각나겠지만, 직접 해보면 막힐 것이다.) 이럴 때는 sin\sin의 테일러 급수를 적분하는 것이 쉽다.

sinxx2dx=1x2n=0(1)nx2n+1(2n+1)!dx=1x2(xx33!+x55!x77!+)dx=(1xx3!+x35!x57!+)dx=C+lnxx223!+x445!x667!+=C+lnx+n=1(1)nx2n2n(2n+1)! \begin{align*} \int \dfrac{\sin x}{x^{2}} dx &= \int \dfrac{1}{x^{2}} \sum\limits_{n=0}^{\infty} (-1)^{n} \dfrac{x^{2n+1}}{(2n+1)!} dx \\ &= \int \dfrac{1}{x^{2}} \left( x - \dfrac{x^{3}}{3!} + \dfrac{x^{5}}{5!} - \dfrac{x^{7}}{7!} + \cdots \right) dx \\ &= \int \left( \dfrac{1}{x} - \dfrac{x}{3!} + \dfrac{x^{3}}{5!} - \dfrac{x^{5}}{7!} + \cdots \right) dx \\ &= C + \ln |x| - \dfrac{x^{2}}{2 \cdot 3!} + \dfrac{x^{4}}{4 \cdot 5!} - \dfrac{x^{6}}{6 \cdot 7!} + \cdots \\ &= C + \ln |x| + \sum\limits_{n=1}^{\infty} (-1)^{n} \dfrac{x^{2n}}{2n(2n+1)!} \end{align*}

다른 예로 ex2e^{x^{2}}와 같은 함수를 보자. ex2e^{x^{2}}의 적분이라는 것은, 미분적분학의 기본정리에 의해서, 미분해서 ex2e^{x^{2}}가 되는 함수를 찾는 것이다. 이러한 함수를 찾으려고 하면 지수에 x2x^{2}가 포함되어있어 쉽지 않다. 이럴 때는 ex2e^{x^{2}}를 멱급수로 표현하여 부정적분하면 쉽다.

ex2dx=(1+x2+x42!++x2nn!+)dx=C+x+x331!+x552!+x773!++x2n+1(2n+1)n!+=C+n=0x2n+1(2n+1)n! \begin{align*} \int e^{x^{2}} dx &= \int \left( 1+x^2+\dfrac{x^4}{2!}+\cdots +\dfrac{x^{2n}}{n!}+\cdots \right) dx \\ &= C + x + \dfrac{x^3}{3 \cdot 1!} + \dfrac{x^5}{5 \cdot 2!}+\dfrac{x^7}{7 \cdot 3!}+ \cdots + \dfrac{x^{2n+1}}{(2n+1)n!} + \cdots \\ &= C + \sum \limits_{n=0}^\infty \dfrac{x^{2n+1}}{(2n+1)n!} \end{align*}

조화진동자

임의의 함수를 멱급수로 표현하는 방법은 다양한 분야에서 응용된다. 물리학에서 단순 조화 진동자의 퍼텐셜에너지를 V(x)=a0+a1x+a2x2+V(x) = a_{0} + a_{1}x + a_{2}x^{2} + \cdots와 같은 급수로 두어, 후크의 법칙 F(x)=kxF(x) = -kx와 단순조화진동자의 운동방정식 x¨+kxx=0\ddot{x} + \dfrac{k}{x}x = 0을 유도할 수 있다.

미분방정식의 해

어떤 미분 방정식들은 해가 멱급수로 표현된다. 베셀 미분 방정식그 해(베셀 함수)는 다음과 같다.

x2y+xy+(x2ν2)y=0 x^2 y^{\prime \prime} +xy^{\prime} +(x^2-\nu^2)y = 0

Jν(x)=n=0(1)nΓ(n+1)Γ(n+ν+1)(x2)2n+ν J_{\nu}(x)=\sum \limits_{n=0}^{\infty} \frac{(-1)^{n} }{\Gamma (n+1) \Gamma (n+\nu+1)} \left(\frac{x}{2} \right)^{2n+\nu}