테일러 급수의 응용
📂미분적분학테일러 급수의 응용
설명
테일러 급수(맥클로린 급수)란 주어진 함수를 멱급수로 근사한 것으로, 함수 f의 테일러 급수는 다음과 같다.
n=0∑∞n!f(n)(a)(x−a)n=f(a)+f′(a)(x−a)+2!f′′(a)(x−a)2+⋯
좋은 조건에서는 f와 f의 테일러 급수가 실제로 같다.
f(x)=n=0∑∞n!f(n)(a)(x−a)n=f(a)+f′(a)(x−a)+2!f′′(a)(x−a)2+⋯
테일러 급수는 극한을 포함하고 있어서 언뜻 보기에는 더 어려워 보이지만 실제로는 그렇지 않다. 함수 f가 복잡한 경우에는 테일러 급수로 다루는 것이 더 편리할 수 있다. 기본적으로 테일러 급수는 (무한 차수) 다항함수이기 때문에 미분과 적분, 그리고 함숫값 계산이 쉽다.
여러가지 상황에서 함수를 멱급수로 표현하는 것이 어떻게 유용한지에 대해서 살펴보자.
함숫값 근사
사인 함수 sin을 예로 생각해보자. 이런 초월 함수의 함숫값을 계산하는 것은 쉽지 않다. sinx의 값을 쉽게 알 수 있을 때는 x가 0, 6π, 4π 등의 특수각일 때 뿐이다. 당장에 sin0.672의 값을 계산하라고 하면 어려울 것이다. 이럴 때는 sin의 테일러 급수로 근사값을 계산하면 된다. sin의 테일러 급수는 다음과 같다.
sinx=x−3!x3+5!x5−7!x7+⋯=n=0∑∞(−1)n(2n+1)!x2n+1
즉 다음과 같은 근사식을 이용하면, 적절한 곱셈과 덧셈만으로 sin0.672의 값을 쉽게 계산할 수 있다.
sinx≈x−3!x3+5!x5−7!x7
실제로 프로그래밍 언어에서 초월함수를 테일러 급수로 근사하여 구현하기도 한다. 줄리아의 코드를 까보면 사인 함수가 테일러 급수의 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]에서 sinx와 s6=n=0∑6(−1)n(2n+1)!x2n+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)

무리수 근사
삼각함수도 계산하기 어려운데 역삼각함수는 계산하기 더 어렵지 않겠는가? 아크탄젠트의 함숫값은 아크탄젠트의 테일러 급수를 이용하여 근사할 수 있을 것이다.
tan−1x=n=0∑∞(−1)n2n+1x2n+1
위 식에서 재밌는 공식을 얻을 수 있는데, x=1을 대입하면 다음과 같다.
4π=tan−11=1−31+51−71+⋯
⟹π=4(1−31+51−71+⋯)
즉, 무리수 π를 근사할 수 있는 급수를 얻을 수 있다.
적분
함수를 테일러 급수로 표현하는 것은 함숫값 계산 뿐만 아니라 적분을 할 때도 유리하다. 그럴 수 밖에 없는 것이, 테일러 급수는 다항함수이기 때문이다. 다항함수의 적분은 매우 쉬우므로, 복잡한 꼴의 함수는 테일러 급수로 나타내어 적분하면 쉽다. 예를 들어 f(x)=x2sinx과 같은 함수는 부정적분을 구하기 어렵다. (부분적분법이 생각나겠지만, 직접 해보면 막힐 것이다.) 이럴 때는 sin의 테일러 급수를 적분하는 것이 쉽다.
∫x2sinxdx=∫x21n=0∑∞(−1)n(2n+1)!x2n+1dx=∫x21(x−3!x3+5!x5−7!x7+⋯)dx=∫(x1−3!x+5!x3−7!x5+⋯)dx=C+ln∣x∣−2⋅3!x2+4⋅5!x4−6⋅7!x6+⋯=C+ln∣x∣+n=1∑∞(−1)n2n(2n+1)!x2n
다른 예로 ex2와 같은 함수를 보자. ex2의 적분이라는 것은, 미분적분학의 기본정리에 의해서, 미분해서 ex2가 되는 함수를 찾는 것이다. 이러한 함수를 찾으려고 하면 지수에 x2가 포함되어있어 쉽지 않다. 이럴 때는 ex2를 멱급수로 표현하여 부정적분하면 쉽다.
∫ex2dx=∫(1+x2+2!x4+⋯+n!x2n+⋯)dx=C+x+3⋅1!x3+5⋅2!x5+7⋅3!x7+⋯+(2n+1)n!x2n+1+⋯=C+n=0∑∞(2n+1)n!x2n+1
조화진동자
임의의 함수를 멱급수로 표현하는 방법은 다양한 분야에서 응용된다. 물리학에서 단순 조화 진동자의 퍼텐셜에너지를 V(x)=a0+a1x+a2x2+⋯와 같은 급수로 두어, 후크의 법칙 F(x)=−kx와 단순조화진동자의 운동방정식 x¨+xkx=0을 유도할 수 있다.
미분방정식의 해
어떤 미분 방정식들은 해가 멱급수로 표현된다. 베셀 미분 방정식과 그 해(베셀 함수)는 다음과 같다.
x2y′′+xy′+(x2−ν2)y=0
Jν(x)=n=0∑∞Γ(n+1)Γ(n+ν+1)(−1)n(2x)2n+ν