Analiza numeryczna - ćwiczenia i laboratorium

Transkrypt

Analiza numeryczna - ćwiczenia i laboratorium
Analiza numeryczna - ćwiczenia i laboratorium
dodatkowa lista 1 - 10 października 2006
1. Odpowiedz na następujące pytania:
(a) Czym epsilon maszynowy εmach różni się od jednostkowego zaokrąglenia (unit
roundoff)?
(b) Czy epsilon maszynowy jest równy najmniejszej liczbie dodatniej maszynowej?
(c) Czy prawdą jest, że jeśli dwie liczby rzeczywiste są dokładnie reprezentowane
w arytmetyce f l, to ich suma też jest repezentowana dokładnie? Odpowiedź
zilustruj przykładami.
(d) Czy prawdą jest, że w standardzie IEEE w typie double mantysa ma dwa razy
tyle bitów co w typie single?
(e) Podaj trzy źródła błędów w obliczeniach naukowych (numerycznych).
(f) Co rozumie się przez uwarunkowanie zadania? Czy jest to efekt zastosowanego
algorytmu? Czy wiąże się to z precyzją arytmetyki?
(g) Jakie własności ma algorytm numerycznie poprawny?
(h) Wyjaśnij różnicę między analizą błędów w przód i w tył (forward error i backward error).
(i) Podaj dwie przyczyny, dla których stosuje się normalizację liczb w systemie
zmiennopozycyjnym?
(j) Podaj przykład pokazujący, że dodawanie liczb w systemie zmiennopozycyjnym
nie jest działaniem łącznym.
(k) Dlaczego utrata cyfr znaczących jest zła?
(l) Wyjaśnij różnicę między jednostkowym zaokrąleniem, epsilonem maszynowym
i najmniejszą liczbą dodatnią znormalizowaną. Które z tych wielkości zależą od
liczby cyfr cechy lub liczby cyfr mantysy? Dlaczego?
(m) Założmy, że obliczenia są wykonywane w arytmetyce zmniennopozycyjnej. Niech
ciąg liczb dodatnich {xk }n1 będzie malejący: xk > xk+1 . W jakiej kolejności powinniśmy dodawać elementy tego ciągu, żeby obliczona suma miała najmniejszy
błąd?
2. Załóżmy, że obliczenia są wykonywane w zmniennopozycyjnej arytmetyce z epsilonem
maszynowym εmach 10−5 (unit roundoff) i cechą z przedziału [−20, 20]. Podaj wynik
następujących działań:
1 + 10−7 ,
1 + 103 ,
1 + 107 ,
1010 + 103 ,
1010 /10−15 ,
10−10 × 10−15 .
3. Oblicz na komputerze wartość funkcji wykładniczej ex , korzystając z jej rozwinięcia
w szereg Taylora
x2 x3
ex = 1 + x +
+
+ ....
2!
3!
1
(a)
(b)
(c)
(d)
(e)
(f)
Sumuj składniki w naturalnej kolejności.
Zaproponuj kryterium kończenia sumowania.
Testy wykonaj dla x ± 1, ±5, ±10, ±15, ±20
Czy za pomocą tego szeregu można obliczyć dokładny wynik dla x < 0?
Czy dla x < 0 warto zastosować wzór: e−x = 1/ex ?
Czy zmiana kolejności sumowania powyższego szeregu dla x < 0 może poprawić
dokładność obliczonej wartości? Odzielnie sumuj składniki dodatnie i oddzielnie
ujemne.
4. Oblicz na komputerze n pierwszych elementów ciągu
xk+1 = 2.25xk − 0.5xk ,
1
x1 = ,
3
x2 =
1
.
12
Jeśli obliczenia są wykonywane w single precision, to przyjmij n = 225 oraz n = 60 w
double precision. Wiadomo, że dokładnym rozwiązaniem tego związku rekurencyjnego
jest xk = 41−k /3.
5. Niech xk+1 = 111 − (1130 − 3000/xk−1 )/xk i x1 = 11/2, x2 = 61/11. Ciąg ten jest
zbieżny monotonicznie do 6? A jak wygląda zbiezność tego ciągu w komputerze?
Oblicz w komputerze n pierwszych elementów tego cągu. Wykonując obliczenia w
precyzji single, wybierz n = 10, a w double n = 20.
6. Niech w(x) = x3 + ax2 + bx + c, a, b, c - rzeczywiste. Niech y = x + a/3. Wówczas
wielomian w(x) redukuje się do wielomianu y 3 + py + q, gdzie
p=
3b − a2
,
3
q=
2a3 ab
−
+ c.
27
3
Jeśli wyróżnik ∆ = (p/3)3 + (q/2)2 jest dodatni, to wielomian w(x) ma tylko jeden
pierwiastek rzeczywisty określony wzorem
a −q √ 1/3 −q √ 1/3
r=− +
+ ∆
+ −
− ∆
.
3
2
2
Oblicz rzeczywisty pierwiastek r na komputerze. Dodatkowo można wyznaczyć pozostałe dwa (zespolone) pierwiastki.
Przykładowe dane:
a
b
c
6
5
−4
6 × 10154 5 × 10154 −4 × 10154
0
1
1
5
1
−10
1
1
−4
3.999999
10−155
−10155
10155
2
7. Chcemy obliczyć pierwiatki trójmianu kwadratowego ax2 + bx + c dla a = 1.22, b =
3.34 i c = 2.28. Obliczenia wykonujemy w arytmetyce dziesiętnej zmiennopozycyjnej
trzycyfrowej. Obliczoną w tej artymetyce wartość wyrażenia ∆ = b2 − 4ac porównaj
z wartością dokładną. Z jakim błędem względnym jest obliczone ∆?
8. Niech β = 10, t = 3, cmin = −98. Podaj najmniejszą liczbę dodatnią znormalizowaną
w tym systemie. Jakie liczby nieznormalizowane należą do tego systemu (według
standardu IEEE)? Niech x = 6.87 × 10−97 i y = 6.81 × 10−97 . Czemu równa się x − y
w tej arytmetytce? Czy różnica x − y jest liczbą znormalizowaną czy nie?
9. Oblicz na komputerze przybliżone wartości pierwszej pochodnej z wzoru
f 0 (x) ≈
f (x + h) − f (x − h)
2h
i porównaj je z wartościami obliczonymi z wzoru
f 0 (x) ≈
f (x + h) − f (x)
.
h
Obliczenia wykonaj na przykład dla funkcji tangens.
10. Niech f (x) = (ex −1)/x. Wiadomo, że limx→0 f (x) = 1. Sprawdź to eksperymentalnie
obliczając f (x) dla x = 10−k dla k = 1, 2, . . . 15. Czy wyniki zgadzają sie teorią? Jak
to wyjaśnić?
Powtórz eksperyment stosując równoważną postać funkcji f : f (x) = (ex − 1)/ln(ex ).
11. Chcemy wyznaczyć n + 1 równoodległych punktów z przedziału [a, b] w arytmetyce
f l. Stosujemy w tym celu następujące dwie metody:
• x0 = a, xk = xk−1 + h, k = 1, . . . , n
• xk = a + kh, k = 0, . . . , n,
gdzie h = (b − a)/n. Których z tych sposobów jest lepszy? Wykonaj testy na komputerze dla a = 0, b = 1 i znajdź przykład, w którym wyniki otrzymane tymi dwiema
metodami są różne.
Krystyna Ziętak
Uwaga. Pytania i zadania są wzorowane na zadaniach z książki:
M.T. Heath, Scientific Computing. An Introductory Survey, Second Ed., Mac Graw Hill,
Boston 2002.
3