본문 바로가기

Library/Numerical Analysis

Lagrange Interpolation

보정(interpolation) 방법 중 가장 대표적인 것은 Lagrange Interpolation이다. 이것은 다음과 같이 정의되는데, 더 좋은 보정값을 얻기 위해서 좀 더 많은 항을 포함해 계산해야 한다.






이 식에서 i = j인 것을 주목하라. 분자를 0으로 만들지 않기 위해, 같은 값을 뺄 수 없다.


이제, 이것을 함수값에 적용하기 위해 미분과 마찬가지로 몇몇 인프라를 정의해보도록 하자. 먼저, D'과 d'을 정의하자. 개념은 미분에서의 D, d와 동일하다.


D' = f(x + ah) - f(x)

d' = f(x) - f(x - ah)


미분과 마찬가지로 이 식을 정리해보면, D'f(x) = (z^a - 1) * f(x)이며, D' = z^a - 1로 정의할 수 있다.

이 식 역시 미분에서 D를 구하는 과정과 마찬가지로, f(i + 1) = e^(hD) * f(i)일 때 f(x + ah) = e^ahD * f(x)라 할 수 있으며, 결국 다음과 같이 정리된다.


f(x + ah) = e^ahD * f(x)

∴ f(x + ah) = z^a * f(x)


여기서 z는 1 + D이므로, 위에서 얻은 D' = z^a - 1을 적용하면 다음과 같은 식을 얻을 수 있다.


D' = (1 + D)^a - 1


이제, 필요한 것은 D'이며, -1을 제외한 (1 + D)^a은 이항 정리를 통해 식을 전개할 수 있다. 이항 정리는 다음과 같다.




이렇게 얻어진 이항 전개식을 함수값에 적용하면 원하는 보정값을 얻을 수 있다. 물론, z 연산자는 z^(-1)로 사용할 수도 있으며, 이때 이미 이전에 구해진 함수값인지, 아니면 함수값의 차이를 의미하는 D, d인지를 잘 살펴봐야 한다.