라그랑주 보간법(Lagrangian Interpolation)

Posted by wbpark
2017. 8. 30. 22:21 물리 수학

라그랑주 보간법
보간법이란 불연속적인 데이터를 이용하여 사이 구간의 값을 추정하는 방법입니다. 라그랑주 보간법(Lagrangian Interpolation)은 n+1개의 좌표로 n차 다항식을 만드는 방법입니다. 계산과정이 단순무식하면서도 흥미로운 부분이 있어 소개하려 합니다. 식을 유도과정이 필요하다기보다 몇번 손으로 따라 써보면 어떤 논리로 만들어진 식인지 바로 이해가 될 것입니다.


이미지 출처 : http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html



기본 아이디어
1. n+1개의 데이터로 n차 함수를 만든다.
2. 특정 숫자를 대입하면 0이나 1의 값을 갖는 항을 만든다.
3. (x-a)를 곱해주면 x에 a값을 대입할 때 0이 된다.
4. (x-a)를 (b-a)로 나누면, x에 b를 대입했을 때 1이 된다.


일차함수
두 점 $(x_0, y_0)$, $(x_1, y_1)$가 주어졌을 때, 라그랑주 보간식은 다음과 같습니다.




라그랑주 보간식의 핵심은 $y_0$과 $y_1$ 앞에 붙어있는 항에 있습니다. $x$에 $x_0$를 대입하면 $y_0$에 곱해진 항은 1이 되고, $y_1$에 곱해진 항은 0이 됩니다. 따라서 이 식의 그래프는 점 $(x_0, y_0)$를 지납니다. 마찬가지로 $x_1$를 대입하면 $(x_1, y_1)$를 만족합니다. 이차함수와 삼차함수를 살펴봅시다.


이차함수
세 점 $(x_0, y_0), (x_1, y_1), (x_2, y_2)$을 지나는 이차함수입니다.




일차함수에서와 마찬가지로 $y_0$에 붙어있는 항은 $x_0$이 대입되었을 때 1이 되고, $x_1$이나 $x_2$가 대입되었을 때 0이 됩니다. 이 항에서 분자의 역할은 0이 되는 지점을 설정하는 것이라 할 수 있습니다. 이 항에서 분모의 역할은 어떤 지점에서 1이 되도록 크기를 맞춰주는 것입니다.


삼차함수
네 점 $(x_0, y_0), (x_1, y_1), (x_2, y_2), (x_3, y_3)$을 지나는 삼차함수입니다. 




삼차함수까지 손으로 써보면 장단점이 확실히 느낄 수 있을 것입니다. 장점은 어떻게든 보간식을 만들어낼 수 있다는 것이고, 단점은 점이 하나씩 추가될 때마다 처음부터 다시 다 계산해야 한다는 것입니다. 더 이상의 고차함수는 쉽게 예상하실 수 있을 거라 믿습니다. 


짤방

여담이지만, 라그랑주 보간법에 의해 1,3,5,7 그 다음수는 217341라 주장하던 짤이 있습니다. 이런 말도안되는 식이 어떻게 나오는지 궁금해서 직접 보간식을 써보니 저는 제대로 y=2x-1이 나오더군요.


이미지 출처 : https://blog.naver.com/dev_kr/220951507946


 $$ y= \left( \frac{(x-2)(x-3)(x-4)}{(1-2)(1-3)(1-4)} \right)1 + \left( \frac{(x-3)(x-4)(x-1)}{(2-3)(2-4)(2-1)} \right)3$ $ + \left( \frac{(x-1)(x-2)(x-4)}{(3-1)(3-2)(3-4)} \right)5 + \left( \frac{(x-1)(x-2)(x-3)}{(4-1)(4-2)(4-3)} \right)7$ $ = 2x-1 $$


사실 사진에 있는 식은 (5, 217341)을 포함시키고 만든 보간식입니다. 보간식의 최고차 항이 4차인 것만 봐도 5개 이상의 데이터를 넣어 만든 식이란걸 알 수 있죠. 이 논리에 따르면 아무 숫자나 부른 다음에 그 숫자를 포함한 4차식을 제시할 수 있다는 겁니다. 매우 논리적이죠. 새삼 고차식을 쓰면 엄청나게 억지스러워 보이는 수열도 표현할 수 있지만 더럽다는 것을 알 수 있습니다.

마치며

공부하면서 궁금하거나 재밋었던 주제가 있다면 댓글로 제보 부탁드립니다.