Wykład nr 5: Aproksymacja i interpolacjaagatka/numeryczne/wyklad_05.pdf · Aproksymacja i...
Transcript of Wykład nr 5: Aproksymacja i interpolacjaagatka/numeryczne/wyklad_05.pdf · Aproksymacja i...
dr Piotr Fronczak
Metody numeryczne
Wykład nr 5:
Aproksymacja i interpolacja
Aproksymacja i interpolacja
Aproksymacja równaniem liniowym
Błąd dopasowania
n
i
ii axayE1
2
01 )( - Funkcja dwóch zmiennych a1 i a0
Funkcja E ma minimum dla takich wartości a1 i a0, dla których pochodne
cząstkowe względem a1 i a0 zerują się:
n
i
iii
n
i
ii
xaxaya
E
axaya
E
1
01
1
1
01
0
0)(2
0)(2
Jest to układ dwóch równań liniowych:
n
i
ii
n
i
i
n
i
i
n
i
i
n
i
i
n
i
yxaxax
yaxa
1
1
1
2
0
1
1
1
1
0
1
1
Rozwiązaniem tego układu jest:
2
11
2
1111
2
0
2
11
2
1 11
1
n
i
i
n
i
i
n
i
i
n
i
ii
n
i
i
n
i
i
n
i
i
n
i
i
n
i
n
i
i
n
i
iii
xxn
xyxyx
a
xxn
yxyxn
a
Aproksymacja wielomianami wyższego rzędu
Wielomian – funkcja postaci
01
1
1 ...)( axaxaxaxf n
n
n
n
ai - współczynniki rzeczywiste
n – stopień wielomianu
Zbiór n punktów można aproksymować wielomianami różnych stopni
(maksymalnie wielomianem stopnia n-1)
Dla n punktów wielomian stopnia (n-1) przechodzi przez wszystkie punkty.
Gdy n jest duże, aproksymowanie funkcji wielomianem stopnia (n-1)
nie jest wskazane.
01
1
1 ...)( axaxaxaxf m
m
m
m
Zastosujmy wielomian stopnia m do aproksymacji n punktów:
n
i
i
m
im
m
imi axaxaxayE1
2
01
1
1 )...(
Wtedy błąd:
Liniowe równanie m+1 zmiennych (a0 do am)
Funkcja E ma minimum dla takich wartości ai , dla których pochodne
cząstkowe względem ai zerują się.
Weźmy m = 2 (wielomian kwadratowy):
n
i
iii axaxayE1
2
01
2
2 )(
n
i
iiii
n
i
iiii
n
i
iii
xaxaxaya
E
xaxaxaya
E
axaxaya
E
1
2
01
2
2
2
1
01
2
2
1
1
01
2
2
0
0)(2
0)(2
0)(2
n
i
ii
n
i
i
n
i
i
n
i
i
n
i
ii
n
i
i
n
i
i
n
i
i
n
i
i
n
i
i
n
i
i
n
i
yxaxaxax
yxaxaxax
yaxaxa
1
2
2
1
4
1
1
3
0
1
2
1
2
1
3
1
1
2
0
1
1
2
1
2
1
1
0
1
1
Możemy zatem uogólnić problem:
n
i
i
m
im
n
i
mk
i
n
i
k
i
n
i
k
i yxaxaxax11
1
1
1
0
1
...
Dla wielomianu stopnia m mamy m+1 równań postaci
gdzie k = 0, 1, …, m.
for j = 0..2m
xsum[j] =
for j = 0..m
for i = 0..m
A[i][j] = xsum[i+j]
b[j] =
Znajdź wektor a taki, że A·a = b
n
1i
j
ix
i
n
1i
j
iyx
Interpolacja
Interpolacją funkcji f(x) na przedziale <a; b> nazywa się wyznaczenie
przybliżonych wartości funkcji f(x) dla dowolnego argumentu x <a; b> przy
znanych jej wartościach f(x0), f(x1), ..., f(xn) w ustalonych punktach
zwanych węzłami interpolacji bxxxa n ...10
x0 x1 x2 xk xn
f(x0)
f(x1)
f(x2)
f(xk) f(xn)
x
y
Twierdzenie
Istnieje dokładnie jeden wielomian interpolacyjny Wn(x) stopnia n (n 0), który
w punktach przyjmuje wartości nxxx ,...,, 10 nyyy ,...,, 10
Dowód: Szukany wielomian ma postać:
0
1
1)( axaxaxW n
n
n
nn
Korzystając z faktu, że znamy wartości tego wielomianu w n+1 punktach,
możemy napisać układ n+1 równań liniowych z n+1 niewiadomymi
współczynnikami
)(
)(
)(
)(
2
210
2
210
11
2
12110
00
2
02010
n
n
nnnn
i
n
inii
n
n
n
n
xfxaxaxaa
xfxaxaxaa
xfxaxaxaa
xfxaxaxaa
Układ równań można zapisać w postaci macierzowej
)(
)(
)(
)(
1
1
1
1
1
0
1
0
2
2
1
2
11
0
2
00
n
i
n
i
n
nnn
n
iii
n
n
xf
xf
xf
xf
a
a
a
a
xxx
xxx
xxx
xxx
Macierz
Vandermonde’a Niewiadome
współczynniki Dane wartości
0
1
1
1
1
2
2
1
2
11
0
2
00
n
nnn
n
iii
n
n
xxx
xxx
xxx
xxx
Wyznacznik Vandermonde’a jest różny
od zera, jeśli xi xj, i j (i, j = 0,1,...,n),
czyli układ równań ma dokładnie jedno
rozwiązanie.
Wzór interpolacyjny Lagrange’a
)(xW i
nSkonstruujemy wielomiany pomocnicze , i = 0,1,...,n, stopnia n takie, że
jigdy
jigdyxW ijj
i
n1
0)(
)())(())(()( 1110 niii
i
n xxxxxxxxxxcxW
Dla x = xi , zatem 1)( i
i
n xW
)())(())((1 1110 niiiiiiii xxxxxxxxxxc
Oznacza to, że dla
wielomian równa się zeru, a dla xj równa
się jedności. Stąd jest postaci:
,,,,,,, 1110 njj xxxxx
)(xW j
n
czyli )())(())((
1
1110 niiiiiii
ixxxxxxxxxx
c
1 2 3 4 5-1
0
1
2
3
4
5
Czyli:
)())(())((
)())(())(()(
1110
1110
niiiiiii
niii
nxxxxxxxxxx
xxxxxxxxxxxW
otrzymujemy wielomian stopnia co najwyżej n spełniający wszystkie warunki
wymagane przy interpolacji.
n
i
i
i
nn yxWxW0
)()(
Wystarczy przyjąć:
n
i
i
niiiiiii
niin y
xxxxxxxxxx
xxxxxxxxxxxW
0 1110
1110
)())(())((
)())(())(()(
Wzór interpolacyjny Lagrange’a Ostatecznie:
Uwagi:
n
i
n
jij ji
j
inxx
xxyxW
0 0 )(
)()(
1. Wzór uproszczony
2. Jeśli zbiór danych {x,y} jest poszerzony o nową daną, cały wielomian Lagrange’a
musi być przeliczony od początku (porównaj z następną metodą).
Wielomiany Newtona
))...((...))(()()( 11213121 nn xxxxaxxxxaxxaaxf
Ogólna postać:
Wielomian Newtona pierwszego stopnia
)()( 121 xxaaxf
Dla dwóch punktów (x1, y1) i (x2, y2)
CB
AB
CE
DE
12
12
1
1)(
xx
yy
xx
yxf
1
12
121)( xx
xx
yyyxf
11 ya 12
122
xx
yya
Wielomian Newtona drugiego stopnia
))(()()( 213121 xxxxaxxaaxf
Dla trzech punktów (x1, y1), (x2, y2) i (x3, y3)
12
122
xx
yya
Podstawiając x = x1 i 11)()( yxfxf
11 ya Dostajemy
Podstawiając x = x2 i 22)()( yxfxf
Dostajemy 12212 xxayy
Podstawiając x = x3 i 33)()( yxfxf
Dostajemy 2313313
12
1213 xxxxaxx
xx
yyyy
)( 13
12
12
23
23
3xx
xx
yy
xx
yy
a
Wielomian Newtona trzeciego stopnia
)(
)()(
14
13
12
12
23
23
24
23
23
34
34
4xx
xx
xx
yy
xx
yy
xx
xx
yy
xx
yy
a
Współczynniki a1 i a2 są takie same jak dla wielomianu pierwszego stopnia.
Czyli, jeśli mamy dwa punkty i wyznaczony wielomian pierwszego stopnia,
to po dodaniu trzeciego punktu wystarczy obliczyć tylko jeden współczynnik
i dodać nowy wyraz do istniejącego wielomianu.
))()(())(()()( 3214213121 xxxxxxaxxxxaxxaaxf
Znamy a1, a2, a3 oraz f(x = x4) = y4. Możemy więc znaleźć a4:
11 ya
12
122
xx
yya
)( 13
12
12
23
23
3xx
xx
yy
xx
yy
a
)(
)()(
14
13
12
12
23
23
24
23
23
34
34
4xx
xx
xx
yy
xx
yy
xx
xx
yy
xx
yy
a
],[ 12 xxf
],[],[],[
12,3
13
1223 xxxfxx
xxfxxf
],[],[],,[
12,3,4
14
12,3234xxxxf
xx
xxxfxxxf
Uogólniona postać współczynników wielomianu Newtona
Iloraz różnicowy pierwszego rzędu
Iloraz różnicowy drugiego rzędu
Algorytm:
1. Obliczamy n-1 ilorazów różnicowych pierwszego rzędu
2. Korzystając z wartości obliczonych w kroku 1, obliczamy n-2 ilorazów różnicowych
drugiego rzędu
3. Korzystając z wartości obliczonych w kroku 2, obliczamy n-3 ilorazów różnicowych
trzeciego rzędu
n. Korzystając z wartości obliczonych w kroku n-1, obliczamy 1 iloraz różnicowy
n-tego rzędu
Danych jest n punktów.
I ilorazy różn. II ilorazy różn. III ilorazy różn. IV ilorazy różn.
Przykład: Znajdźmy wielomian Newtona czwartego stopnia
przechodzący przez punkty:
)5)(4)(2)(1()4)(2)(1()2)(1()1()( 54321 xxxxaxxxaxxaxaaxf
x 1 2 4 5 7
y 52 5 -5 -40 10
0 1 2 3 4 5 6 7-100
-50
0
50
100
Interpolacja funkcjami sklejanymi
Zadanie: znajdź wielomian interpolujący funkcję f(x) = sqrt(abs(x)), mając dane
wartości tej funkcji w punktach -4, -3, -2, -1, 0, 1, 2, 3, 4.
Wielomian
3 stopnia
Wielomian
5 stopnia
Wielomian
7 stopnia
Funkcje sklejane
Idea
• Zastosować wielomiany
niższych stopni do mniejszej
liczby punktów (podzielić cały
zbiór punktów na przedziały)
• Wygładzić końce przedziałów
Splines
Krzywa ciągła i gładka
Mamy n-1 przedziałów i n punktów
fi(x) jest wielomianem niskiego stopnia
Przykład dla n = 4:
węzeł
x1 x2 x3 x4
Liniowe funkcje sklejane
nn
nn
nn
nn
n
i
xxxxx
xxx
xx
xx
xxxfxx
xxxf
xx
xx
xxxfxx
xxxf
xx
xx
xf
1n-
2
1
x , f f
x ,
x ,
)()(
)()(
)()(
)(
1
11
1
33
23
22
32
3
22
12
11
21
2
n
i
i
niiiiiii
niin y
xxxxxxxxxx
xxxxxxxxxxxW
0 1110
1110
)())(())((
)())(())(()(
Wielomiany
Lagrange’a
dla n = 2 punktów
f1(x) f2(x)
fn-1(x)
Kwadratowe funkcje sklejane
Mamy dane n punktów i n-1 przedziałów.
Wielomian kwadratowy w i-tym przedziale:
1...,,2,1)( 2 nicxbxaxf iiii dla
Mamy n-1 równań i 3(n-1) = 3n-3 niewiadomych.
1. Każdy wielomian fi(x) musi przechodzić przez punkty na końcach przedziału:
1,...,2,1
1,...,2,1
11
2
1
2
niycxbxa
niycxbxa
iiiiii
iiiiii
dla
dla
Daje to nam 2(n-1) = 2n-2 równań.
2. W węzłach nachylenia (pierwsze pochodne) wielomianów z sąsiednich
przedziałów muszą być jednakowe (nie dotyczy to skrajnych węzłów).
ii bxaxf 2)('
1,...,3,222 11 nibxabxa iiiiii dla
Daje to nam n-2 równań. 3n-3 = 2n-2 + n-2 + jeszcze jedno.
3. Druga pochodna w pierwszym punkcie (x1, y1) równa jest zero.
11 2)('' axf
01 a
Zatem pierwsze dwa punkty łączymy prostą linią.
Przykład:
Znajdź wielomiany sklejane dla: x y
-1 -5
0 4
2 -2
5 19
6 58
f(x)=x3-5x2+3x+4
1,...,2,1
1,...,2,1
11
2
1
2
niycxbxa
niycxbxa
iiiiii
iiiiii
dla
dla x y
-1 -5
0 4
2 -2
5 19
6 58
4
5
1
111
c
cba
224
4
222
2
cba
c
19525
224
333
333
cba
cba
58636
19525
444
444
cba
cba
01010
044
0
4433
3322
21
baba
baba
bb
01 a
4
4
4
3
3
3
2
2
2
1
1
1
c
b
a
c
b
a
c
b
a
c
b
a
1 -1 1 -5
0 0 1 4
0 0 1 4
4 2 1 -2
4 2 1 -2
25 5 1 19
25 5 1 19
36 6 1 58
1 -1 0
4 1 -4 -1 0
10 1 -10 -1 0
1 0
2n-2
n-2
1
1,...,3,222 11 nibxabxa iiiiii dla
19
29
10
2
15
3.7
4
9
6
5
9
0
4
4
4
3
3
3
2
2
2
1
1
1
c
b
a
c
b
a
c
b
a
c
b
a
f1(x)
f2(x)
f3(x)
f4(x)
Podstawowe zastosowanie kwadratowych wielomianów sklejanych:
Pomagają zrozumieć kubiczne wielomiany sklejane.
Kubiczne funkcje sklejane Mamy dane n punktów i n-1 przedziałów.
Wielomian sześcienny w i-tym przedziale: 1...,,2,1)( 23 nidxcxbxaxf iiiii dla
Mamy n-1 równań i 4(n-1) = 4n-4 niewiadomych.
1. Każdy wielomian fi(x) musi przechodzić przez punkty na końcach przedziału.
Daje to nam 2(n-1) = 2n-2 równań.
2. W węzłach nachylenia (pierwsze pochodne) wielomianów z sąsiednich
przedziałów muszą być jednakowe (nie dotyczy to skrajnych węzłów).
Daje to nam n-2 równań.
4n-4 = 2n-2 + n-2 + n-2 + jeszcze dwa.
3. W węzłach nachylenia (drugie pochodne) wielomianów z sąsiednich
przedziałów muszą być jednakowe (nie dotyczy to skrajnych węzłów).
iii bxaxf 26)(''
1,...,3,22626 11 nibxabxa iiiiii dla
Daje to nam n-2 równań.
4. Druga pochodna w pierwszym i w ostatnim punkcie (x1, y1) równa jest zero.
026 111 bxa 026 11 nnn bxa
Kubiczne funkcje sklejane (wielomiany Lagrange’a)
)()()( 1
''
1
''
1
1''
ii
ii
iii
ii
ii xf
xx
xxxf
xx
xxxf
Gdy scałkujemy to wyrażenie dwukrotnie
otrzymamy wielomian trzeciego stopnia.
Dwie stałe całkowania wyznaczamy z warunku:
)()(6
)('')(
)()(6
)('')(
)()(6
)('')(
)(6
)('')(
11
1
1
11
1
3
1
13
1
1
iiiii
ii
i
iiiii
ii
i
i
ii
iii
ii
iii
xxxxxf
xx
xf
xxxxxf
xx
xf
xxxx
xfxx
xx
xfxf
)()()()( 1111 iiiiiiii xfxfxfxf oraz
2...,,2,1)(')(' 111 nixfxf iiii dla
Korzystając z warunku
możemy wyznaczyć nieznane f’’i(xi) oraz f’’i(xi+1).
2...,,2,1)()()()(
6
)('')()('')(2)('')(
1
1
12
12
212121
nixx
xfxf
xx
xfxf
xfxxxfxxxfxx
ii
ii
ii
ii
iiiiiiiii
dla
Układ n-2 równań liniowych z n niewiadomymi.
Pozostałe dwa równania uzyskujemy z warunku:
0)(''0)('' 1 nxfxf oraz
Wniosek: mimo trudności z korzystaniem z wielomianów Lagrange’a
uzyskaliśmy prostszy układ równań (n równań zamiast 4n-4)
06f )(
01f )(
Dwuwymiarowe funkcje sklejane
6. Obliczamy wartość tej funkcji dla x*.
1. Mamy dany zbiór wartości pewnej funkcji f(x,y) w węzłach dwuwymiarowej
siatki kwadratowej m x n
2. Poszukujemy wartości tej funkcji w punkcie (x*, y*) nie będącym węzłem siatki.
3. Ustalając jedną współrzędną, np. x, obliczamy m jednowymiar. funkcji sklejanych
4. Dla każdej z tych funkcji obliczamy jej wartość dla y*.
5. Przez zbiór m obliczonych wartości y* prowadzimy funkcję sklejaną.