aproksymacja
Transkrypt
aproksymacja
Aproksymacja 1 APROKSYMACJA 1. Wstęp Aproksymacja jest to przybliŜanie funkcji f (x ) zwanej funkcją aproksymowaną inną funkcją Q (x ) zwaną funkcją aproksymującą. Aproksymacja bardzo często występuje w dwóch przypadkach: gdy funkcja aproksymowana jest przedstawiona w postaci tablicy wartości i poszukujemy dla niej odpowiedniej funkcji ciągłej lub gdy funkcję o dosyć skomplikowanym zapisie analitycznym chcemy przedstawić w „prostszej” postaci. Dokonując aproksymacji funkcji f (x ) musimy rozwiązać dwa waŜne problemy. A. Dobór odpowiedniej funkcji aproksymującej Q (x ) . Najczęściej będzie to tzw. wielomian uogólniony będący kombinacją liniową funkcji bazowych q j (x ) m Qm ( x ) = ∑ a j q j ( x ) . [1] j =0 B. Jako funkcje bazowe stosowane są: • jednomiany 1, x, x 2 ,..., x m , • funkcje trygonometryczne 1, sin x, cos x, sin 2 x, cos 2 x,..., sin mx, cos mx , • wielomiany ortogonalne. Przyjęcie odpowiednich funkcji bazowych powoduje, Ŝe aby wyznaczyć funkcję aproksymującą naleŜy wyznaczyć wartości współczynników a 0 , a1 ,..., a m . Określenie dokładności dokonanej aproksymacji. Aproksymacja funkcji powoduje powstanie błędów i sposób ich oszacowania wpływa na wybór metody aproksymacji. Jeśli błąd będzie mierzony na dyskretnym zbiorze punktów x 0 , x1 ,..., x n to jest to aproksymacja punktowa, a jeśli będzie mierzony w przedziale 〈 a , b〉 to jest to aproksymacja integralna lub przedziałowa. Najczęściej stosowanymi miarami błędów aproksymacji są: • dla aproksymacji średniokwadratowej punktowej n S = ∑{ f ( xi ) − Q ( xi )}2 i =0 • dla aproksymacji średniokwadratowej integralnej lub przedziałowej b S = ∫ { f ( x ) − Q ( x )}2 dx a • dla aproksymacji jednostajnej S = sup f ( x ) − Q ( x ) . x∈〈 a ,b 〉 We wszystkich tych przypadkach zadanie aproksymacji sprowadza się do takiego optymalnego doboru funkcji aproksymującej (dla wielomianów uogólnionych zaś do optymalnego doboru współczynników a 0 , a1 ,..., a m ) aby zdefiniowane wyŜej błędy były minimalne. Aproksymacja 2 2. Aproksymacja średniokwadratowa punktowa wielomianowa Sformułowanie problemu Dane są punkty x 0 , x1 ,..., x n parami róŜne czyli xi ≠ x j ⇔ i ≠ j oraz dane są wartości funkcji aproksymowanej w tych punktach f o , f 1 ,..., f n gdzie f i = f ( xi ) i = 0,1,..., n . Zadaniem aproksymacji jest znaleźć wartości współczynników a 0 , a1 ,..., a m wielomianu Qm (x ) stopnia m-tego o postaci m Qm ( x ) = ∑ a j x j [2] j =0 aby błąd średniokwadratowy był najmniejszy czyli n m i =0 j =0 min S = ∑ ( f i − ∑ a j xij ) 2 . a 0 ,a1 ,...,am [3] ZauwaŜmy, Ŝe błąd średniokwadratowy jest funkcją współczynników a 0 , a1 ,..., a m a więc z warunku koniecznego na ekstremum funkcji wielu zmiennych ∂S =0 j = 0,1,..., m [4] ∂a j otrzymamy układ m + 1 równań liniowych o m + 1 niewiadomych współczynnikach a 0 , a1 ,..., a m , który moŜna zapisać w postaci sumy m ∑g j =0 kj a j = rk n gdzie g k j = ∑ xik + j i =0 k = 0,1,..., m [5] n rk = ∑ f i xik . [6] i =0 Zadanie aproksymacji średniokwadratowej punktowej sprowadza się do rozwiązania m + 1 równań o m + 1 niewiadomych. RozwaŜmy jeszcze problem doboru liczby punktów n + 1 i stopnia wielomianu m . Jeśli n=m to mamy funkcję aproksymowaną określoną w n + 1 punktach i poszukujemy wielomianu aproksymującego stopnia n . Jest to więc interpolacja i wtedy f ( xi ) = Qn ( xi ) czyli błąd średniokwadratowy S = 0 . Natomiast jeśli n > m , to oznacza to, Ŝe mamy więcej punktów niŜ wynosi stopień wielomianu aproksymującego. W tej sytuacji wielomian aproksymujący nie będzie wiernie odtwarzał wszystkich punktów funkcji aproksymowanej. W sytuacji gdy np. punkty pomiarowe obarczone są błędami, aproksymacja dokonuje „wygładzenia” danych empirycznych. 3. Aproksymacja za pomocą wielomianów ortogonalnych Definicja 1. Wielomiany są ortogonalne na zbiorze punktów x 0 , x1 ,..., x n jeśli spełniają warunek n j≠k 0 Pj ( xi ) Pk ( xi ) = [7] ∑ i =0 const j = k gdzie j i k określają stopień wielomianu. Aproksymacja 3 Zastosowanie wielomianów ortogonalnych do aproksymacji znacznie upraszcza obliczenia wyznaczające funkcję aproksymującą. Nie trzeba wtedy rozwiązywać układu równań poniewaŜ macierz współczynników jest macierzą diagonalną. Niech wielomian uogólniony będzie kombinacją liniową wielomianów ortogonalnych (n) Pj ( x ) ( j określa stopień wielomianu, n związane jest z liczbą punktów a jest ich dokładnie n+1) m Qm ( x ) = ∑ a j Pj( n ) ( x ) . [8] j =0 Współczynniki wielomianu uogólnionego znajdujemy wg wzoru n aj = ∑fP i =0 n (n) j i ∑(P i =0 ( xi ) . (n) j ( xi )) [9] 2 Jeśli punkty są równoodległe xi = x0 + ih i = 0,1,...n to przekształcenie liniowe x − x0 q= h przekształci je w liczby całkowite 0,1,...,n. Wielomianami ortogonalnymi na zbiorze punktów 0,1,...,n są wielomiany Grama zdefiniowane k k k + s q[ s] Pk( n ) ( q ) = ∑ ( −1) s [ s ] [10] s =0 s s n k k! gdzie symbol r [ s ] oznacza iloczyn r [ s ] = r ( r − 1)Λ ( r − s + 1) , zaś = jest s s!(k − s )! symbolem Newtona. NiŜej przedstawiono wielomiany Grama stopnia 0,1,2,3 i 4. P0( n ) ( q ) = 1 q P1( n ) ( q ) = 1 − 2 n q q( q − 1) P2( n ) ( q) = 1 − 6 + 6 n n ( n − 1) q q( q − 1) q( q − 1)( q − 2) P3( n ) ( q ) = 1 − 12 + 30 − 20 n n ( n − 1) n ( n − 1)( n − 2) q q( q − 1) q( q − 1)( q − 2) q( q − 1)( q − 2)( q − 3) P4( n ) ( q ) = 1 − 20 + 90 − 140 + 70 n n (n − 1) n ( n − 1)( n − 2) n ( n − 1)( n − 2)( n − 3) Funkcja aproksymująca zbudowana na wielomianach Grama ma postać m c cj x − x0 j Fm ( x ) = ∑ Pj( n ) ( q) = ∑ Pj( n ) sj h j =0 s j n gdzie m<n i s j = ∑ ( Pj( n ) ( q)) 2 , q =0 [11] n c j = ∑ f q Pj( n ) ( q) . [12] q =0 4. Wygładzanie funkcji Optymalny wielomian w sensie aproksymacji średniokwadratowej powinien posiadać dwie własności: Aproksymacja 4 a) b) mieć stopień na tyle wysoki by dobrze przybliŜać prawdziwą funkcję, nie być ściśle dopasowanym do danych empirycznych, czyli nie powinien odzwierciedlać zakłóceń lub niedokładności pomiarów. Jeśli przybliŜenie średniokwadratowe posiada te dwie własności, to mówimy Ŝe „wygładza” (wyrównuje) dane pomiarowe w tym sensie, Ŝe zachowuje informacje o funkcji mierzonej ale równieŜ eliminuje zakłócenia. Aproksymacji średniokwadratowej uŜywa się powszechnie do konstrukcji wygładzonych wartości funkcji. Te wygładzone wartości funkcji zaleŜą od stopnia wielomianu wygładzającego oraz od liczby punktów pomiarowych. Nie zawsze do konstrukcji wielomianu wygładzającego muszą być uŜyte wszystkie punkty pomiarowe. MoŜna budować kilka wielomianów (na ogół niŜszego stopnia) wykorzystując do konstrukcji kaŜdego z nich część danych. NiŜej zostaną przedstawione algorytmy wyznaczające wygładzone wartości funkcji za pomocą róŜnych wielomianów i róŜnej liczby punktów pomiarowych. Algorytm SE13 wygładzania w oparciu o wielomian stopnia 1 i 3 punkty pomiarowe Algorytm ten wyznacza wektor Z=[ z 0 , z1 ,..., z n −1 , z n ] wartości wygładzonej funkcji dla zadanego wektora X=[ x 0 , x1 ,..., x n −1 , x n ] wartości argumentów funkcji i wektora Y=[ y 0 , y1 ,..., y n −1 , y n ] pomierzonych wartości funkcji odpowiadających argumentom wektora X. Zakłada się, Ŝe argumenty funkcji są równoodległe tzn. xi +1 − xi = h i = 0,1,..., n − 1 . Z wyjątkiem punktów z 0 , z n kaŜdą wartość zi otrzymuje się obliczając w punkcie xi wartość wielomianu aproksymującego stopnia pierwszego stosując do tego aproksymację średniokwadratową punktową w oparciu o 3 punkty ( xi + k , y i + k ) k = −1,0,1. KaŜdą wartości z 0 , z n wyznacza się podobnie, w oparciu o 3 punkty: odpowiednio ( x0 , y 0 ) , ( x1 , y1 ) , ( x 2 , y 2 ) i ( x n − 2 , y n − 2 ) , ( x n −1 , y n −1 ) , ( x n , y n ) . Dla punktów ( xi + k , yi + k ) k = −1,0,1 wielomian aproksymujący ma postać Qi ( x ) = mi x + bi i aby obliczyć parametry mi , bi naleŜy zminimalizować funkcję S (mi , bi ) = 1 ∑ (m x k = −1 i i+k + bi − yi+ k ) 2 . Wartości mi , bi wyznacza się z warunków ∂S ∂S = = 0. ∂mi ∂bi Ostatecznie wygładzone wartości zi są 5 y + 2 y1 − y 2 z 0 = w1 ( x0 ) = 0 6 y + y i + y i +1 zi = wi ( xi ) = i −1 i = 1,2,..., n − 1 3 5 y + 2 y n −1 − y n − 2 z n = wn −1 ( x n ) = n . 6 Aproksymacja 5 Algorytm SE15 wygładzania w oparciu o wielomian stopnia 1 i 5 punktów pomiarowych Algorytm ten wyznacza wektor Z=[ z 0 , z1 ,..., z n −1 , z n ] wartości wygładzonej funkcji dla zadanego wektora Y=[ y 0 , y1 ,..., y n −1 , y n ] pomierzonych wartości funkcji i równoodległych argumentów funkcji. Wartości zi otrzymuje się obliczając w punkcie xi wartość wielomianu aproksymującego stopnia pierwszego stosując do tego aproksymację średniokwadratową punktową w oparciu o 5 punktów ( xi + k , yi + k ) k = −2,−1, 0, 1, 2. Sposób rozwiązania jest podobny jak dla algorytmu z 3 punktami. Ostatecznie wygładzone wartości zi są 3 y + 2 y1 + y 2 − y 4 z 0 = w2 ( x 0 ) = 0 5 4 y 0 + 3 y1 + 2 y 2 + y 3 z1 = w2 ( x1 ) = 10 y + y i −1 + y i + yi +1 + yi + 2 zi = wi ( xi ) = i −2 i = 2,3,..., n − 2 5 4 y + 3 y n −1 + 2 y n − 2 + y n −3 z n −1 = wn − 2 ( x n −1 ) = n 10 3 y n + 2 y n −1 + y n −2 − y n − 4 z n = wn − 2 ( x n ) = . 5 Algorytm SE35 wygładzania w oparciu o wielomian stopnia 3 i 5 punktów pomiarowych Algorytm ten wyznacza wektor Z=[ z 0 , z1 ,..., z n −1 , z n ] wartości wygładzonej funkcji dla zadanego wektora Y=[ y 0 , y1 ,..., y n −1 , y n ] pomierzonych wartości funkcji i równoodległych argumentów funkcji. Wartości zi otrzymuje się obliczając w punkcie xi wartość wielomianu aproksymującego stopnia trzeciego stosując do tego aproksymację średniokwadratową punktową w oparciu o 5 punktów ( xi + k , yi + k ) k = −2,−1, 0, 1, 2. Z wyjątkiem punktów z 0 , z1 , z n −1 z n kaŜdą wartość zi otrzymuje się obliczając w punkcie xi wartość wielomianu aproksymującego stopnia trzeciego stosując do tego aproksymację średniokwadratową punktową w oparciu o 5 punktów ( xi + k , yi + k ) k = −2,−1, 0, 1, 2 . Natomiast dla punktów z0 i z1 wykorzystuje się 5 pierwszych punktów a dla punktów zn-1 i zn ostatnie 5 punktów. Dla punktów ( xi + k , yi + k ) k = −2,−1,0,1,2 wielomian aproksymujący ma postać Qi ( x ) = a i x 3 + bi x 2 + ci x + d i i aby obliczyć parametry a i , bi , ci , d i naleŜy zminimalizować funkcję S (ai , bi , ci , d i ) = 2 ∑ (a x k = −2 3 i i+k + bi xi2+ k + ci xi+ k + d i − yi + k ) 2 . Wartości a i , bi , ci , d i wyznacza się z warunków ∂S ∂S ∂S ∂S = = = = 0. ∂a i ∂bi ∂ci ∂d i Ostatecznie wygładzone wartości zi są Aproksymacja 6 z 0 = w2 ( x 0 ) = y 0 − r2 70 2 r2 35 3ri zi = wi ( xi ) = y i + i = 2,3,..., n − 2 35 2r z n −1 = wn − 2 ( x n −1 ) = y n −1 + n − 2 35 rn − 2 z n = wn − 2 ( x n ) = y n − 70 gdzie ri = y i − 2 − 4 y i −1 + 6 y i − 4 yi +1 + yi + 2 i = 2,3,..., n − 2 . z1 = w2 ( x1 ) = y1 + 5. Program ćwiczenia 1. Dla podanej przez prowadzącego funkcji aproksymowanej napisać program wyznaczający współczynniki wielomianu aproksymującego stosując aproksymację średniokwadratową punktową (skorzystać z procedury rozwiązującej układ równań np. metodą Choleskiego) oraz błąd aproksymacji wyznaczony wg wzoru n ∆= m ∑ (∑ a i =0 j =0 j x ij − f i ) 2 . n +1 Aproksymację wykonać z pomocą kilku wielomianów róŜnych stopni. Zbadać wpływ liczby węzłów oraz stopnia wielomianu aproksymującego na błąd aproksymacji. Wykonać podobne zadanie jak w pkt.1 ale wykorzystać wielomiany ortogonalne Grama. Napisać program dokonujący wygładzania podanych przez prowadzącego punktów pomiarowych w oparciu o algorytmy SE13, SE15, SE35. Dokonać kilkakrotnego wygładzania stosując ten sam algorytm kilka razy (wygładzanie juŜ „wygładzonych” punktów). Porównać wyniki. Napisać sprawozdanie zawierające: a) tekst programu i wyniki przeprowadzonych obliczeń, b) opis przeprowadzonych badań, c) analizę uzyskanych wyników, d) wnioski. 2. 3. 4. 6. Pytania kontrolne 1. 2. 3. 4. 5. 6. 7. Co to jest aproksymacja i po co się ją stosuje? Co to jest wielomian uogólniony? Jakie najczęściej stosuje się funkcje bazowe? Jaka jest miara błędu dla aproksymacji średniokwadratowej punktowej? Jaka jest miara błędu dla aproksymacji średniokwadratowej przedziałowej? Jaka jest miara błędu dla aproksymacji jednostajnej? Sformułuj problem aproksymacji średniokwadratowej, punktowej, wielomianowej. Podaj rozwiązanie problemu aproksymacji średniokwadratowej, punktowej, wielomianowej. 8. Podaj definicję wielomianów ortogonalnych na zbiorze punktów. Jakie korzyści daje stosowanie do aproksymacji wielomianów ortogonalnych? Aproksymacja 7 9. Co to jest wygładzanie funkcji? 10. Podaj ideę wygładzania funkcji wielomianem pierwszego stopnia w oparciu o trzy węzły (algorytm S13).