[수치해석] Equispaced interpolation(등간격 보간)

반응형
    반응형

    간격이 h로 같은 $ x_0, ..., x_n $ 인 경우의 보간법입니다.

    즉 $ x_k = x_0 + kh $ 인 경우입니다.

    특별한 케이스라고 볼 수 있습니다.

    기존에 설명했던 여러가지 보간법에서 크게 벗어나지 않고 수학적으로 정리하고 수식 변형과 편리한 계산을 할 수 있어서 따로 정리한 경우입니다.

    데이터의 시간이 일정한 경우 equispaced interpolation에 해당한다고 볼 수 있습니다.

     

    Prerequisites

    내용 이해는 어렵지 않으나 일반적인 경우를 살펴보고 싶다면 아래 내용을 보시는 것을 추천드립니다.

     

    Difference operators

    divided difference 와 역할이 비슷하지만 같은 간격의 데이터라는 전제하에 operator를 만들 수 있습니다.

    operator를 만들어 보기 편하고 계산하기 용이하게 만들어 다양하게 응용하고자 하는 게 주 목적입니다.

     

    Forward difference operator

    먼저 forward difference operator $ \Delta $ 에 대해 살펴보겠습니다. 

    다음과 같이 정의됩니다.

    $$ \begin{align} \Delta^0 f(x) & = f(x), \\  \Delta f(x) = \Delta^1 f(x) & = f(x+h)-f(x), \\  \Delta f(x)^k f(x) & = \Delta(\Delta^{k-1} f(x)) \\ & = \Delta^{k-1}(\Delta f(x)) \\ & = \Delta^{k-1} f(x+h) - \Delta^{k-1} f(x), \ \ \ k \ge 1 \end{align} $$

     

    즉, 전단계의 f(x+h)-f(x) 를 나타낸다고 볼 수 있습니다.

     

    Backward difference operator

    이번에는 간격 f(x) - f(x-h) 를 나타내는 operator입니다.

    $$ \begin{align} \nabla^0 f(x) & = f(x), \\ \nabla f(x) = \nabla^1 f(x) & = f(x) - f(x-h), \\ \nabla^k f(x) & = \nabla^{k-1} f(x) - \nabla^{k-1} f(x-h), \ \ \ k \ge 1 \end{align} $$

     

    전단계의 f(x) - f(x-h) 를 나타내게 됩니다.

     

    Shift operator

    데이터를 shift하는 operator 입니다. 제 생각엔 다른 데이터로 바꿨다는 걸 알려주는 용도나 수학적 계산을 위해 쓰는 것 같습니다.

    $$ \begin{align}  E^0 f(x) & = f(x), \\ Ef(x) = E^1 f(x) & = f(x+h), \\ E^{-1} f(x) & = f(x-h), \\ E^kf(x) = f(x+kh) & = E(E^{k-1}f(x)), \ \ \ k = \pm1, pm2,... \end{align} $$

     

    forward 나 backward operator 를 E로 대체해서 쓸 수 있는데 다음과 같이 변형할 수 있습니다.

    $$ \Delta f(x) = f(x+h) - f(x) = Ef(x)-f(x) = (E-1)f(x) \\ \Rightarrow \Delta \equiv E-1, \ \ E \equiv 1+\Delta, $$

    $$ \nabla f(x) = f(x) - f(x-h) = f(x) - E^{-1}f(x) = (1-E^{-1})f(x) \\ \Rightarrow \nabla \equiv 1-E^{-1}, \ \ E \equiv (1-\nabla)^{-1} $$

     

    Difference polynomial

    operator를 이용해 f(x)를 polynomial $ p_n(x) $ 으로 근사시켜보도록 합시다. 

    먼저 forward difference operator를 이용한 경우는 다음과 같이 전개할 수 있습니다.

    실수 s 에 대해, x를 $ x_0 $ 으로 표현한다면 다음과 같이 할 수 있습니다.

    $$ x = x_0 +sh, \ 0 \ge s \ge n $$

     

    $ s \in {0,1,2,...,n} $ 이라면, $ x_0, ..., x_n $ 으로 표현할 수 있게 됩니다.

    이런 경우, s = (x-$ x_0 $)/h, 로 볼 수 있고 다음이 성립합니다.

    $$ \begin{align} f(x) & = f(x_0 +sh) \\ & = E^s f(x_0) \\ & = (1+\Delta)^s f(x_0) \\ & = \left[ 1+s\Delta+ \frac{s(s-1)}{2!} \Delta^2 + ···\right] f(x_0) \end{align} \tag{1} $$

     

    이항전개를 사용하면 $ (1+\Delta)^s $ 에서 $ \Delta^k $ 의 계수는 $ \begin{pmatrix} s \\ k \end{pmatrix} $ 가 됩니다. 이항계수라고도 불립니다.

    이항계수를 (1) 식에 적용하면 다음과 같이 정리할 수 있습니다.

    $$ f(x_0+sh) = \sum_{k=0}^{\infty} \begin{pmatrix} s \\ k \end{pmatrix} \Delta^k f_0 $$

    그런데 데이터를 무한개 쓴다는건 근사하는데 큰 의미가 없습니다. $ \infty $ 를 n으로 변경하여 $ p_n(x) $ 로 근사시키겠습니다.

    $$ f(x_0+sh) \cong p(x_0+sh) = \sum_{k=0}^n \begin{pmatrix} s \\ k \end{pmatrix} \Delta^k f_0 $$

    이렇게 근사한 $ p_n $ 를 Newton-Gregory forward difference polynomial 이라고 합니다.

     

    $ p_n $ 을 backward operator로도 표현할 수 있습니다.

    $$ p_n(x) = p_n(x_n+sh) = \sum_{k=0}^n (-1)^k \begin{pmatrix} -s \\ k \end{pmatrix} \nabla^k f_n $$

    이렇게 만든 $ p_n $ 은 Newton-Gregory backward difference polynomial 이라고 합니다.

     

     

    이렇듯 간격이 일정하다는 전제하에 $ p_n $ 을 더 세련되게 만들어 보았습니다.

     

    댓글

    Designed by JB FACTORY

    ....