dopasowywanie krzywych - Uniwersytet Zielonogórski
Transkrypt
dopasowywanie krzywych - Uniwersytet Zielonogórski
DOPASOWYWANIE KRZYWYCH Maciej Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Metody numeryczne Dopasowywanie krzywych Motywacje Przykład 1. Dane o przyroście światowej populacji są aktualizowane co każde 10 lat, celem szacowania średniego przyrostu rocznego. Oficjalne dane zebrano w tabeli: Lata 1950 1960 1970 1980 1990 2000 Populacja [mln] 2 555 2 989 3 558 4 327 5 134 6 180 Problem: Jaki był stan populacji w 1982 roku? Jaki będzie w 2020? Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 1 Metody numeryczne Dopasowywanie krzywych Ogólne spostrzeżenia B dane pomiarowe są często dostępne tylko w dyskretnych punktach pewnego kontinuum (np. dane statystyczne, sygnały cyfrowe, etc.), B jawna postać zależności jest najczęściej nieznana, I potrzebujemy oszacowań nieznanej zależności pomiędzy danymi dyskretnymi wartościami, B zależność czasami może być znana, ale nie posiada analitycznej postaci lub też formuła może być bardzo złożona (np. w przypadku procesów stochastycznych), I możemy potrzebować uproszczonej wersji takiej skomplikowanej funkcji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 2 Metody numeryczne Dopasowywanie krzywych Strategie dopasowania ‘najlepszej’ krzywej 6.5 6 9 Population (10 ) 5.5 • interpolacja krzywoliniowa – linia ciągła • regresja liniowa – linia przerywana 5 4.5 4 3.5 3 2.5 2 1950 1960 1970 1980 1990 2000 Years 1.Interpolacja – bardzo precyzyjne dane, krzywa przechodzi dokładnie przez punkty 2.Aproksymacja – ‘zaszumione’ dane, krzywa reprezentuje ogólny trend Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 3 Metody numeryczne Dopasowywanie krzywych INTERPOLACJA Sformułowanie matematyczne Niech S = {(xi , f (xi ))}ni=0 będzie zbiorem n + 1 różnych węzłów, a G jest daną klasą funkcji. Poszukujemy elementu (funkcji) g(x; θ) ∈ G takiego, że: g(xi ; θ) = f (xi ), i = 0, . . . , n g(x;q) f(xn-1) f(xn) f(x1) x0 xn- 1 x1 f(x0) Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski xn nodes 4 Metody numeryczne Dopasowywanie krzywych Rodzaje interpolacji B liniowa g(x; θ) = θ0 + θ1 g1 (x) + θ2 g2 (x) + . . . + θn gn (x) = n X θi gi (x) i=0 Przykłady: I wielomianowa −→ gi (x) = xi I trygonometryczna −→ gi (x) = eijx , j= √ −1 B nieliniowa Przykłady: α0 + α1 x + . . . + αn xn β0 + β1 x + . . . + βm x m I sklejana −→ węzły dzielą obszar interpolacji na podprzedziały; w każdym podprzedziale jest formułowane osobne zadanie interpolacji. I wymierna −→ g(x; α, β) = Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 5 Metody numeryczne Dopasowywanie krzywych Interpolacja wielomianowa Twierdzenie Niech Πn będzie klasą wielomianów stopnia nie większego od n. Dla n + 1 różnych punktów, istnieje jeden i tylko jeden wielomian z klasy Πn . Wniosek. Interpolacja wielomianowa ⇔ wyznaczenie unikalnego wielomianu n-tego stopnia który przejdzie przez n + 1 punktów danych. Wielomiany interpolujące dowolnego stopnia B baza jednomianowa B baza Lagrange’a B baza Newtona Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 6 Metody numeryczne Dopasowywanie krzywych Baza jednomianowa Rozwiązać układ równań liniowych: g(xi ; θ) = f (xi ), i = 0, . . . , n względem parametrów θ, gdzie: g(x, θ) = θ0 + θ1 x + θ2 x2 + . . . + θn xn . Przykład 2. Dla danych punktów P1 = (0, 1), P2 = (1, 2) oraz P3 = (3, 1) wyznaczyć parabolę interpolującą. Rozwiązanie. Przyjmijmy, że g(x; θ) = θ0 + θ1 x + θ2 x2 . Zatem, musimy rozwiązać następujący układ: θ0 = 1 θ0 = 1 θ0 + θ1 · 0 + θ2 · 02 = 1 θ0 + θ1 + θ2 = 2 ⇒ θ1 = 23 θ0 + θ1 · 1 + θ2 · 12 = 2 ⇒ 2 θ0 + 3θ1 + 9θ2 = 1 θ0 + θ1 · 3 + θ2 · 3 = 1 θ2 =− 21 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 7 Metody numeryczne Dopasowywanie krzywych Wynik: 3 1 g(x, θ) = 1 + x − x2 2 2 2.5 2 1.5 1 0.5 0 −1 0 1 2 3 4 Zalety i wady 4 przejrzysta metoda, 8 nieefektywne obliczenia dla dużej liczby parametrów, Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 8 Metody numeryczne Dopasowywanie krzywych Baza Lagrange’a Wielomian interpolacyjny Lagrange’a Ln (x) = n X li (x)f (xi ) i=0 gdzie li (x) = n Y j=0;j6=i x − xj xi − xj są nazywane wielomianami węzłowymi. Przykład 3. Dla danych z Przykładu 2 wyznaczyć wielomian interpolacyjny z reguły Lagrange’a. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 9 Metody numeryczne Dopasowywanie krzywych Rozwiązanie. Najpierw obliczamy wielomiany węzłowe: 3 4 1 x−1 x−3 · = 1 − x + x2 l0 (x) = 2l1(x) 0 − 1 0 − 3 3 3 2 x−0 x−3 3 1 2 l1 (x) = · = x− x 1−0 1−3 2 2 1 l2(x) x−0 x−1 1 1 l2 (x) = · = − x + x2 0 3−0 3−1 6 6 l0(x) Potem sumujemy 3 składniki: −1 −2 −1 L2 (x) = 1 · l0 (x) + 2 · l1 (x) + 1 · l2 (x) = 0 1 2 3 4 = 1 + 23 x − 21 x2 Zalety i wady 4 bardzo prosta w implementacji, 4 niewielka złożoność pamięciowa, 8 dodawanie nowych punktów pomiarowych prowadzi do powtarzania całego procesu obliczeniowego, Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 10 Metody numeryczne Dopasowywanie krzywych Baza Newtona Ilorazy różnicowe I rzędu: II rzędu: n-tego rzędu: f (xi+1 )−f (xi ) xi+1 −xi ]−f [xi+1 ,xi ] f [xi+2 , xi+1 , xi ] = f [xi+2 ,xxi+1 i+2 −xi ]−f [xi+n−1 ,...,xi ] f [xi+n , . . . , xi+1 , xi ] = f [xi+n ,...,xi+1 xi+n −xi f [xi+1 , xi ] = Wielomian interpolacyjny Newtona Nn (x) =f (x0 ) + (x − x0 )f [x1 , x0 ] + (x − x0 )(x − x1 )f [x2 , x1 , x0 ] + . . . +(x − x0 )(x − x1 ) . . . (x − xn−1 )f [xn , xn−1 , . . . , x0 ] Wniosek: Nn (x) = Nn−1 (x) + (x − x0 )(x − x1 ) . . . (x − xn−1 )f [xn , xn−1 , . . . , x0 ] Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 11 Metody numeryczne Dopasowywanie krzywych Przykład 4. Dla danych z Przykładu 2 wyznaczyć wielomian interpolacyjny według formuły Newtona. Potem dodać punkt P3 = (4, 5) do danych i przeliczyć rozwiązanie. Rozwiązanie. Obliczamy ilorazy różnicowe: xi 0 f (xi ) 1 1 1-st — 2-nd — — 3-rd — — 4 3 2 1 2−1 1−2 1 =1 =− 1−0 3−1 2 − 12 − 1 1 =− 3−0 2 N2 (x) = 1 + 1 · (x − 0) − — 5 5−1 =4 4−3 4 + 12 3 = 4−1 2 3 2 + 12 1 = 4−0 2 1 3 1 · (x − 0)(x − 1) = 1 + x − x2 2 2 2 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 12 Metody numeryczne Dopasowywanie krzywych Po dodaniu punktu P = (4, 5) mamy: 1 5 1 N3 (x) = N2 (x) + (x − 0)(x − 1)(x − 3) = 1 + 3x − x2 + x3 2 2 2 8 6 4 2 N3(x) 0 −2 −1 N2(x) update 0 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 1 2 3 4 13 Metody numeryczne Dopasowywanie krzywych Zalety i wady 4 stosunkowo łatwa w implementacji, 4 dodawanie nowych danych nie wymaga powtórzenia wszystkich obliczeń, 8 duża złożoność pamięciowa. Problemy dodatkowe Ekstrapolacja – proces szacowania wartości funkcji f (x) w punktach, które leżą poza zakresem znanych punktów bazowych [x0 , . . . , xn ]. Najlepszą dokładność zazwyczaj osiąga się, w obszarze blisko centrum punktów bazowych — pokazane metody często prowadzą do znacznych błędów ekstrapolacji. Interpolacja funkcji nieciągłych – badana zależność podlega gwałtownym zmianom, które prowadzą do oscylacji wielomianów interpolacyjnych. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 14 Metody numeryczne Dopasowywanie krzywych Interpolacja sklejana (ang. spline interpolation) in each subinterval interpolation with polynomial of max. 3-rd order f(xn-1) f(x1) x0 x1 f(x0) Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski xn-1 xn continuity of splines including their derivatives of 1-st and 2-nd order 15 Metody numeryczne Dopasowywanie krzywych Warunki gładkiej interpolacji sklejanej B wartości splajnów są takie same dla węzłów wewnętrznych: si (xi ) = si−1 (xi ) = f (xi ), i = 1, . . . , n − 1 (2n − 2 równań), B wartości pierwszych pochodnych są równe dla węzłów wewnętrznych (ciągłość): s0i (xi ) = s0i−1 (xi ), i = 1, . . . , n − 1 (n − 1 równań), B wartości drugich pochodnych są równe dla węzłów wewnętrznych (gładkość): s00i (xi ) = s00i−1 (xi ), i = 1, . . . , n − 1 (n − 1 równań), B dla zewnętrznych węzłów mamy: s0 (x0 ) = f (x0 ), sn (xn ) = f (xn ) (2 równania), B drugie pochodne dla węzłów zewnętrznych zazwyczaj są przyjmowane tak, aby spełniały warunki ‘naturalności’: s000 (x0 ) = 0, s00n (xn ) = 0 (2 równania), Wniosek: Interpolacja sklejana ⇔ rozwiązanie ukłądu 4n równań. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 16 Metody numeryczne Dopasowywanie krzywych Przykład 5. Interpolacja skoku jednostkowego. Gwałtowna zmiana sygnału. interpolacja wysokiego stopnia interpolacja splajnami liniowymi kubicznymi 4 2 3 1.5 2 1 1 0.5 0 0 −1 −0.5 −2 −1 −3 −1.5 −4 −3 −2 −1 0 1 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 2 3 −2 −3 −2 −1 0 1 2 17 3 Metody numeryczne Dopasowywanie krzywych Przykład 1. (cd.) Splajny vs interpolacja wielomianowa wysokiego stopnia w ekstrapolacji. 20 Year WHO Newton Błąd Splajny Błąd Population (109) 15 10 5 2004 6.373 6.878 7.93% 6.585 3.33% 2020 7.542 15.147 100.8% 10.240 35.78% 0 −5 1940 1960 1980 Years Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 2000 2020 18 Metody numeryczne Dopasowywanie krzywych APROKSYMACJA 6 fitted model 5 4 'noisy' data 3 2 1 0 0 0.5 1 1.5 2 Pytania: Jak zdefiniować dobre dopasowanie? Jak dobrać adekwatny model? Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 19 Metody numeryczne Dopasowywanie krzywych Odchyłki pomiarowe Różnica pomiędzy zmierzoną wartością f (x) i dopasowywaną funkcją g(x) ei = f (xi ) − g(xi ; θ) jest nazywana residuum dla pary punktów (xi , f (xi )). ei jest odległością pomiędzy znanymi obserwacjami i funkcją aproksymującą. e3 f(x3) e2 e1 f(x1) f(x0) x0 e0 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski x1 x2 x3 minimization of the performance index operating on these distances 20 Metody numeryczne Dopasowywanie krzywych Najbardziej popularne kryteria wyboru ‘najlepszego’ dopasowania: suma wartości bezwzględnych J(θ) = n X |ei | i=0 suma kwadratów wartości residuów (NK) n X J(θ) = e2i i=0 Sformułowanie matematyczne zadania aproksymacji NK w przypadku dyskretnym Niech S = {(xi , f (xi ))}ni=0 będzie zbiorem n+1 różnych punktów danych, a G jest daną klasą funkcji. Znaleźć element g(x; θ) ∈ G taki, że: n X J(θ) = (f (xi ) − g(xi ; θ))2 → min i=0 Wniosek Jeżeli J(θ? ) = 0 wtedy aproksymacja jest równoznaczna z interpolacją. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 21 Metody numeryczne Dopasowywanie krzywych Przykład 6. Dla danych z Przykładu 2, tj: xi f (xi ) 0 1 1 2 3 1 a) dopasować model liniowy g(x; θ) = θ0 + θ1 x (regresja liniowa MNK), b) znaleźć najlepiej dopasowany (w sensie NK) model w klasie funkcji G = {g : g(x; θ) = θ0 ex + θ1 e−x } Rozwiązanie: a) obliczamy residua: e0 = f (x0 ) − g(x0 ) = 1 − (θ0 + θ1 · 0) = 1 − θ0 e1 = f (x1 ) − g(x1 ) = 2 − (θ0 + θ1 · 1) = 2 − θ0 − θ1 e2 = f (x2 ) − g(x2 ) = 1 − (θ0 + θ1 · 3) = 1 − θ0 − 3θ1 Kryterium NK: J(θ) = e20 + e21 + e22 = (1 − θ0 )2 + (2 − θ0 − θ1 )2 + (1 − θ0 − 3θ1 )2 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 22 Metody numeryczne Warunki konieczne istnienia ekstremum: ∂J ∂θ0 ∇J(θ) = ∂J ∂θ1 Dopasowywanie krzywych =0 Pochodne cząstkowe: ∂J/∂θ0 = −2(1 − θ0 ) − 2(2 − θ0 − θ1 ) − 2(1 − θ0 − 3θ1 ) = −8 + 6θ0 + 8θ1 ∂J∂θ1 = −2(2 − θ0 − θ1 ) − 6(1 − θ0 − 3θ1 ) = −10 + 8θ0 + 20θ1 Rozwiązując układ równań: −8 + 6θ0 + 8θ1 = 0 θ1 + 34 θ0 = 1 =⇒ 4 −10 + 8θ0 + 20θ1 = 0 θ1 + 10 θ0 = 12 =⇒ otrzymujemy najlepiej dopasowany model liniowy: g(x) = − Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski θ0 = 10 7 1 θ1 = − 14 1 10 x+ 14 7 23 Metody numeryczne Dopasowywanie krzywych b) obliczamy residua: e0 = 1 − (e0 θ0 + e−0 θ1 ) = 1 − θ0 − θ1 e1 = 2 − (e1 θ0 + e−1 θ1 ) = 2 − θ0 e − θ1 e−1 e2 = 1 − (e3 θ0 + e−3 θ1 ) kryterium NK: J(θ) = (1 − θ0 − θ1 )2 + (2 − θ0 e − θ1 e−1 )2 + (θ0 e3 + θ1 e−3 )2 Pochodne cząstkowe: ∂J/∂θ0 = 823.6356990θ0 + 6θ1 − 53.04420115 ∂J∂θ1 = 6θ0 + 2.275628071θ1 − 3.571091902 Rozwiązując układ równań: 823.6356990θ0 + 6θ1 = 53.04420115 θ0 ≈ 0.054008019 =⇒ 6θ0 + 2.275628071θ1 = 3.571091902 θ1 ≈ 1.426878067 otrzymujemy model dopasowania: g(x) = 0.054008019 exp(x) + 1.426878067 exp(−x) Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 24 Metody numeryczne Dopasowywanie krzywych Wyniki 4 3.5 3 2.5 2 1.5 1 0.5 0 −1 0 1 2 3 4 a) J(θ? ) = 0.6428571428571428 > 0, b) J(θ? ) = 0.6514857762810944 > 0. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 25