Processing math: 100%

[수치해석] Lagrange interpolation

반응형
반응형

이전에 쓴 포스팅인 Polynomial interpolation 을 연결하는 내용입니다.

이번 포스팅은 Lagrange interpolation 에 대한 내용입니다. 

이전 포스팅에서는 세 점의 데이터를 가지고 quadratic polynomial로 보간함수를 만드는 작업을 했었습니다.

이번에는 점이 n+1개인 경우입니다. 사실상 많은 숫자를 의미하는데 계산편의를 위해 n+1개로 하겠습니다.

(x0,f0),...,(xn,fn) 의 데이터에서 보간함수 Pn(x) 를 만들려고 합니다. 당연히 같은 값의 점은 하나도 없습니다.

만들어야 하는 보간함수 Pn(x) 는 

  1. Pn(x) 의 차수(degree)는 n보다 작았으면 좋겠고
  2. 지금 사용할 데이터 (x0,f0),...,(xn,fn) 를 지나야 합니다.

이 두가지 조건을 만족하는 Pn(x)을 만들 수 있는지 살펴보겠습니다.

Approch

Pn(x) 를 만들기 위해서 이전 포스팅에서 만들었던 P1(x) 에서 시작을 해봅시다. 

P1(x) 을 symmetric form으로 변형을 할 거에요. 쉽게 말해서 f0,f1 기준으로 항정리를 하면 f0,f1 의 계수가 유사하게 생기게 됩니다.

 

P1(x)=a+bx=f1f0x1x0(xx0)+f0=(xx1x0x1)f0+(xx0x1x0)f1=0(x)f0+1(x)f1 

 

그러면 0(x)1(x) 는 같은 인덱스의 xi 값은 1이 되고 나머지는 0이 되는 구조가 됩니다.

즉, k(xi)={0if ik1if i=k 가 됩니다.

 

이런 접근으로 계속 가서 아래와 같이 만들면서 조건도 맞으면 금상첨화입니다.

Pn(x)=0(x)f0+1(x)f1+...+n(x)fn

 

0,...,n 의 차수가 n보다 작거나 같다면 첫번째 조건을 만족합니다.

두번째 조건을 만족하려면 Pn(xi)=fi 가 나오면 됩니다.

즉, 두번째 조건을 만족하려면 0(x0)을 기준으로 본다면 0(x0)=1 이고 나머지 항은 0이어야 합니다. 

P1(x) 에서 했던 접근으로 간다면 두 조건을 만족하는 0(x) 는 다음과 같이 됩니다.

0(x)=C0(xx1)(xx2)...(xxn1)(xxn),where C0=1(x0x1)(x0x2)....(x0xn)

 

이렇게 된다면 0(x) 는 두가지 조건을 만족하게 됩니다. 

좀 더 정리하면 다음과 같이 됩니다.

 

0(x)=(xx1)(xx2)...(xxn)(x0x1)(x0x2)...(x0xn1)(x0xn)=ni=1xxix0x1

 

나머지 k(x) 도 위와 같이 형성됩니다. 따라서 0을 포함한 k의 k(x) 는 다음과 같이 표현할 수 있습니다. 

k(x)=ni=0,ikxxixkxi ,k=1,...,n

 

이렇게 만든 k 를 Lagrange polynomials 라 합니다.

Lagrange polynomials 를 Pn(x) 에 대입을 하면 다음과 같이 나옵니다. 

Pn(x)=nk=0fkni=0,ikxxixkxi

Pn(x) 를 Lagrange interpolating polynomial of degree n 이라 합니다.

그래서 이전 포스팅에서 다룬 Polynomial interpolation의 일반화된 형태로 볼 수 있습니다.

 

 

Error

Pn(x) 를 구했으니 Error 함수 en(x)를 구해서 오차범위를 알아봅시다.

 

그전에 한가지를 알고 가야합니다. 오차계산의 편의를 위한 작업입니다. 

Lemma)  f(x)Pn(x)=(xx0)···(xxn)f(n+1)(α)(n+1)!

증명은 다음과 같습니다. 보실분은 클릭하셔서 보세요.

더보기

g(x)=f(x)Pn(x)+λ(xx0)···(xxn), λ 는 임의 상수라 한다.

x=α  에서의 error를 구하고 싶다면 g(α)=0 이 되는 λ를 선택해주어야 한다.

즉, 0=f(α)Pn(α)+λ(αx0)···(αxn) 이기 때문에

λ=f(α)Pn(α)(αx0)···(αxn)

이 되어야 한다.

g(x)=f(x)Pn(x)(xx0)···(xxn)(αx0)···(αxn)(f(α)Pn(α))

그러면 g(x)는 x=x0,...,xn,α 에서 해를 갖게 된다.

Rolle의 정리(the extended Rolle Thm) 에 의해, g(n+1) 은 적어도 하나의 해를 갖게 되는데, 이 해를 ξα 라 하면 다음이 성립한다.

 

g(n+1)(x)=f(n+1)(x)(n+1)!(αx0)···(αxn)(f(α)Pn(α))

 

0=g(n+1)(ξα)=f(n+1)(ξα)(n+1)!(αx0)···(αxn)(f(α)Pn(α))

 

f(x)Pn(x)=(xx0)···(xxn)f(n+1)(ξα)(n+1)!

 

 

Lemma 가 되었으니 오차범위는 다음과 같이 됩니다.

Mn+1=max|f(n+1)(x)|,x0<x<xn 일때,

|en(x)|=|f(x)Pn(x)||(xx0)···(xxn)|Mn+1(n+1)!

 

오차함수도 또한 Lagrange polynomial로 일반화되어서 다항식으로 표현되는 식에 대해서 적용할 수 있습니다.

 

관련 포스팅

[수치해석] Polynomial form

[수치해석] Polynomial interpolation

 

참고문헌

Introduction to numerical analysis / alastair wood

Theory and Applications of Numerical Analysis-Academic Press / G. M. M. Phillips, Peter J. Taylo

 

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY