Search
Duplicate

수학/ 테일러 급수

테일러 급수와 매클로린 급수는 모두 복잡한 함수를 다항식 함수로 근사하는 방법이다. 매클로린 급수는 테일러 급수에서 a=0a = 0인 특별한 경우에 해당한다.

매클로린 급수

함수 f(x)f(x)에 대한 매클로린 급수는 다음과 같이 정의된다.
f(x)=n=0f(n)(0)n!xnf(x) = \sum_{n=0}^\infty {f^{(n)}(0) \over n!} x^n
여기서 f(n)f^{(n)}ffnn차 도함수를 의미한다.
위의 정의대로 실제로 작성하면 다음과 같은 모양이 된다.
f(x)f(0)+f(1)(0)1!x+f(2)(0)2!x2+f(3)(0)3!x3+...f(x) \approx f(0) + {f^{(1)}(0) \over 1!} x + {f^{(2)}(0)\over 2!} x^2 + { f^{(3)}(0)\over 3!} x^3 + ...
exe^x에 대한 매클로린 급수는 다음과 같이 구한다.
ex=n=0xnn!1+x+x22!+x33!+...e^x = \sum_{n=0}^\infty {x^n \over n!} \approx 1 + x + {x^2 \over 2!} + {x^3 \over 3!} + ...
sin(x)\sin(x)에 대한 매클로린 급수는 다음과 같이 구한다.
sin(x)=n=0(1)n(2n+1)!x2n+1xx33!+x55!x77!+...\sin(x) = \sum_{n=0}^{\infty} {(-1)^n \over (2n+1)!}x^{2n+1} \approx x - {x^3 \over 3!} + {x^5 \over 5!} - {x^7 \over 7!} + ...
cos(x)\cos(x)에 대한 매클로린 급수는 다음과 같이 구한다.
cos(x)=n=0(1)n(2n)!x2n1x22!+x44!x66!+...\cos(x) = \sum_{n=0}^{\infty} {(-1)^n \over (2n)!}x^{2n} \approx 1 - {x^2 \over 2!} + {x^4 \over 4!} - {x^6 \over 6!} + ...

테일러 급수

함수 f(x)f(x)의 점 aa에서의 테일러 급수는 다음과 같이 정의된다.
f(x)=n=0f(n)(a)n!(xa)nf(x) = \sum_{n=0}^\infty {f^{(n)}(a) \over n!}(x-a)^n
여기서 f(n)f^{(n)}ffnn차 도함수를 의미한다.
위의 정의대로 실제로 작성하면 다음과 같은 모양이 된다.
f(x)f(a)+f(1)(a)1!(xa)+f(2)(a)2!(xa)2+f(3)(a)3!(xa)3+...f(x) \approx f(a) + {f^{(1)}(a)\over 1!} (x-a) + {f^{(2)}(a)\over 2!} (x-a)^2 + { f^{(3)}(a)\over 3!} (x-a)^3 + ...
함수에 대한 nn차 테일러 전개는 위 식을 nn번째 항까지 계산하는 것을 의미한다. 실제로는 차수가 높아질 수록 값이 빠르게 작아지기 때문에 많은 경우에 1차나 2차 도함수까지만 계산하여 근사를 구한다.
함수 f(x)f(x)에 대한 테일러 급수는 변위량 Δx\Delta x를 이용하여 다음과 같이 정의한다.
f(x+Δx)=n=0f(n)(x)n!(Δx)nf(x + \Delta x) = \sum_{n=0}^\infty {f^{(n)}(x) \over n!}(\Delta x)^n
실제로 작성하면 다음과 같다.
f(x+Δx)=f(x)+f(1)(x)1!Δx+f(2)(x)2!(Δx)2+f(3)(x)3!(Δx)3+...f(x + \Delta x) = f(x) + {f^{(1)}(x) \over 1!}\Delta x + {f^{(2)}(x) \over 2!}(\Delta x)^2 + {f^{(3)}(x) \over 3!}(\Delta x)^3 + ...
벡터 함수 f(x)f(\bold{x})에 대해 x\bold{x}에서의 2차 항까지의 테일러 전개는 다음과 같이 주어진다.
f(x+Δx)=f(x)+f(x)Δx+12ΔxHxf(x)Δx+o(Δx2)f(\bold{x} + \Delta \bold{x}) = f(\bold{x}) + \nabla f(\bold{x}) \cdot\Delta \bold{x} +{1\over2}\Delta\bold{x}^\top\bold{H}_\bold{x}f(\bold{x})\cdot\Delta \bold{x} + o(\|\Delta\bold{x}\|^2)
여기서 Hxf(x)\bold{H}_\bold{x}f(\bold{x})x\bold{x}에 대한 헤시안 행렬이고, o(Δx2)o(\|\Delta\bold{x}\|^2)는 2차 이상의 항을 나타낸다. 이 값은 매우 빠르게 0으로 수렴하므로 아예 없애고 아래처럼 근사 표현으로 작성할 수도 있다.
f(x+Δx)f(x)+f(x)Δx+12ΔxHxf(x)Δxf(\bold{x} + \Delta \bold{x}) \approx f(\bold{x}) + \nabla f(\bold{x})\cdot \Delta \bold{x} +{1\over2}\Delta\bold{x}^\top\bold{H}_\bold{x}f(\bold{x})\cdot\Delta \bold{x}
다변수 함수 f(x,y)f(x, y)에 대한 테일러 급수 전개를 2차까지 작성하면 다음과 같다. 마지막 줄에서 각 변수에 대한 2차 편미분이 추가된 것에 더해 두 변수로 각각 편미분하고 두 변수의 변위량을 곱한 항이 추가된 것을 볼 수 있다.
f(x+Δx,y+Δy)f(x,y)+xf(x,y)(Δx)+yf(x,y)(Δy)+122x2f(x,y)(Δx)+122y2f(x,y)(Δy)2+2xyf(x,y)(ΔxΔy)\begin{aligned} f(x +\Delta x, y + \Delta y) &\approx f(x, y) + {\partial \over \partial x}f(x, y) (\Delta x) + {\partial \over \partial y}f(x, y)(\Delta y) \\ & + {1\over2}{\partial^2 \over \partial x^2}f(x, y)(\Delta x) + {1\over 2}{\partial^2 \over \partial y^2}f(x, y)(\Delta y)^2 \\ & + {\partial^2 \over \partial x \partial y} f(x, y)(\Delta x \Delta y) \end{aligned}
위의 식을 다변수 벡터 함수 f(x,t)f(\bold{x}, t) 형식으로 2차까지 작성하면 다음과 같다. (비교를 위해 tt는 스칼라로 둠)
f(x+Δx,t+Δt)f(x,t)+xf(x,t)Δx+tf(x,t)Δt+12ΔxHxf(x,t)Δx+122t2f(x,t)(Δt)2+Δxxtf(x,t)Δt\begin{aligned} f(\bold{x} + \Delta \bold{x}, t + \Delta t) &\approx f(\bold{x}, t) + \nabla_\bold{x} f(\bold{x}, t)^\top \cdot\Delta \bold{x} + {\partial \over \partial t}f(\bold{x}, t)\Delta t \\ & + {1\over2}\Delta \bold{x}^\top\bold{H}_\bold{x}f(\bold{x}, t)\cdot\Delta \bold{x} + {1\over 2}{\partial^2 \over \partial t^2}f(\bold{x}, t)(\Delta t)^2 \\ & + \Delta \bold{x}^\top \nabla_\bold{x}{\partial \over \partial t}f(\bold{x},t)\Delta t \end{aligned}
테일러 전개를 각 변수에 대해 변위량을 이용하여 다음과 같이 전개할 수도 있다. (1차까지만 전개)
f(x+Δx,y)f(x,y)+xf(x,y)Δxf(x,y+Δy)f(x,y)+yf(x,y)Δyf(x+Δx,y+Δy)f(x,y)+xf(x,y)Δx+yf(x,y)Δy\begin{aligned} f(x + \Delta x, y) &\approx f(x, y) + {\partial \over \partial x}f(x, y) \Delta x \\ f(x, y + \Delta y) &\approx f(x, y) + {\partial \over \partial y}f(x, y) \Delta y \\ f(x + \Delta x, y + \Delta y) &\approx f(x, y) + {\partial \over \partial x}f(x, y) \Delta x + {\partial \over \partial y}f(x, y) \Delta y\end{aligned}
이것은 벡터 형식으로도 동일하게 확장 가능하다.
f(x+Δx,y)f(x,y)+xf(x,y)Δxf(x,y+Δy)f(x,y)+yf(x,y)Δyf(x+Δx,y+Δy)f(x,y)+xf(x,y)Δx+yf(x,y)Δy\begin{aligned} f(\bold{x} + \Delta \bold{x}, \bold{y}) &\approx f(\bold{x}, \bold{y}) + \nabla_\bold{x}f(\bold{x}, \bold{y}) \cdot \Delta \bold{x} \\ f(\bold{x}, \bold{y} + \Delta \bold{y}) &\approx f(\bold{x}, \bold{y}) + \nabla_{\bold{y}} f(\bold{x}, \bold{y}) \cdot \Delta \bold{y} \\ f(\bold{x} + \Delta \bold{x}, \bold{y} + \Delta \bold{y}) &\approx f(\bold{x}, \bold{y}) + \nabla_\bold{x} f(\bold{x}, \bold{y}) \cdot \Delta \bold{x} + \nabla_\bold{y} f(\bold{x}, \bold{y}) \cdot \Delta \bold{y}\end{aligned}

함수를 이용한 함수 근사

함수의 변위가 아니라 함수를 이용해서 다른 함수를 근사할 수 있다. 두 함수 f(x),h(a)f(x), h(a)가 존재하고, 함수 h(a)h(a)를 이용하여 함수 f(x)f(x)를 근사하려 할 때 테일러 전개를 사용할 수 있다. h(a)h(a)를 이용하여 f(x)f(x)를 근사하는 2차 테일러 전개 식은 다음과 같다.
f(x)h(a)+ah(a)Δa+122a2h(a)(Δa)2+higher termsΔa=xa\begin{aligned} f(x) &\approx h(a) + {\partial \over \partial a}h(a) \Delta a + {1\over 2}{\partial^2 \over \partial a^2}h(a)(\Delta a)^2 + \text{higher terms} \\ \Delta a &= x - a \end{aligned}
여기서 h(a)h(a)에서 f(x)f(x)를 근사하기 위한 변위량 Δa\Delta a는 함수 ff의 입력 xx와 함수 hh의 입력 aa의 차이가 된다.
위 식에 대한 벡터 함수 형식은 다음과 같다. 여기서 Hah(a)\bold{H}_\bold{a}h(\bold{a})a\bold{a}에 대한 헤시안 행렬이다.
f(x)h(a)+ah(a)Δa+12ΔaHah(a)Δa+higher termsΔa=xa\begin{aligned} f(\bold{x}) &\approx h(\bold{a}) + \nabla_\bold{a} h(\bold{a})^\top \cdot\Delta \bold{a} + {1\over 2}\Delta\bold{a}^\top \bold{H}_\bold{a}h(\bold{a})\cdot\Delta \bold{a} + \text{higher terms} \\ \Delta \bold{a} &= \bold{x} - \bold{a} \end{aligned}
두 함수가 다변량인 경우 f(x,y),h(a,b)f(x, y), h(a, b)는 다음과 같이 확장된다.
f(x,y)h(a,b)+ah(a,b)Δa+bh(a,b)Δb+122a2h(a,b)(Δa)2+122b2h(a,b)(Δb)2+2abh(a,b)ΔaΔb+higher termsΔa=xaΔb=yb\begin{aligned} f(x, y) &\approx h(a, b) + {\partial \over \partial a}h(a, b) \Delta a + {\partial \over \partial b}h(a, b) \Delta b \\ & + {1\over 2}{\partial^2 \over \partial a^2}h(a, b)(\Delta a)^2 + {1\over 2}{\partial^2 \over \partial b^2}h(a, b)(\Delta b)^2 + {\partial^2 \over \partial a \partial b}h(a, b)\Delta a \Delta b \\ &+ \text{higher terms} \\ \Delta a &= x - a \\ \Delta b &= y - b \end{aligned}
위 식에 대한 다변수 벡터 함수는 다음과 같이 작성된다. (비교를 위해 y,by, b는 스칼라로 둠)
f(x,y)h(a,b)+ah(a,b)Δa+bh(a,b)Δb+12ΔaHah(a,b)Δx+122b2h(a,b)(Δb)2+Δaabh(a,b)ΔbΔa=xaΔb=yb\begin{aligned} f(\bold{x}, y) &\approx h(\bold{a}, b) + \nabla_\bold{a} h(\bold{a}, b)^\top \cdot\Delta \bold{a} + {\partial \over \partial b}h(\bold{a}, b)\Delta b \\ & + {1\over2}\Delta \bold{a}^\top\bold{H}_\bold{a}h(\bold{a}, b)\cdot\Delta \bold{x} + {1\over 2}{\partial^2 \over \partial b^2}h(\bold{a}, b)(\Delta b)^2 \\ & + \Delta \bold{a}^\top \nabla_\bold{a}{\partial \over \partial b}h(\bold{a},b)\Delta b \\ \Delta \bold{a} &= \bold{x} - \bold{a} \\ \Delta b &= y - b \end{aligned}
위의 경우에 대해 f=hf = h이고, 두 파라미터 중 하나가 같다고 하자. 즉 f(x,y)f(x, y)f(x,a)f(x, a)로 1차 테일러 근사하면 다음과 같다.
f(x,y)f(x,a)+xf(x,a)(xx)+af(x,a)(ya)+higher terms=f(x,a)+af(x,a)(ya)+higher terms\begin{aligned} f(x, y) &\approx f(x, a) + {\partial \over \partial x}f(x, a) (x-x) + {\partial \over \partial a}f(x, a) (y-a) + \text{higher terms} \\ &= f(x, a) + {\partial \over \partial a}f(x, a) (y-a) + \text{higher terms} \end{aligned}