W n
Transkrypt
W n
Interpolacja Zagadnienie interpolacji: znaleźć funkcję p określonej klasy (np. wielomian), która w punktach x0 , x1 ,..., xn (gdzie x x ,..., x ) przyjmuje wartości y0 , y1 ,..., yn 0 1 n Mówimy, że p interpoluje wartości yk w węzłach xk. Uwaga Może się zdarzyć, że yk f ( xk ) dla k 0,1,, n wartości funkcji f jest zbyt pracochłonne. Mówimy wówczas, że p interpoluje f. lecz obliczanie Zastosowania interpolacji • Szacowanie określonych wielkości w punktach pośrednich. • Prowadzenie gładkich krzywych lub powierzchni przez punkty pomiarowe lub z symulacji. • Algorytmy numeryczne (np. całkowanie numeryczne) Twierdzenie Istnieje dokładnie jeden wielomian interpolacyjny Wn(x) stopnia n (n 0), który w punktach x0 , x1 ,..., xn przyjmuje wartości y0 , y1 ,..., yn Dowód: Szukany wielomian ma postać: Wn ( x ) an x n an 1 x n 1 a0 otrzymujemy układ n+1 równań liniowych z n+1 niewiadomymi współczynnikami ai , i 0, 1, , n a0 a1 x0 a2 x02 an x0n y0 a0 a1 x1 a2 x12 an x1n y1 a0 a1 xi a2 xi2 an xin yi a0 a1 xn a2 xn2 an xnn yn Macierz Vandermonde’a Układ równań można zapisać w postaci macierzowej 1 x0 1 x1 x02 x0n x12 x1n 1 xi 1 xn xi2 xn2 Macierz Vandermonde’a xin xnn a0 a1 ai an y0 y1 yi yn 1 x0 1 x1 1 xi 1 xn x02 x0n x12 x1n 2 i n i x x xn2 xnn ( xk xj) 0 j k n Wyznacznik Vandermonde’a jest różny od zera, jeśli tylko xi xj, i j (dla i,j = 0,1,...,n). Wówczas układ równań ma dokładnie jedno rozwiązanie. Uwaga Macierz Vandermonde’a bywa źle uwarunkowana - w obliczeniach numerycznych stosuje się inne metody wyznaczania współczynników wielomianu interpolacyjnego Wzór interpolacyjny Lagrange’a j W Skonstruujemy wielomiany pomocnicze n (x) i = 0,1,...,n, stopnia n takie, że i n W (x j ) ij 0 gdy i 1 gdy i j j j Oznacza to, że dla x0 , x1 ,, x j 1 , x j 1 ,, xn , wielomian Wn (x) równa się zeru, a dla xj równa się jedności. Stąd jest postaci: Wni ( x) Ponieważ 1 ci ( xi skąd ci ( xi ci ( x x0 )( x x1 ) ( x xi 1 )( x xi 1 ) ( x xn ) Wni ( xi ) 1 x0 )( xi x0 )( xi więc x1 ) ( xi x1 ) ( xi xi 1 )( xi 1 xi 1 )( xi xi 1 ) ( xi xi 1 ) ( xi xn ) xn ) Ostatecznie: Wni ( x) ( x x0 )( x x1 ) ( x xi 1 )( x xi 1 ) ( x xn ) ( xi x0 )( xi x1 ) ( xi xi 1 )( xi xi 1 ) ( xi xn ) Wystarczy przyjąć: n Wni ( x) yi Wn ( x) i 0 Czyli: Wzór interpolacyjny Lagrange’a n Wn ( x) i 0 ( x x0 )( x x1 ) ( x xi 1 )( x xi 1 ) ( x xn ) yi ( xi x0 )( x j x1 ) ( xi xi 1 )( xi xi 1 ) ( xi xn ) otrzymujemy wielomian stopnia co najwyżej n spełniający wszystkie warunki wymagane przy interpolacji. Przyjmując oznaczenie n 1 ( x) (x x0 )( x x1 )( x xn ) Wzór interpolacyjny Lagrange’a można zapisać następująco: n n 1 Wn ( x) i 0 ( x xi ) ( x) n 1 ( xi ) yi gdzie n 1 ( xi ) jest wartością pochodnej wielomianu danym punkcie xi . n 1 ( x) w Przykład Znaleźć wielomian interpolacyjny Lagrange’a, który w punktach (1,2,3,4) przyjmuje wartości (3,1,-1,2). (x (1 (x 1 (3 p ( x) 3 1 2 1 2 2)( x 2)(1 1)( x 1)(3 3)( x 3)(1 2)( x 2)(3 4) (x 1 4) (2 4) (x 2 4) (4 ( x 3 9 x 2 26 x 24) ( x 3 7 x 2 14 x 8) 5 6 x3 5x 2 43 6 x 1 3 1 2 1)( x 1)(2 1)( x 1)(4 3)( x 3)(2 2)( x 2)(4 4) 4) 3) 3) ( x 3 8 x 2 19 x 12) ( x 3 6 x 2 11x 6) 3.5 3 2.5 2 1.5 5 3 2 43 x 5x x 1 6 6 0.5 0 0.5 1 1.5 0 1 2 3 x 4 Przybliżając funkcję f klasy Cn wielomianem interpolacyjnym Wn stopnia n, możemy obliczać jej wartości z dokładnością R( x) gdzie f ( x) Wn ( x) f ( n 1) ( ) (n 1)! n 1 ( x) [ x0 , xn ] W praktyce, ponieważ nie znamy wartości , dla oszacowania modułu błędu metody posługujemy się wzorem Rn ( x) gdzie Mn 1 Mn 1 (n 1)! max x0 x x n n 1 ( x) f ( n 1) ( x) Przykład f ( x) sin( x) Załóżmy, że przybliżamy f wielomianem stopnia 9 w przedziale [0,1] Mamy: dla x [0,1] | f ( n 1) ( x) | | f (10) ( x) | 1 więc Mn 1 M 10 max x0 x x9 f (10) ( x) 1 oraz | n 1 ( x) | | 10 ( x) | | ( x x0 )( x x1 ) ( x x9 ) | 1 skąd R9 ( x) M 10 10! 10 ( x ) 1 2.8 10 10! 7 Twierdzenie Weierstrassa Jeśli f jest funkcją ciągłą w przedziale [a,b], to dla dowolnego 0 istnieje wielomian p, dla którego || f p || Uwaga! f ( x) ( x 2 1) 1 , x [ 5,5] funkcja Runge: Załóżmy, że Wn , n 1,2 norma zbieżności jednostajnej jest ciągiem wielomianów interpolacyjnych dla f z równo oddalonymi węzłami. Wówczas (Wn ) nie dąży do f Jednak na pewno istnieje taki ciąg układów węzłów w przedziale [a,b], a x0( n ) xn( n ) b że ciąg wielomianów interpolacyjnych zbudowanych na tych węzłach jest zbieżny do f f ( x ) ( x 2 1) 1 , x [ 5,5] Wielomiany Czebyszewa Dane są wzorem rekurencyjnym: T0 ( x) 1, T1 ( x) Tn ( x) x 2 xTn 1 ( x) Tn 2 ( x) n T0 x 1 T1 x x T2 x 2x2 1 T3 x 4 x 3 3x T4 x 8x 4 8x 2 1 T5 x 16 x 5 20 x 3 5 x T6 x 32 x 6 48 x 4 18 x 2 1 2 Minimalizacja błędu przez wybór węzłów optymalnych Niech Wn będzie wielomianem interpolującym f na [-1,1] ( n 1) f ( ) Mamy: || R( x) || || f ( x) Wn ( x) || || || || (n 1)! n 1 ( x) || [ 1,1] dla pewnego Spróbujemy na przedziale [-1,1] znaleźć takie węzły interpolacji, aby wartość || n 1 była jak najmniejsza. ( x) || Wielomian p stopnia nn nazywamy standardowym, jeśli współczynik przy x jest równy jedności. Jeśli Wn jest wielomianem standardowym stopnia n, to || Wn ||[ 1 n 1,1] 2 Ponadto znak równości osiągniety jest dla wielomianu 21 n Tn W szczególności na przedziale [-1,1]: n || n 1 ( x) || || ( x xi ) || 2 n i 0 oraz norma ta jest najmniejsza gdy n 1 ( x) n 2 Tn 1 Jest tak, gdy gdy węzłami interpolacji są zera wielomianu tzn. punkty xi (2i 1) cos 2n 2 (0 i Tn 1 n). zwane węzłami optymalnymi. Wówczas, na przedziale [-1,1] f ( n 1) ( ) || R( x) || || || 2 (n 1)! n dla pewnego [ 1,1] Wzór interpolacyjny Newtona Niech f będzie daną funkcją oraz x0 , x1 ,..., xn węzłami interpolacji Wielomian interpolacyjny pn ( xi ) pn f ( xi ) taki, że i 1, n dla można zapisać w postaci: pn ( x) c0 c1 ( x x0 ) cn ( x x0 ) ( x xn 1 ) Współczynniki tego wielomianu można określić indukcyjnie c0 f ( x0 ) f ( x1 ) c0 c1 ( x1 x0 ) c1 f ( x1 ) f ( x0 ) x1 x0 itd. Zauważmy że dla 0 k od węzłów x0 , x1 ,..., xk Oznaczmy ck współczynnik n ck zależy tylko oraz wartości funkcji w tych punktach f [ x0 , x1 ,..., xk ] mamy: f [ x0 ] f [ x0 , x1 ] f ( x0 ) f ( x1 ) f ( x0 ) x1 x0 itd. Wyrażenia powyższej postaci będziemy nazywać ILORAZAMI RÓŻNICOWYMI Fakt dla 0 k n f [ x0 , x1 , xk ] f [ x1 , x2 , xk ] f [ x0 , x1 , xk 1 ] xk x0 Tablica ilorazów różnicowych x0 f [ x0 ] f [ x0 , x1 ] f [ x0 , x1 , x2 ] x1 f [ x1 ] f [ x1 , x2 ] f [ x1 , x2 , x3 ] x2 f [ x2 ] f [ x2 , x3 ] x3 f [ x3 ] f [ x0 , x1 , x2 , x3 ] 3 1 5 6 x 3 1 5 6 f(x) 1 -3 2 4 1 2 5 3 4 2 2 4 3 7 8 10 3 20 x0 f [ x0 ] f [ x0 , x1 ] f [ x0 , x1 , x2 ] x1 f [ x1 ] f [ x1 , x2 ] f [ x1 , x2 , x3 ] x2 f [ x2 ] f [ x2 , x3 ] x3 f [ x3 ] f [ x0 , x1 , x2 , x3 ] 3 7 p( x) 1 2( x 3) ( x 3)( x 1) ( x 3)( x 1)( x 5) 8 10 Interpolacja Hermite’a x0 x1 xn Jeśli pewien punkt xi występuje na tej liście k i razy oznacza to, że spełnione mają być warunki p ( j ) ( xi ) f ( j ) ( xi ) dla 0 j ki 1 Przyjmijmy f [ x0 , , x0 ] 1 (n) f ( x0 ) n! n+1 razy Jeśli x0 xn f [ x0 , x1 , xn ] f [ x1 , x2 , xn ] f [ x0 , x1 , xn 1 ] xn x0 Wówczas wielomian Hermite’a dany jest wzorem j 1 n f [ x0 , , x j ] p( x) j 0 ( x xi ) i 0 p(1) 2, p' (1) 3, p(2) 6, p' (2) 7, p' ' (2) 8 Wyznaczamy tablicę: x0 p ( x0 ) p[ x0 , x0 ] p[ x0 , x0 , x1 ] p[ x0 , x0 , x1 , x1 ] x0 p ( x0 ) p[ x0 , x1 ] p[ x0 , x1 , x1 ] p[ x0 , x1 , x1 , x1 ] x1 p ( x1 ) p[ x1 , x1 ] p[ x1 , x1 , x1 ] x1 p ( x1 ) p[ x1 , x1 ] x1 p ( x1 ) p[ x0 , x0 , x1 , x1 , x1 ] p ( x1 ) p ( x0 ) x1 x0 p[ x0 , x0 ] p ' ( x0 ) p ' (1) 3, p[ x0 , x1 ] p[ x1 , x1 ] p ' ( x1 ) p ' (2) 7, p[ x0 , x0 , x1 ] p[ x0 , x1 , x1 ] p[ x1 , x1 ] p[ x0 , x1 ] x1 x0 7 4 1 3, p[ x1 , x1 , x1 ] p[ x0 , x1 , x1 ] p[ x0 , x0 , x1 ] x1 x0 3 1 1 p[ x0 , x1 , x1 , x1 ] p[ x1 , x1 , x1 ] p[ x0 , x1 , x1 ] x1 x0 4 3 1 1 1 1 2 2 2 2 2 6 6 6 p[ x0 , x1 , x1 , x1 ] p[ x0 , x0 , x1 , x1 ] x1 x0 3 1 2 4 3 1 7 4 7 1 4 p[ x0 , x1 ] p[ x0 , x0 ] x1 x0 p[ x0 , x0 , x1 , x1 ] p[ x0 , x0 , x1 , x1 , x1 ] 6 2 2 1 4 3 1 1 p ' ' (2) 2 4 2 1 2 1 1 ... p( x) 2 3( x 1) ( x 1) 2 2( x 1) 2 ( x 2) ( x 1) 2 ( x 2) 2