[수치해석] Lagrange interpolation
- 수학
- 2021. 10. 12.
이전에 쓴 포스팅인 Polynomial interpolation 을 연결하는 내용입니다.
이번 포스팅은 Lagrange interpolation 에 대한 내용입니다.
이전 포스팅에서는 세 점의 데이터를 가지고 quadratic polynomial로 보간함수를 만드는 작업을 했었습니다.
이번에는 점이 n+1개인 경우입니다. 사실상 많은 숫자를 의미하는데 계산편의를 위해 n+1개로 하겠습니다.
(x0,f0),...,(xn,fn) 의 데이터에서 보간함수 Pn(x) 를 만들려고 합니다. 당연히 같은 값의 점은 하나도 없습니다.
만들어야 하는 보간함수 Pn(x) 는
- Pn(x) 의 차수(degree)는 n보다 작았으면 좋겠고
- 지금 사용할 데이터 (x0,f0),...,(xn,fn) 를 지나야 합니다.
이 두가지 조건을 만족하는 Pn(x)을 만들 수 있는지 살펴보겠습니다.
Approch
Pn(x) 를 만들기 위해서 이전 포스팅에서 만들었던 P1(x) 에서 시작을 해봅시다.
P1(x) 을 symmetric form으로 변형을 할 거에요. 쉽게 말해서 f0,f1 기준으로 항정리를 하면 f0,f1 의 계수가 유사하게 생기게 됩니다.
P1(x)=a+bx=f1−f0x1−x0(x−x0)+f0=(x−x1x0−x1)f0+(x−x0x1−x0)f1=ℓ0(x)f0+ℓ1(x)f1
그러면 ℓ0(x)와ℓ1(x) 는 같은 인덱스의 xi 값은 1이 되고 나머지는 0이 되는 구조가 됩니다.
즉, ℓk(xi)={0if i≠k1if 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(x−x1)(x−x2)...(x−xn−1)(x−xn),where C0=1(x0−x1)(x0−x2)....(x0−xn)
이렇게 된다면 ℓ0(x) 는 두가지 조건을 만족하게 됩니다.
좀 더 정리하면 다음과 같이 됩니다.
ℓ0(x)=(x−x1)(x−x2)...(x−xn)(x0−x1)(x0−x2)...(x0−xn−1)(x0−xn)=n∏i=1x−xix0−x1
나머지 ℓk(x) 도 위와 같이 형성됩니다. 따라서 0을 포함한 k의 ℓk(x) 는 다음과 같이 표현할 수 있습니다.
ℓk(x)=n∏i=0,i≠kx−xixk−xi ,k=1,...,n
이렇게 만든 ℓk 를 Lagrange polynomials 라 합니다.
Lagrange polynomials 를 Pn(x) 에 대입을 하면 다음과 같이 나옵니다.
Pn(x)=n∑k=0fkn∏i=0,i≠kx−xixk−xi
Pn(x) 를 Lagrange interpolating polynomial of degree n 이라 합니다.
그래서 이전 포스팅에서 다룬 Polynomial interpolation의 일반화된 형태로 볼 수 있습니다.
Error
Pn(x) 를 구했으니 Error 함수 en(x)를 구해서 오차범위를 알아봅시다.
그전에 한가지를 알고 가야합니다. 오차계산의 편의를 위한 작업입니다.
Lemma) f(x)−Pn(x)=(x−x0)···(x−xn)f(n+1)(α)(n+1)!
증명은 다음과 같습니다. 보실분은 클릭하셔서 보세요.
g(x)=f(x)−Pn(x)+λ(x−x0)···(x−xn), λ 는 임의 상수라 한다.
x=α 에서의 error를 구하고 싶다면 g(α)=0 이 되는 λ를 선택해주어야 한다.
즉, 0=f(α)−Pn(α)+λ(α−x0)···(α−xn) 이기 때문에
λ=−f(α)−Pn(α)(α−x0)···(α−xn)
이 되어야 한다.
∴ g(x)=f(x)−Pn(x)−(x−x0)···(x−xn)(α−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)=(x−x0)···(x−xn)f(n+1)(ξα)(n+1)!
Lemma 가 되었으니 오차범위는 다음과 같이 됩니다.
Mn+1=max|f(n+1)(x)|,x0<x<xn 일때,
|en(x)|=|f(x)−Pn(x)|≦|(x−x0)···(x−xn)|Mn+1(n+1)!
오차함수도 또한 Lagrange polynomial로 일반화되어서 다항식으로 표현되는 식에 대해서 적용할 수 있습니다.
관련 포스팅
[수치해석] Polynomial interpolation
참고문헌
Introduction to numerical analysis / alastair wood
Theory and Applications of Numerical Analysis-Academic Press / G. M. M. Phillips, Peter J. Taylo
'수학' 카테고리의 다른 글
[수치해석] Spline interpolation(스플라인 보간법) (0) | 2021.10.23 |
---|---|
[수치해석] Equispaced interpolation(등간격 보간) (0) | 2021.10.20 |
[수치해석] Divided difference interpolation (0) | 2021.10.16 |
[수치해석] Polynomial interpolation (0) | 2021.10.11 |
[수치해석] Polynomial form (0) | 2021.10.04 |
데이터목장님의
글이 좋았다면 응원을 보내주세요!