Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko
Wprowadzenie Na czym polega interpolacja? Interpolacja polega na budowaniu tzw. funkcji interpolujących ϕ(x) na podstawie zadanych wartości f (x) zapamiętanych w postaci dyskretnej. Postać dyskretną tworzą dwa zbiory liczbowe: X = {x 0, x 1,..., x n } które nazywamy węzłami interpolacji, oraz wartości pewnej funkcji interpolowanej: gdzie dla wygody zapisu f i f (x i ). F = {f 0, f 1,..., f n }
Wprowadzenie Warunki interpolacji f f (x) ϕ(x) x 0 x 1 x 2 x 3 x i x n x Obie funkcje: interpolowana f (x) i interpolująca ϕ(x) na zbiorze węzłów X mają dokładnie takie same wartości liczbowe. Są zatem spełnione warunki ϕ(x i ) = f (x i ), i = 0, 1,..., n na podstawie których konstruuje się funkcję interpolującą ϕ(x i ).
Wprowadzenie Postać ogólna wielomianu interpolacyjnego Funkcja ϕ(x i ) w przypadku ogólnym jest przedstawiana najczęściej w postaci wielomianu uogólnionego, utworzonego z odpowiednio dobranych tzw. funkcji bazowych φ i (x), i = 0, 1,..., n. ϕ(x) = a o φ 0 (x) + a 1 φ 1 (x) +... a n φ n (x) = gdzie wprowadzono oznaczenia: Φ(x) = [φ 0 (x), φ 1 (x),..., φ n (x)] baza interpolacyjna n a i φ i (x) = Φ(x) a, a = [a 0, a 1,..., a n ] T wektor współczynników (mnożników) i=0 funkcji ϕ(x) względem bazy Φ(x).
Wprowadzenie Sformułowanie zagadnienia interpolacji funkcji jednej zmiennej Każda baza Φ(x) ma spełniać podstawowy warunek: funkcje φ i (x), i = 0, 1,..., n muszą być liniowo niezależne, czyli gdy żadnej z nich nie da się przedstawić w postaci i 1 φ i (x) = a k φ k (x) + k=1 n k=i+1 a k φ k (x), i = 1, 2,..., n. W celu utworzenia konkretnej funkcji interpolującej ϕ(x), należy: przyjąć odpowiednią bazę Φ(x) wyznaczyć wartości liczbowe wszystkich jej współczynników a i, i = 0, 1,..., n sformułować wielomian ϕ(x i )
Wprowadzenie Sformułowanie zagadnienia interpolacji funkcji jednej zmiennej układ równań Wielomian ma postać: ϕ(x i ) = Φ(x i ) a = f i, i = 0, 1,..., n lub U a = f. (1) Po wprowadzeniu oznaczenia u ij = φ i (x j ), i, j = 0, 1, 2,..., n otrzymujemy: u 00 u 10 u n0 a 0 f 0 u 01 u 11 u n1 U =......, a = a 1., f = f 1 (2). u 0n u 1n u nn a n f n Ponieważ baza Φ(x) utworzona jest z funkcji liniowo niezależnych to: det(u) 0 Układ równań (1) ma jednoznaczne rozwiązanie: a = U 1 f. (3)
Wprowadzenie Bazy interpolacji Najczęściej stosowanymi, a zarazem najprostszymi bazami interpolacji są: a) baza jednomianowa, dla ciągłych funkcji na skończonym odcinku [a, b] Φ(x) = [ 1, x, x 2, x 3,..., x n ], b) baza trygonometryczna dla okresowych funkcji f (x) na odcinku [ π, π]. Φ(x) = [ 1/ 2, sin x, cos x,..., sin nx, cos nx ], Nie każda baza interpolacyjna nadaje się równie dobrze do rozwiązywania konkretnych zadań. Dlatego staje się niezbędne dostosowanie bazy do specyfiki rozwiązywanego problemu.
Wprowadzenie Przykład Zbudować uogólniony wielomian interpolacyjny o postaci ϕ(x) = a 0 + a 1 x + a 2 cos x + a 3 sin x a) Węzły interpolacji X = {x 0, x 1, x 2, x 3 } = {0, 1.5, 3, 4} b) Wartosci funkcji F = {f 0, f 1, f 2, f 3 } = {2, 3, 1, 3} c) Baza interpolacyjna Φ(x) = [1, x, cos x, sin x], Rozwiązanie Budujemy macierz U: U = 1 x 0 cos x 0 sin x 0 1 x 1 cos x 1 sin x 1 1 x 2 cos x 2 sin x 2 1 x 3 cos x 3 sin x 3 = 1 0.0 1.00000 0.00000 1 1.5 0.07074 0.99749 1 3.0 0.98999 0.14112 1 4.0 0.65364 0.75680
Wprowadzenie Przykład (c.d.) Otrzymujemy układ równania U a = f, którego rozwiązanie pozwala zapisać poszukiwany wielomian w postaci: 1.6210 ϕ(x) = Φ(x) a = [1, x, cos x, sin x] 2.0046 3.6210 1.3615
Interpolacja wielomianowa (algebraiczna) Interpolacja wielomianowa (algebraiczna) 1 Ten typ interpolacji ma ograniczone zastosowanie, zwłaszcza gdy zachodzi konieczność posługiwania się wielomianami n > 10. W tym przypadku algorytm metody staje się niestabilny i wrażliwy na błędy zaokragleń. 2 Dla wielomianów stopni n > 10 w obliczeniach pojawia tzw. efekt (zjawisko) Rungego, polegający na tym, że wielomian interpolacyjny przybliża funkcję interpolowaną w sposób niejednostajny. Wielomian ten wykazuje oscylacje względem funkcji f (x) w pobliżu jego końców osiagając tym większe wartości im wyższy jest stopień n wielomianu.
Interpolacja wielomianowa (algebraiczna) Interpolacja wielomianowa Baza jednomianowa Przyjmujemy bazę jednomianową Φ(x) = [ 1, x, x 2, x 3,..., x n ], i budujemy wielomianową funkcję interpolującą ϕ(x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 +... + a n x n (4) Układ równań Ua = f przyjmuje teraz postać: 1 x 0 x0 2 x0 3 x0 n a 0 1 x 1 x1 2 x1 3 x1 n a 1......... = 1 x n xn 2 xn 3 xn n a n z którego w sposób jednoznaczny można obliczyć współczynniki a wielomianu (4). f 0 f 1. f n,
Interpolacja wielomianowa (algebraiczna) Przejście do bazy Lagrange a Stosowanie wzorów: a = U 1 f ϕ(x) = Φ(x) a = Φ(x) U 1 f = N(x) f, w celu zbudowania nowej bazy: N(x) Φ(x) U 1 = [ L 0 (x), L 1 (x),..., L n (x) ] w przypadku ogólnym jest niewygodne ze względu na dużą złożoność obliczeń. Dlatego też elementy tej bazy nazywanej bazą Lagrange a zostaną wygenerowane w inny sposób.
Interpolacja Lagrange a Interpolacja Lagrange a Przyjmujemy zatem następującą postać funkcji interpolującej stopnia n. Funkcja ta to wielomian interpolacyjny Lagrange a Jeżeli założymy, że N(x) L n (x) = f 0 L n 0(x) + f 1 L n 1(x) +... + f n L n n(x). (5) to na podstawie (5) otrzymamy f = [ 0, 0,..., 1 i,..., 0, 0, ] T, (6) L n (x) L n i (x). (7) czyli w szczególnym przypadku funkcja interpolująca L n (x) jest identyczna z bazową L n i (x) i musi zgodnie z (6): a) zerować się we wszystkich węzłach x j dla których j i, b) przyjmować wartość jednostkową w węźle x i, czyli { L n δ ij = 1, gdy i = j, i (x j ) = δ ij, δ ij = 0, gdy i j.
Interpolacja Lagrange a Interpolacja Lagrange a Z powyższego wynika, że funkcja bazowa L n i (x) musi mieć postać: L n i (x j ) = C i (x x 0 ) (x x 1 )... (x x i 1 ) (x x i+1 )... (x x n ). (8) Ponieważ w węźle x i wielomian ten przyjmuje wartość równą 1 otrzymujemy C i (x i x 0 ) (x i x 1 )... (x i x i 1 ) (x i x i+1 )... (x i x n ) = 1. Stąd otrzymujemy 1 C i = (x i x 0 ) (x i x 1 )... (x i x i 1 ) (x i x i+1 )... (x i x n ). (9) Po podstawieniu do (8) i- ta funkcja bazowa Lagrange a ma postać L n i = (x x 0) (x x 1 )... (x x i 1 ) (x x i+1 )... (x x n ) (x i x 0 ) (x i x 1 )... (x i x i 1 ) (x i x i+1 )... (x i x n ) L n i = j=n j=0, j i x x j x i x j. (10)
Interpolacja Lagrange a Przykład 1 Interpolacja Lagrange a Zbudować wielomian interpolacyjny Lagrange a stopnia n = 2. a) Węzły interpolacji: X = {x 0, x 1, x 2 } b) Wartosci funkcji: F = {f 0, f 1, f 2 } c) Baza interpolacyjna: Φ(x) = [1, x, x 2 ] d) Wielomian interpolacyjny: ϕ(x) = a 0 + a 1 x + a 2 x 2 e) Baza Lagrange a: L 2 (x) = Φ(x) U 1 = [L 2 0 (x), L2 1 (x), L2 2 (x)] L 2 i (x) = j=2 j=0 j i f) Wielomian interpolacyjny: x x i x i x j : L 2 0(x) = (x x 1)(x x 2 ) (x 0 x 1 )(x 0 x 2 ), L 2 1(x) = (x x 0)(x x 2 ) (x 1 x 0 )(x 1 x 2 ), L 2 2(x) = (x x 0)(x x 1 ) (x 2 x 0 )(x 2 x 1 ). ϕ(x) = L 2 (x) f = f 0 L 2 0 (x) + f 1L 2 1 (x) + f 2L 2 2 (x).
Interpolacja Lagrange a Przykład 1 (c.d.) Interpolacja Lagrange a Wielomiany bazowe Lagrange a L 2 0 (x), L2 1 (x), L2 2 (x) wyznaczone dla x = {x 0, x 1, x 2 } = { 1, 2, 3} F = {f 0, f 1, f 2 } = {1, 4, 9 } oraz wielomian interpolacyjny Lagrange a ϕ(x) = 1 x 2 10 8 Warto zauważyć, że dla dowolnego x zachodzi: 6 4 2 L 2 1(x) ϕ(x) n L 2 i (x) = 1. i=1 0 L 2 2(x) L 2 0(x) 2 2 1 0 1 2 3 4 W wielomianie interpolacyjnym ϕ(x) = L 2 (x) f = f 0 L 2 0 (x) + f 1L 2 1 (x) + f 2L 2 2 (x) każdy z wielomianów bazowych L i ma udział z wagą f i.
Interpolacja Lagrange a Przykład 2 Interpolacja Lagrange a Dla funkcji f (x) = x, w przedziale < 1, 1 > znaleźć wielomiany interpolacyjne Lagrange a stopnia n = 2, 4, 10. Rozwiązanie: 1 dla n = 2, X = { 1, 0, 1} : ϕ 2 (x) = x 2 2 dla n = 4, X = { 1, 0.5, 0.0, 0.5, 1.0} : ϕ 4 (x) = 4 3 x 4 + 7 3 x 2 3 dla n = 10, X = { 1, 0.8, 0.6,..., 0.6, 0.8, 1} : ϕ 10 (x) = 75.352x 10 167.93x 8 + 128.40x 6 41.281x 4 + 6.4563x 2
Wprowadzenie Aproksymacja funkcji Zasadnicza różnica pomiędzy interpolacją a aproksymacją Aproksymacja różni się od interpolacji funkcji tym, że dla wyznaczania współczynników wielomianu aproksymacyjnego (nie interpolacyjnego!) nie korzysta się z warunków ϕ i (x) = f i. Oznacza to, że wielomian aproksymacyjny na zbiorze X nie musi przyjmować wartości funkcji aproksymowanej.
Wprowadzenie Aproksymacja optymalna Stopień wielomianu aproksymacyjnego nie ma związku z liczbą elementów zbioru X, a wyznaczanie niewiadomych a i musi być realizowane inną metodą. Wybór tego sposobu decyduje o własnościach stosowanej aproksymacji, która w pewnym określonym sensie powinna być najlepsza (optymalna). Rozwiązanie problemu aproksymacji optymalnej wymaga: przyjęcia odpowiedniej bazy funkcyjnej ustalenia kryterium oceny jakości aproksymacji, które służy do jednoznacznego określenia wartości a i. Można stwierdzić, że aproksymacja funkcji f (x) za pomocą funkcji ϕ(x) jest tym lepsza, im te dwie funkcje mniej różnią się od siebie.
Wprowadzenie Kryterium jakości aproksymacji Jeśli funkcja f (x) określona jest tylko za pomocą skończonego zbioru jej rzędnych to wartości różnicy f (x) ϕ(x) mogą być obliczone tylko na zbiorze X i wynoszą f (x i ) ϕ(x i ), i = 1, 2,..., n. Najprostsza postać kryterium oceniającego jakość aproksymacji jest następująca n min R = min [f (x i ) ϕ(x i )] 2 (11) i=0 Wartość funkcji R jest pewną miarą odchylenia funkcji aproksymującej ϕ(x) od aproksymowanej f (x). Ten sposób postępowania nosi nazwę metody najmniejszych kwadratów.
Aproksymacja wielomianami algebraicznymi Aproksymacja wielomianami algebraicznymi Wielomian aproksymacyjny stopnia m = 1, 2,..., n ma postać: ϕ(x) = a 0 + a 1 x + a 2 x 2 +... + a m x m = m a k x k (12) W przypadku gdy m = n mamy do czynienia z interpolacją, dla której R = 0. Gdy m < n, wówczas R > 0 i odchylenie ϕ(x) od f (x) jest najmniejsze gdy R osiąga wartość minimalną. k=0 Obliczenie wartości a i polega na wykorzystaniu warunków stacjonarności funkcji R: R = 0, k = 0, 1, 2,..., m. (13) a k
Aproksymacja wielomianami algebraicznymi Warunki stacjonarności dla aproksymacji wielomianami Metoda najmniejszych kwadratów Warunków tych jest m + 1, a więc tyle ile niewiadomych współczynników a i ma wielomian aproksymujący. Obliczając pochodne cząstkowe funkcji R otrzymujemy 2 R a k = { n } [f (x i ) ϕ(x i )] 2 = a k i=0 n [f (x i ) ϕ(x i )] ϕ(x i ) = 0, dla k = 0, 1,..., m (14) a k i=0 Gdy podstawimy n i=0 a k ϕ(x i ) = x k i, to: [ Φ(xi ) a f (x i ) ] x k i = n { [ x k i=0 i x k+1 i n i=0 [ Φ(xi ) x k i a f (x i ) x k i ] =... x k+m ] } i a fi xi k = 0, k = 0, 1,..., m.
Aproksymacja wielomianami algebraicznymi Układ równań dla aproksymacji wielomianami Wprowadzając oznaczenia otrzymujemy ostatecznie s k = n i=0 x k i, t k = n i=0 f i x k i (15) [s k, s k+1,..., s k+m ] a = t k, k = 0, 1, 2,..., m (16) lub S a = t (17) gdzie: S = s 0 s 1 s 2 s m s 1 s 2 s 3 s m+1 s 2 s 3 s 4 s m+2............. s m s m+1 s m+2 s 2m, a = a 0 a 1 a 2 a m, t = t 0 t 1 t 2 t m.
Aproksymacja wielomianami algebraicznymi Przykład Zbudować wielomian aproksymacyjny stopnia m = 1 dla funkcji: i 0 1 2 3 x π/2 π/3 π/3 π/2 f 3 10 20 3 Rozwiązanie: a) Wielomian aproksymacyjny a postać ϕ(x) = a 0 + a 1 x b) Funkcja R: R = n i=0 (a 0 + a 1 x i f i ) 2 c) Układ równań S a = t ma postać: [ n n + 1 i=0 x ] [ ] i n i=0 x a0 n i i=0 x i 2 a 1 d) Po podstawieniu danych: [ 4 0 0 7.128 ] [ a0 a 1 ] = [ = [ n i=0 f ] i n i=0 f. (18) i x i 10 40.841 ]. (19) e) Rozwiązanie układu równań (19): a 0 = 2.5, a 1 = 5.7296. f) Wielomian aproksymacyjny ma postać: ϕ(x) = 2.5 + 5.7296 x.
Aproksymacja wielomianami algebraicznymi Przykład (c.d.) 20 15 10 5 0 ϕ(x) = 2.5 + 5.7296 x 5 10 2 1.5 1 0.5 0 0.5 1 1.5 2
Aproksymacja wielomianami uogólnionymi Aproksymacja wielomianami uogólnionymi Załóżmy, że φ i (x), i = 0, 1,..., m jest układem funkcji bazowych. Poszukujemy wielomianu uogólnionego ϕ(x), będącego najlepszym przybliżeniem średniokwadratowym funkcji f (x) na zbiorze X, tj. funkcji: ϕ(x) = a 0 φ 0 (x) + a 1 φ 1 (x) +... + a m φ m (x) = Współczynniki a k są tak określone aby wyrażenie było minimalne. R = m a k φ k (x). (20) k=0 n f (x i ) ϕ(x i ) 2. (21) i=0
Aproksymacja wielomianami uogólnionymi Warunki stacjonarności dla aproksymacji Metoda najmniejszych kwadratów Oznaczmy: Z warunków: R = n [ m 2 f (x i ) a k φ k (x i )]. (22) i=0 k=0 R a j = 0, j = 0, 1,..., m, (23) otrzymamy układ m + 1 równań liniowych z m + 1 niewiadomymi a j : R a j = n [ m f (x i ) i=0 k=0 ] a k φ k (x i ) φ j (x i ) = 0, j = 0, 1,..., m. (24)
Aproksymacja wielomianami uogólnionymi Układ równań dla aproksymacji W zapisie macierzowym układ (24) przyjmuje postać: gdzie D = φ 0 (x 0 ) φ 1 (x 0 )... φ m (x 0 ) φ 0 (x 1 ) φ 1 (x 1 )... φ m (x 1 ) φ 0 (x 2 ) φ 1 (x 2 )... φ m (x 2 )............ φ 0 (x n ) φ 1 (x 0 )... φ m (x n ) D T D a = D T f (25), a = a 0 a 1 a 2... a m, y = Macierz współczynników układu (25) jest macierzą symetryczną i dodatnio określoną co zapewnia jednoznaczność rozwiązania. f (x 0 ) f (x 1 ) f (x 2 )... f (x n ).
Aproksymacja wielomianami uogólnionymi Przykład Dana jest funkcja o stabelaryzowanych rzędnych: i 0 1 2 3 x π/2 π/3 π/3 π/2 f 3 10 20 3 Znaleźć równanie krzywej najlepiej aproksymującej daną funkcję w sensie najmniejszych kwadratów. Przyjąć funkcje bazowe: φ 0 (x) = 3x π, φ 1(x) = cos(x). Obliczyć wartość funkcji aproksymującej w punkcie x 0 (x) = π/4.
Aproksymacja wielomianami uogólnionymi Przykład (c.d.) Rozwiązanie: Funkcja aproksymująca: ϕ(x) = a 0 φ 0 (x) + a 1 φ 1 (x) Korzystając z definicji błędu aproksymacji: 1 ε = [f i ϕ(x i )] 2 i=0 i warunków najlepszej aproksymacji ε a 0 = 0, ε a 1 = 0 otrzymujemy układ równań: D T Da = D T f
Aproksymacja wielomianami uogólnionymi Przykład (c.d.) gdzie D = φ 0 (x 0 ) φ 1 (x 0 ) φ 0 (x 1 ) φ 1 (x 1 ) φ 0 (x 2 ) φ 1 (x 2 ) φ 0 (x 3 ) φ 1 (x 3 ) D T Da = D T f a = [ a0 a 1 Po wymnożeniu otrzymujemy układ równań: [ ] [ ] [ 13/2 0 a0 39 = 0 1/2 a 1 5 Po jego rozwiązaniu mamy: a 0 = 6, a 1 = 10. Wielomian aproksymacyjny ma postać: ϕ(x) = 6φ 0 (x) + 10 φ 1 (x). ] f = ]. f 0 f 1 f 2 f 3.
Aproksymacja wielomianami uogólnionymi Przykład (c.d.) Wartość funkcji aproksymowanej w punkcie π/4: ϕ(π/4) = 6 φ 0 (π/4) + 10 φ 1 (π/4). 20 15 10 5 0 ϕ(x) = 6φ 0 (x) + 10φ 1 (x) ϕ(x) = 2.5 + 5.7296x 5 10 2 1.5 1 0.5 0 0.5 1 1.5 2