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