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