Interpolacja wielomianowa Izolda Gorgol wyciąg z prezentacji

Transkrypt

Interpolacja wielomianowa Izolda Gorgol wyciąg z prezentacji
Interpolacja wielomianowa
Izolda Gorgol
wyciąg z prezentacji
Wielomianowe zadanie interpolacyjne – wersja nieformalna
Dane są:
— punkty: x0 , x1 , . . . , xn – węzły interpolacji;
— wartości: f (x0 ), f (x1 ), . . . , f (xn ) – wartości pewnej funkcji w tych węzłach;
Wyznaczyć wielomian w z pewnej klasy, dla którego w(xi ) = f (xi ) dla każdego i.
O obliczaniu wartości wielomianu
Wielomian w postaci naturalnej
w(x) =
n
X
ai xi
i=0
2
wymaga n dodawań i około n mnożeń do obliczenia wartości w ustalonym punkcie x0 .
Wielomian w postaci
w(x) = (· · · (an x + an−1 )x + an−2 )x + · · · + a1 )x + a0
wymaga tylko n dodawań i n mnożeń.
Schemat Hornera
Algorytm: Input: n, (ai , 0 6 i 6 n), x0 Output: v
1. v := an ;
2. for k = n − 1 downto 0 do v := ak + x0 ∗ v;
3. output v;
Schemat Hornera – własności
— jest numerycznie poprawny;
— minimalizuje liczbę operacji arytmetycznych przy obliczaniu wartości wielomianu;
— może być wykorzystany do dzielenia wielomianu w(x) przez dwumian (x − x0 );
— pozwala na obliczenie wartości pochodnych w(j) (x) (dokładniej
w(j) (x)
)
j!
Zadanie interpolacyjne Lagrange’a – wersja formalna
DEFINICJA Niech D ⊂ R i niech F będzie pewnym zbiorem funkcji f : D → R. Niech x0 , x1 , . . . , xn będzie
ustalonym zbiorem parami różnych punktów z D (węzłów interpolacji).
Mówimy, że wielomian w interpoluje funkcję f ∈ F w węzłach xj wtt, gdy w(xj ) = f (xj ),
0 6 j 6 n.
Zadanie znalezienia wielomianu interpolującego zadane wartości nazywamy zadaniem interpolacyjnym Lagrange’a.
Istnienie i jednoznaczność wielomianu interpolacyjnego
Niech Πn będzie przestrzenią liniową wielomianów stopnia co najwyżej n o współczynnikach rzeczywistych.
Πn = {w(x) = an xn + an−1 xn−1 + · · · + a1 x + a0 : aj ∈ R, 0 6 j 6 n}.
TWIERDZENIE Dla dowolnej funkcji f : D → R istnieje dokładnie jeden wielomian wf ∈ Πn interpolujący f w
węzłach xj , 0 6 j 6 n, gdzie węzły interpolacji są dowolnie wybrane i parami różne.
1
Wybór bazy w przestrzeni Πn
W przestrzeni Πn można wybrać wiele baz (nieformalnie mówiąc – postaci wielomianów).
Niech (ϕj )nj=0 będzie bazą w przestrzeni Πn .
Szukamy współczynników cj takich, że wielomian
wf =
n
X
cj ϕj
j=0
interpoluje f w punktach xj , 0 6 j 6 n.
Wybór bazy ma znaczący wpływ na jakość algorytmu wyznaczania wielomianu interpolującego (czyli jego współczynników w danej bazie).
Baza naturalna (potęgowa)
ϕj (x) = xj , dla każdego j,
czyli szukamy wielomianu wf w postaci naturalnej.
Prowadzi to do układu





1
1
..
.
x0
x1
x20
x21
···
···
1
xn
x2n
···

xn0

xn1 



xnn
c0
c1
..
.


f (x0 )
f (x1 )
..
.




 = 


cn



.

f (xn )
z macierzą Vandermonde’a.
Baza naturalna (potęgowa)
Rozwiązanie tego układu wymaga około n3 operacji arytmetycznych.
Ponadto, gdy węzły interpolacji są równoodległe, ta macierz jest bardzo źle uwarunkowana.
Wybór tej bazy jest zły ze względów numerycznych.
Łatwo za to obliczyć wartość wielomianu w dowolnym punkcie (schematem Hornera).
Baza Lagrange’a (kanoniczna)
ϕj = lj , dla każdego j, gdzie
lj (x) =
(x − x0 )(x − x1 ) · · · (x − xj−1 )(x − xj+1 ) · · · (x − xn )
.
(xj − x0 )(xj − x1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xn )
Każdy z l
j jest stopnia dokładnie n oraz
0
i 6= j,
lj (xi ) =
1
i = j.
Wielomiany te stanowią bazę w Πn , którą nazywamy bazą Lagrange’a.
Macierz układu jest macierzą jednostkową.
Zatem cj = f (xj ), dla każdego j.
Baza Lagrange’a (kanoniczna)
2
Wzór interpolacyjny Lagrange’a
n
X
wf (x) =
f (xj )lj (x).
j=0
lj (x) =
n
Y
x − xi
xj − xi
i=0
i 6= j
UWAGA Wielomiany bazowe lj nie zależą od wartości funkcji.
UWAGA Istnieją algorytmy obliczania wartości wielomianu w tej postaci w dowolnym punkcie.
Baza Newtona
ϕj = pj , dla każdego j, gdzie
p0 (x) = 1,
pj (x) = (x − x0 )(x − x1 ) · · · (x − xj−1 ),
1 6 j 6 n.
bj – współczynniki rozwinięcia wf w bazie (pj )
Wzór interpolacyjny Newtona
j−1
n
X
Y
wf (x) =
bj
(x − xi ).
j=0
i=0
Baza Newtona
wf,j ∈ Πj – wielomian interpolacyjny dla funkcji f oparty na węzłach x0 , x1 , . . . , xj , 0 6 j 6 n.
Wówczas
wf,0 = b0 ,
wf,j = wf,j−1 + bj pj ,
1 6 j 6 n.
Macierz układu jest macierzą trójkątną dolną.
Wartość wf (x) możemy obliczyć, stosując prostą modyfikację algorytmu Hornera.
Schemat Hornera dla bazy Newtona
Algorytm: Input: n, (bi , 0 6 i 6 n), y0 Output: v
1. v := bn ;
2. for k = n − 1 downto 0 do v := bk + (y0 − xk ) ∗ v;
3. output v;
Ilorazy różnicowe
DEFINICJA Ilorazem różnicowym funkcji f opartym na różnych węzłach xl , xl+1 , . . . , xl+k nazywamy wyrażenie
l+k
X
f (xs )
f [xl , xl+1 , . . . , xl+k ] =
.
l+k
s=l
Q
t = l (xs
t 6= s
− xt )
UWAGA Iloraz różnicowy nie zależy od kolejności argumentów.
TWIERDZENIE Dla dowolnego układu parami różnych punktów xl , xl+1 , . . . , xl+k , zachodzi zależność rekurenf [xl+1 , . . . , xl+k ] − f [xl , xl+1 , . . . , xl+k−1 ]
cyjna f [xl , xl+1 , . . . , xl+k ] =
.
xl+k − xl
3
Współczynniki we wzorze Newtona a ilorazy różnicowe
TWIERDZENIE Współczynniki bj wielomianu interpolacyjnego Newtona dla danej funkcji f dane są przez ilorazy
różnicowe f w węzłach x0 , x1 , . . . , xj , tzn. bj = f [x0 , x1 , . . . , xj ],
0 6 j 6 n.
Możemy łatwo skonstruować tablicę do obliczania poszczególnych ilorazów różnicowych.
Przy realizacji w f lν algorytmu ilorazów różnicowych istotną rolę odgrywa porządek węzłów.
Przy monotonicznym uporządkowaniu węzłów algorytm obliczania f [x0 , x1 , . . . , xk ] jest numerycznie poprawny ze
względu na dane interpolacyjne.
Baza Newtona jest często wykorzystywana ze względu na łatwe obliczanie zarówno współczynników wielomianu,
jak i wartości wielomianu w dowolnym punkcie.
Błąd interpolacji wielomianowej (funkcji w punkcie)
TWIERDZENIE Jeśli f ∈ C (n+1) [a, b], a wielomian wf interpoluje funkcję f w punktach x0 , x1 , . . . , xn , to dla
każdego x ∈ [a, b] istnieje ξx ∈ (a, b) takie, że
n
f (n+1) (ξx ) Y
(x − xi ).
f (x) − wf (x) =
(n + 1)! i=0
Błąd interpolacji wielomianowej (w klasie funkcji)
g : [a, b] → R – ciągła
Norma jednostajna (Czebyszewa):
kgk[a,b] = max |g(x)|.
x∈[a,b]
r > 0, 0 < M < ∞
r
FM
([a, b]) = { f ∈ C (r+1) ([a, b]) : kf (r+1) k[a,b] 6 M }.
TWIERDZENIE O najgorszym możliwym błędzie interpolacji w klasie
r
Załóżmy, że każdą funkcję f ∈ FM
([a, b]) aproksymujemy jej wielomianem interpolacyjnym wf ∈ Πr opartym na
r + 1 węzłach x0 , . . . , xr ∈ [a, b]. Wtedy maksymalny błąd takiej aproksymacji wynosi
r
e(FM
([a, b]); x0 , x1 , . . . , xr ) =
max
kf − wf k[a,b]
r
f ∈FM ([a,b])
=
M
· max |(x − x0 ) · · · (x − xr )|.
(r + 1)! a6x6b
4

Podobne dokumenty