Interpolacja funkcji
Interpolacja
Wielomianowa Splajny
Trygonometryczna Lagrange’a
Newtona (wzór I )
Newtona (wzór II )
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
2 2
a b b a
x
∗= + + − x
Przykład:
0
4,
16,
27,
310
x
∗= x
∗= x
∗= x
∗=
Zbiór węzłów:
po podstawieniu:
2 2 7 3 a b b a
x
∗= + + − x = + x
sprowadza się do zbioru:
0 1 2 3
1, 1 , 0, 1
x = − x = − 3 x = x =
Funkcje bazowe (tzw. bazę Czebyszewa) stanowi zbiór wielomianów określonych wzorem rekurencyjnym:
0 1
1 1
( ) 1 , ( ) ,
( ) 2 ( ) ( )
k k k
T x
T x x
T
+x x T x T
−x
=
=
= ⋅ ⋅ −
Kilka pierwszych funkcji bazowych określonych wzorem rekurencyjnym wygląda następująco:
0 1
2 2
3 3
4 2
( ) 1 ( )
( ) 2 1 ( ) 4 3
( ) 8 8 1
T x
T x x
T x x
T x x x
T x x x
=
=
= −
= −
= − +
Współczynniki wzoru interpolacyjnego Czebyszewa wynikają z układu równań:
0 0 1 0 0 0 0
0 1 1 1 1 1 1
0 1
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
n n
n n n n n n
T x T x T x a y
T x T x T x a y
T x T x T x a y
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⋅ =
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
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:
0 0 1 1 2 2
( ) ( ) ( ) ( )
W x = a T x + a T x + a T x
czyli:
2
0 1 2
( ) ( 2 1)
W x = a + a x + a x −
Przykład c.d. :
Układ równań sprowadza się do następującego:
0 1 2
1 0.5 0.5 0.25
1 0 1 0
1 1 1 1
a a a
− −
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
⎢ − ⎥ ⎢ ⎥ ⎢ ⋅ = ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
0
0.5,
10,
20.5
a = a = a =
skąd otrzymujemy:
2 2
( ) 0.5 0.5 ( 2 1)
W x = + ⋅ x − = x
UWAGA !
Przy dowolnym doborze węzłów
błąd zaokrągleń związanych z procedurą odwracania macierzy X jest istotnie mniejszy niż w przypadku
interpolacji wielomianami w postaci naturalnej.
, 0, 1, ... , , [ 1, 1]
i i
x i = n x ∈ −
( 2 1)
cos , 0, 1, ... ,
2 2
i
x i i n
n
π
= + =
+
oraz nieco zmodyfikowanej bazy
2 3
1 , , 2 1, 4 3 , ...
2 x x x x
⎡ ⎤
Φ = ⎢ ⎣ − − ⎥ ⎦
prowadzi do macierzy X , dla której macierz odwrotną można obliczyć w bardzo prosty sposób
1
2
T−
=
Wielomianem interpolacyjnym w tym przypadku będzie więc suma w postaci:
0 0 1 1 2 2 3 3
( ) ( ) ( ) ( ) ( ) ...
W x = a T x + a T x + a T x + a T x +
czyli:
(
2) (
3)
0
1 2 3
( ) 2 1 4 3 ...
2
W x = a + a x + a x − + a x − x +
zawierająca n+1 nieznanych parametrów.
Przykład:
W przedziale [-1, 1] wybieramy cztery węzły interpolacji:
x0 , x1 , x2 , x3 ( n = 3 ) w ten sposób, że
Otrzymujemy:
( 2 1) ( 2 1)
cos cos
2 2 8
i
i i
x n
π π
+ +
= =
+
0
0.924 ,
10.383 ,
20.383 ,
30.924
x = x = x = − x = −
Przykład c.d. :
Załóżmy, że wartości funkcji f(x) w tych węzłach wynoszą:
0
2.224 ,
11.701 ,
23.885 ,
36.19
y = y = y = y =
Bazę interpolacji stanowi zbiór wielomianów:
0
1
2 2
( ) 1 , 2 ( ) ,
( ) 2 1 , T x
T x x
T x x
=
=
= −
Przykład c.d. :
Macierz X:
0.707 0.924 0.707 0.383 0.707 0.383 0.707 0.924 0.707 0.383 0.707 0.924 0.707 0.924 0.707 0.383 X
⎡ ⎤
⎢ − − ⎥
⎢ ⎥
= ⎢ − − ⎥
⎢ − − ⎥
⎣ ⎦
Przykład c.d. :
Macierz odwrotna:
1 T
0.345 0.354 0.354 0.354 0.462 0.191 0.191 0.462 1
0.354 0.354 0.354 0.354 2
0.191 0.462 0.462 0.191 X
−X
⎡ ⎤
⎢ − − ⎥
⎢ ⎥
= =
− −
⎢ ⎥
⎢ − − ⎥
⎣ ⎦
Przykład c.d. :
skąd po obliczeniu otrzymujemy wartości współczynników:
0
4.95,
12.25,
21,
30.25
a = a = − a = a =
Postać wielomianu jest następująca:
2 3
( ) 4.95 1 2.25 ( 2 1) 0.25( 4 3 )
W x = 2 − x + x − + x − x
Po uproszczeniu otrzymujemy:
3 2
( ) 2 3 2.5
W x = x + x − x +
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( ), cos( ), sin(2 ), cos(2 ), , sin(n ), cos(n )
2 x x x x x x
⎡ ⎤
Φ = ⎢⎣ … ⎥⎦
Wielomianem interpolacyjnym w tym przypadku będzie więc suma w postaci:
0
1 1
2 2
( ) sin( ) cos( ) 2
sin(2 ) cos(2 ) sin(n ) cos(n )
n n
W x a b x a x
b x a x
b x a x
= + + +
+ + + +
+ +
…
zawierająca 2n+1 nieznanych parametrów.
Najbardziej istotny dla praktyki jest przypadek interpolacji funkcji określonej na zbiorze
równoodległych węzłów
x
i∈ [ 0, 2 ] π
dobranych w następujący sposób:
2 , 0, 1, ... , 2
2 1
i
x i i n
n
= π =
+
czyli:
0 1 2
2 4
0 , , ... ,
2 1
n2 1
x x x n
n n
π π
= = =
+ +
0 0
1 1 1 1 1 1
2 2 2 2
1 0 1 ... 0 1
2
1 sin( ) cos( ) ... sin( ) cos( ) 2
... ... ... ... ... ...
1 sin( ) cos( ) ... sin( ) cos( ) 2
n n
n n n n
a y
x x nx nx b y
a y
x x nx nx
⎡ ⎤
⎢ ⎥
⎢ ⎥ ⎡ ⎤ ⎡ ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥⋅ =
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ⎦ ⎣ ⎦
⎢ ⎥
⎢ ⎥
⎣ ⎦
Współczynniki pierwszego wiersza macierzy X
wynikają z wartości funkcji sin(kx) i cos(kx) dla x =0.
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:
1
2
T2 1
X X
n
−
=
+
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
x = i
π
+
Przykład c.d. :
Bazę interpolacji stanowi zbiór funkcji:
1 , sin( ), cos( ), sin(2 ), cos(2 ), sin(3 ), cos(3 )
2 x x x x x x
⎡ ⎤
Φ = ⎢⎣ ⎥⎦
Przykład c.d. :
Tworzymy macierz X , której postać wynikowa jest następująca :
0.707 0 1 0 1 0 1
0.707 0.782 0.623 0.975 0.223 0.434 0.901 0.707 0.975 0.223 0.434 0.901 0.782 0.623 0.707 0.434 0.901 0.782 0.623 0.975 0.223 0.707 0.434 0.901 0.782 0.623 0.975 0.223 0.707 0.975 0.223 0.434 0.901 0.782 0
X
− −
− − − −
= − − −
− − − −
− − − .623
0.707 0.782 0.623 0.975 0.223 0.434 0.901
⎡ ⎤
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ − − − − − ⎥
⎣ ⎦
Przykład c.d. :
Elementy macierzy X mnożymy przez 2 / 7,
otrzymaną macierz transponujemy i obliczamy współczynniki wzoru interpolacyjnego:
0
1 1
2 2