Metody numeryczne – Wykład 7 – Interpolacja wielomianowa
Marek Bazan
III rok - Elektronika
Semestr zimowy 2020/2021
Plan zajęć
1. Sformułowanie problemu 2. Wzór Lagrang´e’a
3. Błąd interpolacji 4. Wzór Newtona
5. Optymalny dobór węzłów interpolacji
Sformułowanie problemu
Na przedziale < a, b > danych jest n + 1 punktów x0, x1, . . . , xn – węzłów interpolacji – oraz wartości pewnej funkcji y = f (x ) w tych punktach tzn.
f (x0) = y0, f (x1) = y1, . . . , f (xn) = yn. Zadanie polega na wyznaczeniu wielomianu
wn(x ) = a0xn+ a1xn−1+ · · · + an−1x + an, a0 6= 0. (1) który spełnia
f (x0) = y0= wn(x0), f (x1) = y1 = wn(x1), . . . , f (xn) = yn= wn(xn).
Sformułowanie problemu
Rysunek:Przykład interpolacji funkcji sin(x ) w 4 punktach wielomianem w3(x ).
Dowód istnienia wielomianu interpolacyjnego
Twierdzenie 1 Istnieje dokładnie jeden wielomian interpolacyjny stopnia conajwyżej n (n 0), który w punktach x0, x1, . . . , xm przyjmuje warości y0, y1, . . . , yn.
Dowód Mamy wielomian
wn(x ) = a0xn+ a1xn−1+ · · · + an−1x + an, a0 6= 0.
z nieznanymi współczynnikami a0, a1, . . . , an. Mamy również n + 1 warunków
y0 = wn(x0) y1 = wn(x1)
. . . (2)
yn = wn(xn)
Dowód istnienia wielomianu interpolacyjnego (2)
a0x0n+ a1x0n−1+ · · · + an−1x0+ an = y0
a0x1n+ a1x1n−1+ · · · + an−1x1+ an = y1 . . .
a0xnn+ anx1n−1+ · · · + an−1xn+ an = yn Mamy więc układ Ax = b
A =
x0n x0n−1 x0n−2 . . . x02 x0 1 x1n x1n−1 x1n−2 . . . x12 x1 1 . . .
xnn xnn−1 xnn−2 . . . xn2 xn 1
(3)
b = [y0, y1, . . . , yn]T (4) x = [a0, a1, . . . , an]T (5)
Dowód istnienia wielomianu interpolacyjnego (3) - Wyznacznik Vandermonde’a
Przy założeniu xi 6= xj dla i 6= j wyznacznik macierzy A
D =
x0n x0n−1 x0n−2 . . . x0 1 x1n x1n−1 x1n−2 . . . x1 1 . . .
xnn xnn−1 xnn−2 . . . xn 1
, (6)
który ma postać
D = Y
0¬j <i ¬n
(xi − xj) (7)
spełnia warunek D 6= 0.
Interpolacja Lagrang´ e’a
Wielomian interpolacyjny jest postaci
Wn(x ) = y0Φ0(x ) + y1Φ1(x ) + · · · + ynΦn(x ) gdzie
Φj(xi) =
( 0, gdy j 6= i , 1, gdy j = i . Funkcja Φj(x ) jest postaci
Φj(x ) = λ(x − x0)(x − x1) . . . (x − xj −1)(x − xj +1) . . . (x − xn) a ponieważ
Φj(xj) = 1 = λ(xj−x0)(xj−x1) . . . (xj−xj −1)(xj−xj +1) . . . (xj−xn) to otrzymujemy
λ = 1
(xj − x0)(xj − x1) . . . (xj − xj −1)(xj− xj +1) . . . (xj − xn)
Interpolacja Lagrang´ e’a (2)
Wzór na wielomian interpolacyjny postaci Wn(x ) = y0(x − x1)(x − x2) . . . (x − xn)
(x0− x1) . . . (x0− xn) + + y1
(x − x0)(x − x2) . . . (x − xn) (x1− x0) . . . (x1− xn) + + y2(x − x0)(x − x1) . . . (x − xn)
(x2− x0) . . . (x1− xn) + . . .
+ yn
(x − x0)(x − x1) . . . (x − xn−1) (xn− x0) . . . (xn− xn−1) =
=
n
X
j =0
yj
(x − x0)(x − x1) . . . (x − xj −1)(x − xj +1) . . . (x − xn) (xj − x0)(xj − x1) . . . (xj− xj −1)(xj − xj +1) . . . (xj − xn)
Interpolacja Lagrang´ e’a - oszacowanie błędu
Dla funkcji f (x ) określonej w przedziale < a, b > i danych węzłów X = {(xi, f (xi))}ni =0 błędem interpolacji określamy następujące wyrażenie
ε(x ) = f (x ) − Wn(x )
gdzie Wn(x ) jest wielomianem interpolacyjnym dla węzłów X.
Określmy funkcję pomocniczą
ϕ(u) = f (u) − Wn(u) + K (u − x0)(u − x1) . . . (u − xn) gdzie K jest pewną stałą.
Zauważmy, że
ϕ(x0) = ϕ(x1) = · · · = ϕ(x0) = 0
Interpolacja Lagrang´ e’a - oszacowanie błędu (2)
Współczynnik K dobieramy tak, aby pierwiastkiem funkcji ϕ(x ) był rownież punkt ˜x różny od węzłów interpolacji. Stąd
K = f (˜x ) − Wn(˜x ) (˜x − x0)(˜x − x1) . . . (˜x − xn) przy czym K jest określone tylko i wyłącznie dla
˜
x 6= xi i = 0, . . . , n, ale tak właśnie zakładamy o ˜x . Funkcja ϕ(u) ma więc n + 2 miejsc zerowych w przedziale
< a; b >, w punktach x0, x1, . . . , xn, ˜x . Na podstawie twierdzenia Rolle’a możemy stwierdzić, że pochodna ϕ0(u) funkcji ϕ(u) ma conajmniej jedno miejsce zerowe w każdym z podprzedziałów, których końcami są miejsca zerowe funkcji ϕ,
Interpolacja Lagrang´ e’a - oszacowanie błędu (3)
Zatem wewnątrz przedziału (min(˜x , x0), max(˜x , xn) ma conajmniej n + 1 miejsc zerowych ξ0(1), ξ1(1), . . . , ξ(1)n .
Stosując ponownie twierdzenie Rolle’a do pochodnej ϕ0(u) stwierdzamy, że istnieje conajmniej n punktów ξ0(2), ξ1(2), . . . , ξn−1(2) takich, że
ϕ00(ξ0(1)) = ϕ00(ξ(2)1 ) = · · · = ϕ00(ξn−1(2) ) = 0
Kontunuując to rozumowanie indukcyjnie dochodzimy do wniosku, że istnieje co najmniej jeden punktów przedziale
(min(˜x , x0), max(˜x , xn)), że
ϕ(n+1)(ξ) = 0. (8)
Interpolacja Lagrang´ e’a - oszacowanie błędu (4)
A ponieważ
Wn(n+1)(x ) = 0
ω(n+1)n (x ) = [(x − x0)(x − x1) . . . (x − xn)](n+1)= (n + 1)!
więc
ϕ(n+1)(u) = f(n+1)− K (n + 1)!
Korzystając z (8) dla u = ξ mamy
K = f(n+1)(ξ) (n + 1)!
oraz główny wynik
f (x ) − Wn(x ) = f(n+1)(ξ)
(n + 1)!(x − x0)(x − x1) . . . (x − xn) (9)
Interpolacja Newtona
Zdefiniujmy ilorazy różnicowe oparte o dwa węzły f [x0; x1] = f (x1) − f (x0)
x1− x0 f [x1; x2] = f (x2) − f (x1)
x2− x1 . . .
f [xn−1; xn] = f (xn) − f (xn−1) xn− xn−1 i rekurencyjnie o trzy węzły
f [x0; x1; x2] = f [x1; x2] − f [x0; x1] x2− x0 . . .
f [xn−2; xn−1; xn] = f [xn−1; xn] − f [xn−2; xn−1] xn− xn−2
i dla n węzłów rekurencyjnie (rzędu n)
f [xi; xi +1; . . . ; xi +n] = f [xi +1; . . . ; xi +n] − f [xi; . . . ; xi +n−1] xi +n− xi
Interpolacja Newtona (2) - tablica ilorazów różnicowych
x0 f (x0)
x1 f (x1) f [x0; x1]
x2 f (x2) f [x1; x2] f [x0; x1; x2]
x3 f (x3) f [x2; x3] f [x1; x3; x3] f [x0; . . . ; x3]
x4 f (x4) f [x3; x4] f [x2; x3; x4] f [x1; . . . ; x4] f [x0; . . . ; x4]
. . .
xn f (xn) f [xn−1; xn] f [xn−2; xn−1; xn] f [xn−4; . . . ; xn] f [xn−5; . . . ; xn] . . . f [x0; . . . ; xn]
ωi ≡ 1 i = 0,
ωi(x ) = (x − x0)(x − x1) . . . (x − xi) i = 1, . . . , n
Wn(x ) = f (x0)+f [x0; x1]ω1(x )+f [x0; x1; x2]ω2(x )+· · ·+f [x0, . . . , xn]ωn(x )
Optymalne układy węzłów
Rysunek:Przykład interpolacji funkcji 1/(1 + (10x )2) w 11 węzłach równoodległych wielomianem w10(x ) na przedziale [−1, 1].
Optymalne układy węzłów (2)
Rysunek:Przykład interpolacji funkcji 1/(1 + (10x )2) w 21 węzłach będących zerami wielomianu Czebyszewa T20(0) wielomianem w20(x ) na przedziale [−1, 1].
xm = cos
2m + 1 2n π
m = 0, 1, . . . , n − 1 (10)