5. Aproksymacja Marian Bubak Department of Computer Science AGH University of Science and Technology Krakow, Poland bubak@agh.edu.pl dice.cyfronet.pl Contributors Paweł Urban Jakub Ptak Łukasz Janeczko
Outline 1 Aproksymacja 2 Aproksymacja średniokwadratowa 3 Aproksymacja jednostajna 4 Wielomiany Czebyszewa (Chebyshev Polynomials) 5 Wzór rekurencyjny Clenshawa
Aproksymacja Aproksymacja Aproksymacja: przybliżanie lub zastępowanie funkcji za pomocą innej funkcji jest ogólniejsza niż interpolacja
Aproksymacja Funkcja aproksymowana i aproksymująca F (x) - to funkcja aproksymowana i może być: znana podana jako tablica wartości eksperymentalnych (z błędami, ale wtedy interpolacja nie ma sensu) f (x) - to funkcja aproksymująca = przybliżenie F(x)
Aproksymacja średniokwadratowa Aproksymacja średniokwadratowa
Aproksymacja średniokwadratowa Postawienie problemu Dane: - (x i, y i = F (x i )), i = 0, 1,..., n, czyli mamy (n+1) węzłów - układ funkcji bazowych: ϕ j (x), j = 0, 1,..., m. Szukamy wielomianu uogólnionego: m f (x) = a j ϕ j (x) czyli {a j } m j=0, dla których: min! F (x) f (x) = min! j=0 n [ w(x i ) F (x i ) m ] 2 a j ϕ j (x i ) i=0 } j=0 {{ } } odchylenie {{ } H(a 0,a 1,...,a m) Pochodzenie nazwy: postać normy F (x) na [a, b]
Aproksymacja średniokwadratowa Przypadek ciągły Dla przypadku ciągłego minimalizujemy wartość całki: b min! w(x)[f (x) f (x)] 2 dx a aproksymacja średniokwadratowa funkcji ciągłych w(x) - funkcja wagowa, w(x) 0 ((jak dla iloczynu skalarnego)) Zwykle: w(x i ) 1 [błąd F (x i )] 2 lub w(x) = 1
Aproksymacja średniokwadratowa Współczynniki wielomianu uogólnionego Współczynniki {a j } znajdujemy z warunku: H a k = 0, k = 0, 1,..., m układ (m + 1) równań liniowych o (m + 1) niewiadomych H n [ = 2 w(x i ) F (x i ) a k i=0 Jest to układ normalny. m j=0 ] a j ϕ j (x i ) ϕ k (x i ) = 0; k = 0, 1,..., m
Aproksymacja średniokwadratowa Aproksymacja wielomianowa funkcje bazowe ciąg jednomianów ϕ j (x) = x j, j = 0, 1,..., m funkcje aproksymująca: f (x) = m j=0 a j ϕ j (x) = m j=0 a j x j F (x) - na zbiorze dyskretnym {x i }, i = 0, 1,..., n n min! w(x i )[F (x i ) f (x i )] 2 i=0 układ normalny: n [ m w(x i ) F (x i ) a j x j f k a i ]x k i = 0, k = 0, 1,..., m i=0 j=0 n m n w(x i )xi k a j x j i = w(x i )F (x i )xi k, k = 0, 1,..., m i=0 j=0 i=0 m ( n ) n w(x i )x j+k i a j = w(x i )F (x i )xi k j=0 } i=0 {{ } i=0 } {{ } g
Aproksymacja średniokwadratowa W postaci macierzowej: wi wi x i wi xi 2... wi xi m wi x i wi xi 2 wi xi 3... wi xi m+1..... wi xi m wi xi m+1 wi xi m+2... wi xi 2m wi F i wi F i x i =. wi F i xi m a 0 a 1. a m = G A = B
Aproksymacja średniokwadratowa Jeżeli: 1 x 0, x 1,..., x n - są różne 2 m n to detg 0 układ ma jedno rozwiązanie. Zadanie: Pokazać, że dla m = n - wiel. aproksymacyjny = interpolacyjny (H = 0)
Aproksymacja średniokwadratowa W praktyce m n (korzystamy z dużej ilości informacji) m - wysoki - by dobrze przybliżyć funkcję m - niski - by wygładzić błędy zwykle m 6
Aproksymacja średniokwadratowa Ortogonalność funkcji Definicja ortogonalności funkcji Funkcje f (x) i g(x) nazywamy ortogonalnymi na dyskretnym zbiorze punktów {x i, i = 0, 1,.., n}, jeżeli: n f (x i ) g(x i ) = 0, i=0 n [f (x i )] 2 > 0, i=0 n [g(x i )] 2 > 0 i=0
Aproksymacja średniokwadratowa Ortogonalność ciągów Definicja ortogonalności ciągów Ciągi funkcyjne {ϕ k (x)} nazywamy ortogonalnymi na dyskretnym zbiorze punktów {x i }, jeżeli: n ϕ j (x i )ϕ k (x i ) = i=0 ( ) - nie wszystkie x i to miejsca zerowe. { 0 j k > 0 j = k ( )
Aproksymacja średniokwadratowa Aproksymacja średniokwadratowa wielomianami ortogonalnymi Dla wielomianów ortogonalnych układ normalny: [ ] n m w(x i ) F (x i ) a j ϕ j (x i ) ϕ k (x i ) = 0, k = 0, 1,.., m i=0 j=0 }{{} n n m w(x i )F (x i )ϕ k (x i ) = w(x i )ϕ k (x i ) a j ϕ j (x i ) = i=0 i=0 j=0 m n n = a j w(x i )ϕ k (x i )ϕ j (x i ) = a k w(x i )ϕ 2 k(x i ) j=0 i=0 i=0
Aproksymacja średniokwadratowa macierz staje się diagonalna znika: złe uwarunkowanie konieczność ponowanego rozwiązywania układu normalnego przy zmianie stopnia wielomianu aproksymującego Najczęściej stosowane wielomiany ortogonalne: Czebyszewa T j (x) Legendre a P n (x) ( zwłaszcza dla w(x i ) = 1)
Aproksymacja średniokwadratowa Aproksymacja średniokwadratowa funkcjami sklejanymi Możliwa jest aproksymacja średniokwadratowa funkcjami sklejanymi. Przykład: https://pl.wikibooks.org/wiki/metody_ numeryczne_fizyki/aproksymacja
Aproksymacja średniokwadratowa Wielomiany Legendre a Określone wzorem P n (x) = 1 n! 2 n d n dx n [(x 2 1) n ], x [ 1, 1], n = 0, 1,... Spełniają wzór rekurencyjny (dla n 1): (2n + 1) x P n (x) = (n + 1)P n+1 (x) + n P n 1 (x) P 0 = 1 P 1 (x) = x P 2 (x) = 1 2 (3x 2 1) P 3 (x) = 1 2 (5x 3 3x) P 4 (x) = 1 8 (35x 4 30x 2 + 3). P n (1) = 1; P n (x) 1, x [ 1, 1]
Aproksymacja średniokwadratowa
Aproksymacja średniokwadratowa Zadanie: Pokazać, że P n ( x) = ( 1) n P n (x) Wielomiany Legendre a spełniają równania różniczkowe: [ d dx (1 x 2 ) dp n(x) dx ] + n(n + 1)P n (x) = 0 (wynik rozdzielania zmiennych w r. Laplace a we współrzędnych sferycznych) Ortogonalność: 1 1 { 0, m n P n (x)p m (x)dx = 2 2n+1, m = n Zadanie: Sprawdzić ortogonalność w przypadku dyskretnym.
Aproksymacja jednostajna Dla F (x) określonej na [a, b] szukamy f (x): min! F(x) f(x) = min! sup x [a,b] F (x) f (x) }{{} norma Czebyszewa
Aproksymacja jednostajna Twierdzenie Weierstrassa Jeżeli F (x) C 0 [a, b], to dla każdego ε > 0 można dobrać n(ε) takie, że istnieje W n (x) : F (x) W n (x) < ε Wniosek: F (x) można aproksymować jednostajnie wielomianami. Szukamy a i : W n (x) = n i=0 a i x i aby min!e n, E n = max x [a,b] F (x) W n (x)
Aproksymacja jednostajna Twierdzenie Borela Jeśli F (x) C 0 [a, b], n - naturalna, to istnieje W n (x) będący najlepszym przybliżeniem F (x). Twierdzenie Czebyszewa Wielomian W n (x) będący najlepszym przybliżeniem F (x) jest tylko jeden.
Aproksymacja jednostajna Metoda szeregów potęgowych - szereg Taylora W n (x) = n k=0 F (k) (x 0 ) (x x 0 ) k k! oszacowanie błędu aproksymacji reszta Lagrange a: F (x) W n (x) = F n+1 (η) (n + 1)! (x x 0) n+1, η [a, b]
Aproksymacja jednostajna Przybliżenia Padé ang. Padé approximation, rational function approximation Aproksymujemy funkcję F (x) za pomocą funkcji wymiernej r(x). Funkcja wymierna r(x) stopnia N = n + m ma postać: r(x) = p(x) q(x) = p 0 + p 1 x +... + p n x n q 0 + q 1 x +... + q m x m nieredukowalna (p, q - są względnie pierwsze - nie mają wspólnych dzielników) określona w x = 0 q 0 0, q 0 = 1 (zwykle) do określenia N + 1 = n + m + 1 współczynników
Aproksymacja jednostajna Technika aproksymacji Padé Jest to sposób określenia {p i, q j }, i = 0,.., n, j = 0,.., m przy zadanych n, m - możliwie najwięcej pochodnych F (x) i r(x) w x = 0 równych! F (x) r(x) = F (x) p(x) F (x) q(x) p(x) = q(x) q(x) Niech F (x) = i=0 a i x i szereg Maclaurina F (x) r(x) = i=0 a i x i m i=0 q i x i n i=0 p i x i q(x) Należy dobrać p 0, p 1,.., p n i q 1,.., q m tak, aby: F (k) (0) r (k) (0) = 0, k = 0, 1,.., N
Aproksymacja jednostajna Zadanie: Pokazać, że jest to równoważne z: (F r) ma w x = 0 pierwiastek N + 1 krotny. To znaczy, że licznik: (a 0 + a 1 x +..)(1 + q 1 x +.. + q m x m ) (p 0 + p 1 x +.. + p n x n ) nie powinien mieć wyrazów stopnia N. Dla uproszczenia zapisu: p n+1 = p n+2 =.. = p N = 0 i q m+1 = q m+2 =.. = q N = 0 Wtedy współczynniki: k i=0 a i q k i p k powinny być równe 0, a znalezienie p(x) i q(x) polega na rozwiązaniu układu równań liniowych: k a i q k i p k = 0; k = 0, 1,..., N i=0
Aproksymacja jednostajna Typowy przykład ( ) F (x) = [ 7+(1+x) 4 ] 1 3 3 2+ 1 9 x+ 1 81 x 2 49 8748 x 3 + 175 78732 x 4 +... Uwagi twierdzenie o zbieżności r(x) dod. zał. o F (x) { n = m w praktyce: N = n + m - ustalone: n = m + 1
Aproksymacja jednostajna
Wielomiany Czebyszewa (Chebyshev Polynomials) Reprezentacja trygonometryczna cos(nϕ) + cos[(n 2)ϕ] = 2 cos[(n 1)ϕ] cos ϕ cos(nϕ) = 2 cos[(n 1)ϕ] cos ϕ cos[(n 2)ϕ] Wiemy, że x [ 1, 1] ϕ [0, π] : cos ϕ = x Dla x [ 1, 1] podstawmy ϕ = arc cos x T n (x) = cos[n arc cos x]
Wielomiany Czebyszewa (Chebyshev Polynomials) Relacja rekurencyjna T 0 (x) = 1 T 1 (x) = x T 2 (x) = 2x 2 1 T 3 (x) = 4x 3 3 T 4 (x) = 8x 4 8x 2 + 1 T 5 (x) = 16x 5 20x 3 + 5x. T n (x) = 2xT n 1 (x) T n 2 (x), dla n 2 Czynnik wiodący Czynnik wiodący w T n (x) jest to czynnik przy najwyższej potędze x, czyli 2 n 1 (dla n 1)
Wielomiany Czebyszewa (Chebyshev Polynomials) Symetria T k ( x) = ( 1) k T k (x)
Wielomiany Czebyszewa (Chebyshev Polynomials) Miejsca zerowe T n (x) - węzły Czebyszewa T n (x) ma w [ 1, 1] n miejsc zerowych: x k = cos( 2k+1 n π 2 ), k = 0, 1,.., n 1 T n (x) = cos(n arc }{{ cos x} ) α cos(n α) = 0 dla n α = (2k + 1) π, k = 0, 1,.., n 1 2
Wielomiany Czebyszewa (Chebyshev Polynomials) Ortogonalność Przypadek ciągły 1 1 T i (x) T j (x) dx = 1 x 2 0 i j π 2 i = j 0 π i = j = 0 repr. tryg. Przypadek dyskretny x k - miejsca zerowe T m+1 (x) m 0 i j m+1 T i (x k )T j (x k ) = 2 i = j 0 k=0 m + 1 i = j = 0
Wielomiany Czebyszewa (Chebyshev Polynomials) Własność minimaksu wielomianów Czebyszewa Twierdzenie o normie T n (x) Ze wszystkich wielomianów stopnia n 1 z czynnikiem wiodącym równym 1 najmniejszą normę maksymalną w [ 1, 1] W n = max x [a,b] W n ma wielomian 2 1 n T n (x). Wynosi ona 2 1 n
Wielomiany Czebyszewa (Chebyshev Polynomials) Dowód (nie wprost) Załóżmy, że p n (x) o współczynniku wiodącym = 1 taki, że: x [ 1,1] p n (x) < 2 1 n wszystkie T n (1) = 1, x = 1 x 0 (punkt ekstremalny)
Wielomiany Czebyszewa (Chebyshev Polynomials) Odcięta punktu ekstremalnego T n (x), x k = cos kπ n, k = 0, 1,.., n Dla x k powinno zachodzić: p n (x 0 ) < 21 n T n (x 0 ), p n (x 1 ) > 21 n T n (x 1 ), p n (x 2 ) < 21 n T n (x 2 ),..., aż do x n czyli wielomian [p n (x) 2 1 n T n (x)] powinien zmieniać znak w każdym z przedziałów: (x k+1, x k ), k = n 1, n 2,.., 1, 0 }{{} n przedziałów n zer czyli powinien być wielomianem stopnia n w [ 1, 1], ale p n (x) i 2 1 n T n (x) mają ten sam współczynnik wiodący, Zatem ich różnica jest stopnia n 1 i mamy sprzeczność!!!
Wielomiany Czebyszewa (Chebyshev Polynomials) Interpolacja Czebyszewa (z węzłami T n+1 (x)) W n (x) - wielomian interpolacyjny stopnia n; W n (x) = f (x k ), k = 0, 1,.., n f (x) = W n (x) + E n (x); E n (x) = f (n+1) (c) (n + 1)! n (x x i ), c [x 0, x n ] i=0 } {{ } ω n Przez optymalny wybór rozmieszczenia węzłów x k zminimalizować max ω n (x) Rozwiązanie: Wprost z własności minimaksu T n+1 (x) jako x k wziąć węzły - zera T n+1 (x): x k = cos ( 2k + 1 n + 1 π ), k = 0, 1,.., n interpolacja Czebyszewa 2
Wielomiany Czebyszewa (Chebyshev Polynomials) Interpolujący wielomian Czebyszewa T n (x) zachowują się równomiernie w [ 1, 1]; min = -1, max = 1 - ważna własność Do utworzenia wielomianu interpolacyjnego używamy liniowej kombinacji: n W n (x) = c j T j (x) {c j } - z własności ortogonalności dla przypadku dyskretnego: x k = cos ( 2k + 1 n + 1 j=0 π ) zera T n+1 (x), k = 0, 1,.., n 2 n 0 i j T i (x k )T j (x k ) = n + 1 i = j = 0 k=0 n+1 2 i = j 0
Wielomiany Czebyszewa (Chebyshev Polynomials) Warunek interpolacji n f (x k ) = c j T j (x k ) T n i(x k )) j=0 k=0 n n n f (x k )T i (x k ) = c j T i (x k )T j (x k ) k=0 j=0 k=0 }{{} ortogonalność
Wielomiany Czebyszewa (Chebyshev Polynomials) Współczynniki c i c 0 = 1 n + 1 c i = 2 n + 1 n f (x k )T 0 (x) = 1 k=0 n Pozostaje nam wyliczenie sumy. k=0 f (x k )T i (x k )
Wielomiany Czebyszewa (Chebyshev Polynomials) - interpolacja z równoodległymi węzłami (11 węzłów) - interpolacja z węzłami Czebyszewa zera T 11 (x) Uwaga Transformacja przedziału x [a, b] t [ 1, 1] x = b a 2 t + a + b 2
Wielomiany Czebyszewa (Chebyshev Polynomials)
Wielomiany Czebyszewa (Chebyshev Polynomials)
Wielomiany Czebyszewa (Chebyshev Polynomials) Aproksymacja wielomianami Czebyszewa jednostajna: min!sup x [a,b] F (x) f (x) baza T i (x) wygodna, bo T i (x) - równomierne w [ 1, 1] F (x) zastępujemy sumą częściową: F (x) n c j T j (x) j=0 z c j wyznaczonymi z warunku ortogonalności w przypadku ciągłym 1 1 F (x) = c j T j (x) T i (x) 1 j=0 1 x 2 dx 1 F (x)t i (x)dx 1 x 2 1 1 c 0 = 1 π c i = 2 π Często - zamiast interpolacja T n+1 (x) F (x)t i (x)dx 1 x, i = 1,.., n 2
Wielomiany Czebyszewa (Chebyshev Polynomials) Tworzymy wyrażenia wymierne postaci: T n,k (x) = ni=0 a i T i (x) ki=0 b i T i (x) o a i, b i dobranych tak, by w liczniku wyrażenia F (x) T n,k (x) = [ j=0 c j T j (x) ] [ k i=0 b i T i (x) ] n i=0 a i T i (x) ki=0 b i T i (x) znikały współczynniki dla T i (x), i = 0, 1, 2,.., k + n
Wzór rekurencyjny Clenshawa Clenshaw s recurrence formula - elegancki i efektywny sposób sumowania wyrazów spełniających pewien wzór rekurencyjny: f (x) = N c k F k (x) k=0 przy czym F (x) - spełnia wzór rekurencyjny: F n+1 (x) = α(n, x) F n (x) + β(n, x) F n 1 (x) α(n, x), β(n, x) - pewne funkcje Określamy rekurencyjnie y k, k = N, N 1,.., 1 (downward order; k - decreasing) jako: y N+2 = y N+1 = 0, y k (x) = α(k, x) y k+1 + β(k + 1, x) y k+2 + c k stąd: c k = y k α(k, x) y k+1 β(k + 1, x) y k+2
Wzór rekurencyjny Clenshawa Po podstawieniu: f (x) = 0 [y k α(k, x)y k+1 β(k + 1, x)y k+2 ] F k (x) = k=n = [ y N 0 0 ]F N (x) +[ y N 1 α(n 1, x) y N 0 ]F N 1 (x)......... +[ y 8 α(8, x)y 9 β(9, x)y 10 ]F 8 (x) +[ y 7 α(7, x)y 8 β(8, x)y 9 ]F 7 (x) +[ y 6 α(6, x)y 7 β(7, x)y 8 ]F 6 (x) +[ y 5 α(5, x)y 6 β(6, x)y 7 ]F 5 (x)......... +[ y 2 α(2, x)y 3 β(3, x)y 4 ]F 2 (x) +[ y 1 α(1, x)y 2 β(2, x)y 3 ]F 1 (x) +[ y 0 α(0, x)y 1 β(1, x)y 2 ]F 0 (x) =
Wzór rekurencyjny Clenshawa = β(1, x 0 ) y 2 F 0 (x) + F 1 (x) y 1 (x) + F 0 (x) c 0 wyznaczanie f (x) = N k=0 c k F k (x) dla F k (x): F n+1 (x) = α(n, x) F n (x) + β(n, x) F n 1 (x) sprowadza się do: 1 wyznaczenia y 1 i y 2 z formuły rekurencyjnej: { yn+2 = y N+1 = 0 y k (x) = α(k, x) y k+1 + β(k + 1, x) y k+2 + c k 2 obliczenia sumy f (x) = β(1, x) y 2 (x) F 0 (x) + y 1 (x) F 1 (x) + c 0 F 0 (x)
Wzór rekurencyjny Clenshawa Istota wzoru Na każdym etapie działanie wszystkich poprzednich c k 2 współczynniki, przez które mnoży się F k+1, F k ( na końcu: F 1 i F 0 ). Jeżeli: F k (x) c k } małe dla dużych k małe dla dużych k suma określona będzie przez małef k (x) pamiętane współczynniki = rezultat delicate cancelation wykrywanie: β(1, x) y 2 F 0, y 1 F 1 - przeciwnych znaków i prawie równe
Wzór rekurencyjny Clenshawa Wtedy stosować Clenshaw s recurrence in upward direction: y k = y 2 = y 1 = 0 1 β(k + 1, x) [y k 2 α(k, x)y k 1 c k ], k = 0, 1.., N 1 f (x) = c N F N (x) β(b, x)f N 1 (x)y N 1 F N (x)y N 2 Zadanie: Sprawdzić wzory Clenshaw a dla T n (x) i P n (x).