Analiza numeryczna
Transkrypt
Analiza numeryczna
Analiza numeryczna - laboratorium drugi rok informatyki magisterskiej, lista 3 - 2 listopada 2005 Uwagi. Zalecane jest rysowanie wykresów funkcji interpolowanych f (x), wielomianów interpolującyjnych p(x) oraz błędu f (x) − p(x), czyli graficzne ilustrowanie przeprowadzonych eksperymentów numerycznych. Literaturę z wydawnictw zagranicznych udostępni prowadzący laboratorium. 1. Wyznaczać ciąg wielomianów wn (x), stopnia n, interpolujących funkcję f (x) = 1/(1 + 25x2 ) na przedziale [−a, a] z węzłami równoodległymi. Obliczenia wykonać dla n = 1, 2, 3, .... i różnych wartości parametru a. Wielomiany interpolujące wyznaczyć za pomocą wzoru Newtona. Obliczenia powtórzyć dla innych funkcji f , np. dla funkcji f (x) = 1−|x|, f (x) = cos (x). Badać, czy wielomian interpolacyjny wn (x) co raz lepiej przybliża funkcję f , jeśli zwiększamy n. Czy taki sam wniosek otrzymuje się dla wszystkich x z przedziału [−a, a]? Obliczenia powtórzyć dla węzłów Czebyszewa. 2. Wielomian interpolujący wn daną funkcję f w danych węzłach interpolacji xj można przedstawić np. w postaci Lagrange’a i postaci Newtona. Werner zaproponował sposób przejścia od postaci Lagrange’a do postaci Netwona. Zrealizować algorytmy obliczania wartości wielomianu interpolacyjnego podanego w postaci Lagrangre’a oraz zamiany postaci Lagrange’a na postać Newtona. Porównać dokładność wyników uzyskanych za √ 2 pomocą obu wzorów na przykład dla funkcji f (x) = 1 + x . Jako węzły interpolacji wybrać 2j + 1 π , 0 ¬ j ¬ n. xj = cos 2(n + 1) Obliczyć błąd f − wn w 19 punktach równoodległych z przedziału [−1, 1] (wystarczy wyznaczyć maksymalny moduł tych różnic). Literatura: W. Werner, Polynomial interpolation: Lagrange versus Newton, Mathematics of Computation, 43 (1984), 205–217. ================== 3. Wielomian interpolacyjny w postaci Lagrange’a można przekształcić do postaci barycentrycznej. Porównać algorytmy obliczania wartości wielomianu interpolacyjnego z wzoru Lagrange’a i z wzoru w postaci barycentrycznej. Eksperymenty numeryczne wykonać podobne jak w innych zadanich. Postać barycentryczna wielomianu interpolacyjnego: wn (x) = n X i=1 n .X ωi ωi f (xi ) , x − xi x − xi i=1 gdzie . ωi = 1 n Y (xi − xj ), x 6= xi (i = 0, . . . , n), i = 0, 1, . . . , n. j=0,j6=i Literatura: Jean-Paul Berrut, L.N. Trefethen, Barycentric Lagrange interpolation, SIAM Review, 2005 (zob. strona domowa Trefethena). ================== 1 4. Wyznaczyć wielomian interpolujący funkcję f (x) = (1+x2 )−1 na przedziale [−5, 5] w 21 węzłach równoodległych (końce przedziału są węzłami). Porównać wartości wielomianu interpolacyjnego w 41 punktach równoodległych z przedziału [−5, 5] z dokładnymi wartościami funkcji f . To samo wykonać dla węzłów losowo wybranych z przedziału [−5, 5] iπ (0 ¬ i ¬ 20) i dla xi = 5cos 2i+1 oraz xi = 5cos 20 42 π (0 ¬ i ¬ 20). Obliczenia powtórzyć dla innej liczby węzłów. Wielomiany interpolujące wyznaczyć za pomocą wzoru Newtona. Obliczenia powtórzyć na przykład dla funkcji f (x) = |x| i f (x) = max{0, 1 − x} na przedziale [−4, 4]. ==================== 5. Wyznaczać ciąg wielomianów wn (x), stopnia n, interpolujących funkcję f (x) = ex na przedziale [0, a] z węzłami równoodległymi. Obliczenia wykonać dla n = 1, 2, 3, .... i różnych wartości parametru a. Wielomiany interpolujące wyznaczyć za pomocą wzoru Newtona, wykorzystując fakt, że węzły są równoodległe. Obliczenia powtórzyć dla innych funkcji f , np. dla funkcji f (x) = x sin πx . Badać, czy wielomian interpolacyjny dobrze przybliża funkcję f . √ √ Testy wykonać też dla funkcji f (x) = arc sin x na przedziale [−1/ 2, 1/ 2]. Zbadać, √ √jak wielomian interpolacyjny przybliża funkcję dla argumentów z przedziału [−1/ 2, 1/ 2]. Dla argumentów spoza tego przedziału skorzystać ze wzoru sin (π/2 − α) = cos α = q 1 − sin2 (x). √ √ Testy wykonać też dla funkcji f (x) = arc sin x na przedziale [−1/ 2, 1/ 2]. Zbadać, √jak √ wielomian interpolacyjny przybliża funkcję dla argumentów z przedziału [−1/ 2, 1/ 2]. Dla argumentów spoza tego przedziału skorzystać ze wzoru sin (π/2 − α) = cos α = q 1 − sin2 (x). ===================== 6. Wyznaczyć wielomian p (interpolacja Hermite’a) spełniający warunki: p(xi ) = f (xi ), p′ (xi ) = f ′ (xi ) dla i = 0, 1, . . . , n, gdzie a = x0 < x1 < . . . < xn = b. Zastosować uogólnione ilorazy różnicowe i wzór interpolacyjny Newtona dla węzłów wielokrotnych. Obliczenia wykonać dla węzłów równoodległych. Ocenić dokładność, z jaką wielomian interpolacyjny przybliża daną funkcję. ==================== 7. Wyznaczyć wielomian interpolacyjny Hermite’a dla węzłów Czebyszewa, czyli pierwiastków wielomianu Czebyszewa Tn+1 . W tym przypadku wielomian interpolacyjny ma szczególną postać (zob. Phillips, Taylor, str. 146-147). Obliczenia wykonać m.in. dla funkcji sin πx na przedziale [0, 1]. Ocenić, z jaką dokładnością wielomian interpolacyjny przybliża funkcję. Literatura: G.M. Phillips, P.J. Taylor, Theory and applications of numerical analysis, Academic Press, London 1996. =================== 2 8. Napisać program, który wyznacza naturalną funkcję interpolującą sklejaną stopnia 3 z węzłami równoodległymi. Do rozwiązania układu, który spełniają wartości drugiej pochodnej funkcji sklejanej w węzłach interpolacji, zastosować eliminacją Gaussa bez wyboru elementu głównego. Nie stosować w tym celu standardowych funkcji Matlaba. Zwrócić uwagę na wielkość elementów głównych. Obliczyć wskaźnik uwarunkowania macierzy tego układu. Obliczenia wykonać dla kilku wybranych funkcji f , w tym dla wielomianów. Na przykład wybrać funkcję f (x) = ex/n na przedziale [0, n] oraz f (x) = (1+x2 )−1 na przedziale [−5, 5] w 41 węzłach równoodległych. Otrzymane wyniki porównać z wynikami otrzymanymi za pomocą funkcji MATLABa spline. Ocenić, jak dobrze funkcja sklejana przybliża funkcję f (zob. Phillips, str. 234-237. Literatura: G.M. Phillips, Interpolation and approximation by polynomials, Canadian Math. Soc., Springer, Berlin 2003. ================== 9. Wiadomo, że funkcja (zob. Cheney, str. 63) f (x) = 1 − tx , 1 − 2tx + t2 |t| < 1, ma następujący szereg Czebyszewa ∞ X 1 − tx = tj Tj (x). 1 − 2tx + t2 j=0 Niech wielomian wn−1 , stopnia ¬ n − 1, interpoluje funkcję f w węzłach interpolacji xi będących pierwiastkami wielomianu Czebyszewa Tn (x). Wówczas (zob. Cheney, str. 135) n−1 X 1 aj Tj (x), wn−1 (x) = a0 T0 (x) + 2 j=1 gdzie n 2X aj = f (xi )Tj (xi ). n i=1 Przeprowadzić eksperymenty numeryczne pokazujące jak wielomian interpolacyjny wn−1 Pn−1 j i suma częściowa szeregu Czebyszewa sn = j=0 t Tj (x) przybliżają funkcję f . Rozważyć dwa przypadki: 0.5 < |t| < 1 i |t| ¬ 0.5. Do obliczania sum częściowych szeregu Czebyszewa zastosować algorytm Clenshawa (zob. Paszkowski, str. 275). Uwaga. Nie stosować procedur podanych w książce Paszkowskiego, tylko napisać własną wersję programu. Literatura: 1. E.W. Cheney, Introduction to approximation theory, McGraw-Hill, New York 1966. 2. S. Paszkowski, Zastosowania numeryczne wielomianów i szeregów Czebyszewa, PWN, Warszawa 1975. Krystyna Ziętak 3