cd abba

Transkrypt

cd abba
Metody numeryczne
Interpolacja funkcji
Interpolacja funkcji
1
Metody numeryczne
Interpolacja funkcji
Wielomianowa
Lagrange’a
Splajny
Trygonometryczna
Interpolacja
Newtona (wzór I )
Czebyszewa
Newtona (wzór II )
2
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Wzór interpolacyjny Czebyszewa
( Wielomiany Czebyszewa )
Załóżmy, że wartości argumentów funkcji
interpolowanej mieszczą się w przedziale [-1, 1].
Postulat ten nie ogranicza możliwości wykorzystania
wzoru interpolacyjnego Czebyszewa, ponieważ
dowolny przedział argumentów [a, b] poprzez
podstawienie
a+b b−a
x =
x
+
2
2
∗
normalizuje się do przedziału [-1, 1].
3
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład:
Zbiór węzłów:
po podstawieniu:
∗
0
∗
1
∗
2
∗
3
x = 4, x = 6, x = 7, x = 10
a+b b−a
x =
x = 7 + 3x
+
2
2
∗
sprowadza się do zbioru:
1
x0 = −1, x1 = − , x2 = 0, x3 = 1
3
4
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Funkcje bazowe (tzw. bazę Czebyszewa) stanowi zbiór
wielomianów określonych wzorem rekurencyjnym:
T0 ( x) = 1 ,
T1 ( x) = x ,
Tk +1 ( x) = 2 ⋅ x ⋅Tk ( x) − Tk −1 ( x)
5
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Kilka pierwszych funkcji bazowych określonych wzorem
rekurencyjnym wygląda następująco:
T0 ( x) = 1
T1 ( x) = x
T2 ( x) = 2 x − 1
2
T3 ( x) = 4 x − 3 x
3
T4 ( x) = 8 x 4 − 8 x 2 + 1
6
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Współczynniki wzoru interpolacyjnego Czebyszewa
wynikają z układu równań:
⎡T0 ( x0 ) T1 ( x0 )
⎢T ( x ) T ( x )
1 1
⎢ 0 1
⎢
⎢T ( x ) T ( x )
1
n
⎣ 0 n
Tn ( x0 ) ⎤ ⎡ a0 ⎤ ⎡ y0 ⎤
⎥
⎢
⎥
⎢
⎥
Tn ( x1 )
a1
y1
⎥⋅⎢ ⎥ = ⎢ ⎥
⎥ ⎢ ⎥ ⎢ ⎥
⎥
⎢
⎥
⎢
⎥
Tn ( xn ) ⎦ ⎣ an ⎦ ⎣ yn ⎦
7
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład:
Dla zbioru punktów (węzłów) : (-0.5, 0.25), (0, 0), (1, 1)
wyznaczyć wielomian interpolacyjny Czebyszewa.
Jest to wielomian stopnia drugiego w postaci:
W ( x) = a0T0 ( x) + a1T1 ( x) + a2T2 ( x)
czyli:
W ( x) = a0 + a1 x + a2 ( 2 x − 1)
2
8
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład c.d. :
Układ równań sprowadza się do następującego:
⎡1 −0.5 −0.5⎤ ⎡ a0 ⎤ ⎡ 0.25⎤
⎢1 0
−1 ⎥ ⋅ ⎢ a1 ⎥ = ⎢ 0 ⎥
⎢
⎥ ⎢ ⎥ ⎢
⎥
1 ⎥⎦ ⎢⎣ a2 ⎥⎦ ⎢⎣ 1 ⎥⎦
⎢⎣1 1
skąd otrzymujemy:
a0 = 0.5, a1 = 0, a2 = 0.5
W ( x) = 0.5 + 0.5 ⋅ ( 2 x 2 − 1) = x 2
9
Metody numeryczne
Wzór interpolacyjny Czebyszewa
UWAGA !
Przy dowolnym doborze węzłów
xi , i = 0, 1, ... , n , xi ∈ [ − 1, 1]
błąd zaokrągleń związanych z procedurą odwracania
macierzy X jest istotnie mniejszy niż w przypadku
interpolacji wielomianami w postaci naturalnej.
10
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przyjęcie siatki węzłów wynikającej z zależności
( 2 i + 1) π
xi = cos
, i = 0, 1, ... , n
2n +2
oraz nieco zmodyfikowanej bazy
⎡ 1
⎤
2
3
Φ=⎢
, x, 2 x − 1, 4 x − 3 x, ... ⎥
⎣ 2
⎦
prowadzi do macierzy X , dla której macierz odwrotną
można obliczyć w bardzo prosty sposób
X
−1
2
T
=
X
n +1
11
Metody numeryczne
Interpolacja trygonometryczna
Wielomianem interpolacyjnym w tym przypadku będzie
więc suma w postaci:
W ( x) = a0 T0 ( x) + a1 T1 ( x) + a2 T2 ( x) + a3 T3 ( x) + ...
czyli:
a0
2
3
W ( x) =
+ a1 x + a2 ( 2 x − 1) + a3 ( 4 x − 3 x ) + ...
2
zawierająca n+1 nieznanych parametrów.
12
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład:
W przedziale [-1, 1] wybieramy cztery węzły interpolacji:
x0 , x1 , x2 , x3 ( n = 3 ) w ten sposób, że
( 2 i + 1) π
( 2 i + 1) π
xi = cos
= cos
2n + 2
8
Otrzymujemy:
x0 = 0.924 , x1 = 0.383 , x2 = −0.383 , x3 = −0.924
13
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład c.d. :
Załóżmy, że wartości funkcji f(x) w tych węzłach wynoszą:
y0 = 2.224 , y1 = 1.701 , y2 = 3.885 , y3 = 6.19
Bazę interpolacji stanowi zbiór wielomianów:
1
,
T0 ( x) =
2
T1 ( x) = x ,
T2 ( x) = 2 x − 1 ,
2
T3 ( x) = 4 x 3 − 3 x
14
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład c.d. :
Macierz X:
0.383 ⎤
⎡0.707 0.924 0.707
⎢0.707 0.383 −0.707 −0.924 ⎥
⎥
X =⎢
⎢0.707 −0.383 −0.707 0.924 ⎥
⎢0.707 −0.924 0.707 −0.383⎥
⎣
⎦
15
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład c.d. :
Macierz odwrotna:
⎡ 0.345 0.354 0.354 0.354 ⎤
⎢0.462 0.191 −0.191 −0.462 ⎥
1 T ⎢
−1
⎥
X = X =
2
⎢0.354 −0.354 −0.354 0.354 ⎥
⎢ 0.191 −0.462 0.462 −0.191⎥
⎣
⎦
16
Metody numeryczne
Wzór interpolacyjny Czebyszewa
Przykład c.d. :
skąd po obliczeniu otrzymujemy wartości współczynników:
a0 = 4.95, a1 = −2.25, a2 = 1, a3 = 0.25
Postać wielomianu jest następująca:
1
2
3
W ( x) = 4.95
− 2.25 x + ( 2 x − 1) + 0.25( 4 x − 3x )
2
Po uproszczeniu otrzymujemy:
W ( x) = x 3 + 2 x 2 − 3 x + 2.5
17
Metody numeryczne
Interpolacja trygonometryczna
Interpolacja trygonometryczna
Rozważać będziemy ciągłą i okresową funkcję f(x)
o okresie 2π , dla której znamy zbiór jej wartości
w 2n+1 węzłach.
Jako bazę interpolacji przyjmujemy zbiór funkcji
trygonometrycznych:
⎡ 1
⎤
…
Φ=⎢
, sin( x), cos( x), sin(2 x), cos(2 x), , sin(n x), cos(n x) ⎥
⎣ 2
⎦
18
Metody numeryczne
Interpolacja trygonometryczna
Wielomianem interpolacyjnym w tym przypadku będzie
więc suma w postaci:
a0
W ( x) =
+ b1 sin( x) + a1 cos( x) +
2
+ b2 sin(2 x) + a2 cos(2 x) + … +
+ bn sin(n x) + an cos(n x)
zawierająca 2n+1 nieznanych parametrów.
19
Metody numeryczne
Interpolacja trygonometryczna
Najbardziej istotny dla praktyki jest przypadek
interpolacji funkcji określonej na zbiorze
równoodległych węzłów xi ∈ [0, 2π ]
dobranych w następujący sposób:
2 iπ
xi =
, i = 0, 1, ... , 2 n
2n + 1
czyli:
2π
4n π
x0 = 0 , x1 =
, ... , x2 n =
2n + 1
2n + 1
20
Metody numeryczne
Interpolacja trygonometryczna
Warunek interpolacji prowadzi do układu równań
⎡
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎣
1
2
1
2
...
1
2
⎤
⎥
⎥ ⎡ a0 ⎤ ⎡ y0 ⎤
sin( x1 ) cos( x1 ) ... sin(nx1 ) cos(nx1 ) ⎥ ⎢ b1 ⎥ ⎢ y1 ⎥
⎥⋅⎢ ⎥ = ⎢ ⎥
⎥ ⎢ ⎥ ⎢ ⎥
...
...
...
...
...
⎥ ⎢ ⎥ ⎢ ⎥
⎥ ⎣ an ⎦ ⎣ yn ⎦
sin( x2 n ) cos( x2 n ) ... sin(nx2 n ) cos(nx2 n ) ⎥
⎦
0
1
...
0
1
Współczynniki pierwszego wiersza macierzy X
wynikają z wartości funkcji sin(kx) i cos(kx) dla x0=0.
21
Metody numeryczne
Interpolacja trygonometryczna
Przedstawiony układ równań dla odpowiednio
dobranych węzłów interpolacji rozwiązuje się
natychmiastowo, ponieważ macierz odwrotną można
obliczyć w bardzo prosty sposób:
X
−1
2
XT
=
2n +1
22
Metody numeryczne
Interpolacja trygonometryczna
Przykład:
Zbiór następujących węzłów przybliżyć wielomianem
trygonometrycznym (n=3):
1
2
3
4
5
6
7
x
0
0,898
1,795
2,693
3,590
4,488
5,386
y
0
5,478
9,344 11,598 12,242 11,274 8,695
Współrzędne „ x ” dla węzłów obliczono ze wzoru:
2 iπ
xi =
2n + 1
23
Metody numeryczne
Interpolacja trygonometryczna
Przykład c.d. :
Bazę interpolacji stanowi zbiór funkcji:
⎡ 1
⎤
, sin( x), cos( x), sin(2 x), cos(2 x), sin(3 x), cos(3 x) ⎥
Φ=⎢
⎣ 2
⎦
24
Metody numeryczne
Interpolacja trygonometryczna
Przykład c.d. :
Tworzymy macierz X , której postać wynikowa jest
następująca :
0
⎡0.707
⎢0.707 0.782
⎢
⎢0.707 0.975
X = ⎢⎢0.707 0.434
⎢0.707 −0.434
⎢
⎢0.707 −0.975
⎢⎣0.707 −0.782
1
0
1
0.623 0.975 −0.223
−0.223 −0.434 −0.901
−0.901 −0.782 0.623
−0.901
−0.223
0.623
0.782
0.623
−0.901
0.434
−0.975 −0.223
⎤
0.434 −0.901⎥
⎥
−0.782 0.623 ⎥
⎥
0.975 −0.223⎥
−0.975 −0.223⎥
⎥
0.782 0.623 ⎥
−0.434 −0.901⎥⎦
0
1
25
Metody numeryczne
Interpolacja trygonometryczna
Przykład c.d. :
Elementy macierzy X mnożymy przez 2 / 7,
otrzymaną macierz transponujemy i obliczamy
współczynniki wzoru interpolacyjnego:
a0 = 11.845,
b1 = −1.336,
a1 = −4.923,
b2 = −0.513,
a2 = −1.961,
b3 = −0.147,
a3 = −1.491
26