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).