Aproksymacja i nadok..
Transkrypt
Aproksymacja i nadok..
Numeryczne metody obliczeń technicznych Wykład VI Aproksymacja i nadokreślone układy równań • Zadania dopasowania krzywej i przybliżenia przebiegu funkcji • Aproksymacja średniokwadratowa i wielomiany ortogonalne • Aproksymacja jednostajna (min-max) i wielomiany Czebyszewa • Projektowanie filtrów cyfrowych metodami aproksymacji • Aproksymacja Padégo funkcjami wymiernymi Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Zadanie dopasowania funkcji ciągłej do danych dyskretnych Powszechne w badaniach eksperymentalnych. Najczęściej dane y wejściowe są znane dokładnie a dane wyjściowe są zaburzone z powodu natury statystycznej (parametr próbki losowej) lub zakłócenia pomiarowego (np. szumy cieplne wzmacniacza). Celem jest określenie sparametryzowanej zależności między danymi wejściowymi i wyjściowymi. Rozwiązanie polega na wyborze klasy u zależności (np. liniowa czy kwadratowa) i parametrów tej zależności (np. współczynniki prostej). Kryterium dopasowania ma wpływ na rozwiązanie (least-squares, least-moduli, minimax) i jego wrażliwość na „odstające” dane (outliers). Zadanie przybliżenia przebiegu funkcji Sformułowanie bliskie interpolacji – funkcja aproksymująca równa aproksymowanej w zadanych węzłach, poza węzłami aproksymacja ma być dobrym przybliżeniem wg wybranego kryterium. Celem takiego postępowania jest zastąpienie czasochłonnej obliczeniowo funkcji jej dobrym i szybko obliczanym przybliżeniem (np. wielomianem lub ilorazem wielomianów). Powszechna praktyka w kalkulatorach (np. funkcja sin) i w bibliotekach i środowiskach numerycznych (np. erf w Matlabie). Pożądany jest równomiernie rozłożony błąd przybliżenia – stosowane kryterium min-max. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Zastosowania aproksymacji • Redukcja wymiarowości opisu danych, np. tabela wartości jest zastępowana kilkoma współczynnikami aproksymacji. • Odszumianie sygnałów – konieczne założenie o klasie sygnału, dopasowanie parametrów (np. dopasowanie amplitudy, fazy i częstotliwości sygnału sinusoidalnego do spróbkowanego napięcia sieciowego) • Regresja liniowa i nieliniowa – wyznaczanie zależności wiążących dane (np. wejściowe i wyjściowe). Przykładowo, określanie zależności między średnią temperaturą otoczenia a średnim spalaniem silnika samochodu. • Identyfikacja obiektów dynamicznych metodą dopasowania odpowiedzi czasowych lub częstotliwościowych (nonlinear parameter estimation). Np. określanie parametrów mechanicznych i elektrycznych silnika prądu stałego na podstawie zarejestrowanych sygnałów napięcia, prądu i prędkości obrotowej podczas rozruchu. • Szybkie obliczenia trudnych funkcji, np. całki nieanalityczne, funkcje trygonometryczne. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Prosty przypadek na początek Regresja liniowa – dopasowanie prostej do danych wg kryterium najmniejszej sumy kwadratów odchyłek. Dla zadanych par wartości {ui , yi } , i = 1,…, N poszukujemy przybliżonej zależności pomiędzy nimi w postaci yi = aui + b + ei , gdzie e jest odchyłką, a i b parametrami modelu. Parametry mają minimalizować sumę kwadratów ˆ i + bˆ , czyli odchyłek pomiędzy zadanym yi i wyliczonym z modelu yˆ i = au kryterium: N N N J1 = ∑ ei = ∑ ( yi − yˆi ) = ∑ 2 i =1 2 i =1 i =1 ( ˆ i − bˆ yi − au ) 2 y {uN,yN} {u1,y1} ( ) Minimum kryterium znajdziemy obliczając pochodne cząstkowe i przyrównując je do zera ( ⎧⎪ y = au ˆ + bˆ ⎨ ˆ + au ˆ 2 ⎪⎩uy = bu 1 N u = ∑ ui , N i =1 u = J1 aˆ , bˆ ∂J1 ∂J = 0, 1 = 0 ). ∂aˆ ∂bˆ 1 N 1 N 1 N 2 2 y = ∑ yi , uy = ∑ ui yi , u = ∑ ui N i =1 N i =1 N i =1 Rozwiązując powyższy układ równań ze względu na poszukiwane (estymowane) parametry otrzymujemy: ˆ bˆ = y − au aˆ = uy − u y u2 − u 2 Warunek na minimum (dodatnia określoność macierzy drugich pochodnych) jest spełniony (sprawdzić). Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Sformułowanie ogólniejsze – liniowa regresja wielowymiarowa Poszukujemy zależności liniowej między wieloma zmiennymi wejściowymi i pojedynczą zmienną wyjściową. Przyjmując oznaczenia macierzowe: ⎡1 u1(1) u1( 2) … u1( n ) ⎤ ⎡ e1 ⎤ ⎡ y1 ⎤ ⎡ a0 ⎤ ⎡ yˆ1 ⎤ ⎢ ⎥ ⎢e ⎥ ⎢y ⎥ ⎢a ⎥ ⎢ yˆ ⎥ (1) ( 2) ( n) ⎢1 u2 u2 … u2 ⎥ 2 1 2 ˆ ˆ = ⎢ ⎥, ⎢ 2⎥ =Y−Y ⎢ ⎥, ⎢ ⎥, Y , U=⎢ = = = Y θ e ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ˆ ⎥ y a y ⎢1 u N(1) u N( 2) … u N( n ) ⎥ ⎣ N⎦ ⎣ n⎦ ⎣ N⎦ ⎣ eN ⎦ ⎣ ⎦ zależność między danymi przybierze postać macierzowego układu równań: Y = Uθ + e Nie można go rozwiązać w zwykłym sensie, ponieważ Y = Uθ to sprzeczny i nadokreślony układ równań. Możemy podać rozwiązanie spełniające wszystkie równania z małym łącznym błędem. Minimalizowana suma kwadratów odchyłek przyjmuje w zapisie macierzowym postać: T T ˆ J = e e = Y − Uθ Y − Uθˆ = YT Y − 2θˆ T UT Y + θˆ T UT Uθˆ = J θˆ 1 () ( )( ) 1 () Różniczkując J1 θˆ względem wektora θ̂ i przyrównując do zera: ∂J1 = −2UT Y + 2UT Uθˆ = 0 skąd ∂θˆ −1 θˆ = ( UT U ) UT Y otrzymujemy: Katedra Metrologii AGH UT Uθˆ = UT Y (równanie normalne) - klasyczny wzór na estymator LS. Kraków 2005 Numeryczne metody obliczeń technicznych Od estymatora LS do aproksymacji średniokwadratowej Katedra Metrologii AGH ... ... Zastosowanie estymatora LS wykracza poza regresję liniową. Poszczególne „wejścia” w macierzy U mogą być widziane jako składowe (elementy bazy), które skalowane poprzez współczynniki i sumowane dają najlepsze przybliżenie (aproksymację) wielkości „wyjściowej” (wzorca) w sensie sumy kwadratów odchyłek. Możemy to poglądowo przedstawić w postaci blokowej: a0 c(0) c(0),..., c(n) – elementy składowe bazy (1) c a1 a0,..., an – “amplitudy” składowych w w – aproksymowany „wzorzec” (n) an c e – błąd aproksymacji e Dla przykładu zapiszmy problem aproksymacji wielomianem w postaci jednomianów do stopnia n 2 N n ⎛ ⎞ k na zbiorze N danych {ui,yi}, tj. c ( ) = {uik } , w = { yi } , i = 1,…, N , J1 = ∑ ⎜ yi − ∑ ak uik ⎟ i =1 ⎝ k =0 ⎠ ⎡ an ⎤ % Przykład aproksymacji wielomianowej z bazą jednomianów ⎡ u1n u12 u1 1⎤ ⎢ ⎥ ⎡ y1 ⎤ ⎡ e1 ⎤ % {x,y} – dane, N - ilość danych, n – stopień wielomianu ⎢ n ⎥ ⎢ ⎥ ⎢ y ⎥ ⎢ e ⎥ U=vander(x); 2 u u u 1 2 2 2 ⎢ ⎥ ⎢ a ⎥ = ⎢ 2 ⎥ + ⎢ 2 ⎥ U=U(:,N-n:N); ⎢ ⎥ ⎢ 2 ⎥ ⎢ ⎥ ⎢ ⎥ a=inv(U’*U)*U’*y; % współczynniki od najwyższej potęgi albo a=polyfit(x,y,n); ⎢ n ⎥ ⎢ a1 ⎥ ⎢ ⎥ ⎢ ⎥ % Inaczej: a=U\y; 2 y e plot(y-U*a) % wyrysuj wektor odchyłek u u u 1 N N ⎣ N ⎦ ⎢a ⎥ ⎣ N ⎦ ⎣ N ⎦ polyval(a,1) % wartość wielomianu w wybranym punkcie ⎣ 0⎦ U Kraków 2005 Numeryczne metody obliczeń technicznych Baza jednomianów jest niekorzystna z dwóch powodów: • macierz układu nadokreślonego (o strukturze Vandermonde’a) jest źle uwarunkowana już dla niskiego stopnia wielomianu aproksymacyjnego • nakład obliczeniowy na wyznaczenie współczynników jest duży i powtarzalny przy zwiększaniu stopnia wielomianu Wybór bazy jest problemem doboru postaci składowych rozwinięcia dla osiągnięcia małego błędu przy małym nakładzie obliczeniowym. N ( k ) ( l ) ⎧1, k = l Ten cel osiągniemy wtedy gdy składowe bazy będą ortonormalne, tj.: c ∑ i ci = ⎨ i =1 ⎩0, k ≠ l Wtedy: UT U = I i parametry są obliczane prosto jako transformacja macierzowa : θˆ = UT Y N lub w zapisie skalarnym: ak = ∑ ci( ) yi , k = 0,…, n k i =1 Popularne bazy ortonormalne to (normalizowane): • wielomiany trygonometryczne (baza Fouriera) – dobre przybliżenie dla funkcji okresowych • wielomiany Czebyszewa – najmniejsze oscylacje w przedziale [-1,1] • wielomiany Legendre’a (pojawiły się przy kwadraturach Gaussa) Problem doboru bazy do aproksymowanego kształtu – szybkość zbieżności szeregu Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Przykład Aproksymacja średniokwadratowa wielomianem trygonometrycznym Projektowanie okresowego sygnału pobudzającego do identyfikacji obiektu dynamicznego. Wymagane pasmo sygnału ograniczone do n prążków i najwierniejsze oddanie zadanego kształtu na N próbkach do zaprogramowania generatora ARB. Spróbujmy przybliżyć sygnał piłokształtny szeregiem sinusów, tzn. zminimalizować kryterium o postaci: 2 N n ⎛ ⎞ J1 = ∑ ⎜ yi − ∑ ak sin ( kti ) ⎟ i =1 ⎝ k =1 ⎠ 1.5 1 0.5 0 N=100; % Ilość definiowanych punktów n=5; % Ilość sinusoid składowych do aproks. t=[0:2*pi/N:2*pi*(N-1)/N]'; y=sawtooth(t);% Zadany kształt piłokształtny U=sin(t*[1:n])*sqrt(2/N); a=U'*y; plot(t,y,'r.',t,U*a) -0.5 -1 -1.5 0 1 2 3 4 5 6 7 Próba powyższej aproksymacji dla przebiegu zadanego sawtooth(t-pi/4) zakończy się niepowodzeniem, bo ten przebieg nie jest dobrze przybliżany bazą sinusów. Musimy użyć łączonej bazy sinusów i kosinusów. W wersji zespolonej jest to baza DFT. % Równoważne sposoby tworzenia pełnej rzeczywistej bazy trygonometrycznej U1=[sin(t*[1:n]) cos(t*[1:n])] *sqrt(2/N); U2=dftmtx(N)'*sqrt(2/N); U2=[imag(U2(:,2:n+1)) real(U2(:,2:n+1))]; Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Uwagi o aproksymacji zbioru danych funkcją nieliniową względem parametrów Powszechnie występujące w naukach eksperymentalnych zadanie dopasowania krzywej do zbioru danych pomiarowych (curve fitting) jest klasycznym zadaniem aproksymacji. Krzywa dopasowywana stanowi zależność modelową wiążącą dane, która została opracowana na podstawie analizy zjawiska generowania danych (np. zależność opisująca rozpad promieniotwórczy pierwiastków) lub została wywnioskowana z przebiegu danych. Klasyczne zastosowanie dopasowania krzywej znajdujemy w identyfikacji obiektów dynamicznych metodą dopasowania modelowej odpowiedzi na znane pobudzenie do odpowiedzi zmierzonej na obiekcie. Takie odpowiedzi dynamiczne są najczęściej nieliniowe ze względu na parametry (np. odpowiedź impulsowa h ( t ) obiektu oscylacyjnego z parametrami K ,ξ , ω 0 ). Minimalizowane kryterium sumy kwadratów nie ma wtedy postaci minimalizowanej analitycznie: N J 1 = ∑ ⎡⎣ y ( ti ) − yˆ ( ti )⎤⎦ 2 i =1 gdzie: y ( ti ) - zmierzona odpowiedź dynamiczna, yˆ ( ti ) - modelowa odpowiedź dynamiczna. Wyznaczenie rozwiązania wymaga zastosowania numerycznego algorytmu iteracyjnego poszukiwania minimum kryterium (czym zajmiemy się w przyszłości). Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Aproksymacja wielomianami Czebyszewa w ujęciu interpolacyjnym Na wykładzie dotyczącym interpolacji obserwowaliśmy niepożądane zachowanie wielomianu interpolującego wysokiego rzędu w postaci silnych oscylacji na końcach przedziału. Pozornie jest to sprzeczność z twierdzeniem Weierstrassa o istnieniu dla dowolnej funkcji pewnego wielomianu przybliżającego ją z dowolnie małym błędem, jednak to twierdzenie mówi o pewnym wielomianie, a nie wielomianie na węzłach równoodległych. Dla wielomianu interpolacyjnego pN ( x ) na węzłach { xi , f ( xi )} , i = 0,…, N błąd między funkcją i jej przybliżeniem wielomianowym wynosi (czego nie wyprowadzamy, zob. np. Buchanan): N +1 N +1 f ( ) (ξ ) f ( ) (ξ ) RN ( x ) = f ( x ) − pN ( x ) = ( x − x0 ) ( x − x1 )…( x − xN ) = LN ( x ) ( N + 1)! ( N + 1)! Pewne wybory węzłów (np. równoodległe) mogą powodować duże wartości czynnika LN ( x ) . Przez odpowiedni dobór położenia węzłów możemy zminimalizować jego maksymalną wartość. Optymalne położenia węzłów na przedziale [-1, 1] to zera wielomianu Czebyszewa stopnia N+1 równe (Mathews, str. 237): ⎛ 2i + 1 ⎞ xi = cos ⎜ π , i = 0,1,…, N ⎜ 2 ( N + 1) ⎟⎟ ⎝ ⎠ Wielomiany Czebyszewa kolejnych stopni można zdefiniować rekurencyjnie: C0 ( x ) = 1 C1 ( x ) = x Cn +1 ( x ) = 2 xCn ( x ) − Cn −1 ( x ) Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Przykład Trudna funkcja (1 + x 2 ) raz jeszcze −1 Porównajmy jakość aproksymacji funkcji, która sprawiała problemy przy węzłach równoodległych (a która była bardzo dobrze przybliżana funkcją sklejaną za cenę mniej zwartego opisu). % 11 węzłów Czebyszewa w przedziale [-5:5] N=10; xk=5*cos((2*[0:N]+1)/(2*(N+1))*pi)' 4.9491 4.5482 3.7787 2.7032 1.4087 0.0000 -1.4087 -2.7032 -3.7787 -4.5482 -4.9491 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -5 0 5 0 5 1 0.8 0.6 Podstawiając węzły Czebyszewa do postaci Newtona uzyskujemy wynik znacznie lepszy niż przy węzłach równoodległych (spójrz na rysunki obok). Katedra Metrologii AGH 0.4 0.2 0 -0.2 -5 Kraków 2005 Numeryczne metody obliczeń technicznych Projektowanie cyfrowych filtrów FIR metodami aproksymacji Alternatywą do projektowania filtrów FIR metodą okien są metody aproksymacji wg wybranej normy. Ogólnie, wielkością minimalizowaną jest: ( ) p J = ∫ ⎡W (ω ) H (ω ) − D (ω ) ⎤ dω ⎣ ⎦ ω gdzie: H (ω ) - transmitancja projektowanego filtra, D (ω ) - wzorzec charakterystyki amplitudowej (faza jest z założenia liniowa), W (ω ) - funkcja wagowa. Dla p=2 jest to aproksymacja średniokwadratowa (least squares), dla p=∞ aproksymacja minimax (equiripple design). Funkcje Matlaba projektujące FIR na zasadzie aproksymacji: • remez - algorytm Remeza aproksymacji minimax, implementacja Parks-McClellan (exchange algorithm, zob. Buchanan, str. 273 albo Evans, str. 168) • firls - algorytm weighted LS • firlpnorm – definiowany stopień normy (domyślnie p=128), algorytm quasi-Newton search Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Aproksymacja Padégo funkcjami wymiernymi Dotychczas przy okazji interpolacji i aproksymacji cały czas operowaliśmy węzłami (lepiej lub gorzej rozłożonymi), które były podstawą do opisu pełniejszego (interpolacja pomiędzy węzłami) lub przybliżonego ale bardziej zwartego (aproksymacja). Aproksymacja Padego funkcjami wymiernymi (ilorazem wielomianów) postaci: A ( x ) a0 + a1 x + … + a N x N RN , M ( x ) = = B ( x ) 1 + b1 x + … + bM x M przyjmuje inną filozofię przybliżenia funkcji. Spełnia ona warunek równości jej wartości i kolejnych pochodnych z wartościami funkcji i jej kolejnych pochodnych w punkcie zerowym (lub dowolnym innym po podstawieniu zmiennych). Rozwijając funkcję aproksymowaną w szereg MacLaurina wokół punktu 0: ∞ 1 k f ( x ) = ∑ f ( ) (0) xk k =0 k ! dk dk = k f , k = 1,2,…, N + M RN , M stawiamy warunki: RN ,M ( 0 ) = f ( 0 ) i dx k dx x =0 x =0 co jest tożsame z porównywaniem współczynników przy kolejnych potęgach w wyrażeniu: A( x ) = f ( x ) B ( x ) Uzyskujemy układ N+M+1 równań i wyznaczamy współczynniki wielomianów licznika i mianownika wymiernej funkcji aproksymującej (zob. np. Numerical Recipes albo Mathews). Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Przykład Transformacja biliniowa pomiędzy dziedziną operatorów s i z j 2π f f pr Zależność pomiędzy dziedziną operatora z = e i operatora s = j 2π f powszechnie używaną w cyfrowym przetwarzaniu sygnałów (np. do transformacji filtra analogowego do postaci cyfrowej) nazywa się transformacją biliniową z powodu jej wymiernej dwuliniowej postaci: 1 + 2 1f pr s 1 z −1 sT p , z= przybliżającej zależność dokładną: z = f s = e T = = s 2 f ( ) p pr f pr 1 − 2 1f pr s z +1 Jest to zależność przybliżona i można ją uzyskać na zasadzie aproksymacji Padégo. f ( s ) s = 0 = 1, f ′ ( s ) s =0 = T p , f ′′ ( s ) s =0 = Tp 2 a0 + a1s = (1 + b1s ) (1 + Tp s + 12 Tp 2 s 2 ) , a0 = 1, a1 = 1 2 f pr , b1 = − 2 1f pr (c.b.d.p.) Przykład Przybliżenie funkcji Matlaba erf(). Przykład Trudna funkcja (1 + x 2 ) po raz ostatni −1 Czy jest sens stosować w tym przypadku aproksymację Padégo ? Aproksymacja Padé daje z reguły dużo lepsze efekty niż rozwinięcie wielomianowe MacLaurina. Jednak nie opracowano dotąd metody analizy błędu tego przybliżenia (zob. Numerical Recipes) i jej używanie ma w sobie coś z magii. Katedra Metrologii AGH Kraków 2005