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