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