Analiza numeryczna Lista nr 2 (ćwiczenia) 1. Wyznaczyć reprezentację liczby x = 216 + 2−8 + 2−9 + 2−10 w zmiennopozycyjnej arytmetyce binarnej z mantysą t-cyfrową. Rozpatrzyć różne wartości t. Dla jakiego t liczba x będzie reprezentowana dokładnie? Ocenić błąd reprezentacji x dla innej liczby bitów mantysy. 2. Niech binarna arytmetyka zmiennopozycyjna będzie t= 2-cyfrowa. Ile liczb maszynowych jest z przedziału [2, 4]? 3. Znaleźć liczbę rzeczywistą x taką, że f l(x) = x(1 + δ) dla możliwie największego |δ|? Czy tą wartością |δ| może być epsilon maszynowy? 4. Wykazać, że jeśli x i y są liczbami reprezentowanymi dokładnie w arytmetyce f l i |y| ¬ 1 2 ǫ|x| (ǫ jest epsilonem maszynowym), to f l(x + y) = x. 5. Niech f l będzie arytmetyką zmiennopozycyjną t-cyfrową. Z jakim błę- dem względnym może być obliczony iloczyn n liczb reprezentowanych dokładnie w tej arytmetyce? Jak może zmienić się ten błąd, jeśli liczby nie są reprezentowane dokładnie, ale ich wielkości nie przekraczają zakresu liczb reprezentowalnych? 6. Komputer oblicza z1 , z2 , . . . , dla danych x, a1 , a2 , . . . za pomocą wzorów (jest to schemat Hornera) z1 = a1 , zn = xzn−1 + an (n ­ 2). Wykazać, że jeśli dane są dokładnie reprezentowane w artymetyce f l, to obliczone liczby można interpretować jako dokładne wyniki działań na danych zaburzonych. Wyrazić oszacowania tych zaburzeń przez precyzję arytmetyki f l. 7. Zaproponować algorytm obliczania wartości tg(2α) za pomocą tg(α): tg(2α) = 2 tg(α) 1 − tg2 (α) i przeprowadzić analizę błędów. Zakładamy, że wartość tg(α) jest dokładna. Czy to zadanie jest dobrze uwarunkowane? 8. W arytmetyce zmiennopozycyjnej obliczono wartość wyrażenia a0 + a1 . 3 a2 + a4a+a 5 Przeprowadzić analizę błędów. 9. Zaproponować algorytm obliczania wyróżnika („delty”) trójmianu x2 − 2rx + s2 , gdzie r > s. Przeprowadzić analizę błędów. 1 10. Zaproponować algorytm obliczania pierwiastka kwadratowego liczby zespolonej z = x + iy, odporny na powstawanie nadmiaru lub niedo- miaru w trakcie obliczeń w komputerze. Przeprowadzić analizę błędów zaproponowanego algorytmu. 11. Niech dane będą liczby x, y (x2 + y 2 > 0). Zaproponować algorytm obliczania wielkości cos(2α) i sin(2α), gdzie kąt ? jest zdefiniowany zależnościami: r= q x2 + y 2 , cos(α) = x/r, sin(α) = y/r. Czy ten algorytm jest numerycznie poprawny? 12. Niech f (x) = ax12 + bx13 . Wyznaczyć parametry a i b takie, by f (0.1) = 6.06 × 10−13 i f (0.9) = 0.03577. Zbadać wrażliwość parametrów a i b na zmiany wartości f . 13. Zbadać uwarunkowanie zadania obliczania wartości funkcji f (x) = arc sin(x). 14. Wyznaczyć wskaźniki uwarunkowania zadania obliczania jednego z pierwiastków trójmianu kwadratowego x2 + bx + c. Uwaga: • Epsilon maszynowy jest liczbą równą odległości między liczbą maszynową 1/β a następną większą liczbą maszynową jeśli m ∈ [1/β, 1), β jest podstawą systemy; jeśli m ∈ [1, β), to epsilon maszynowy jest równy odległości między 1.0 a następną większą liczbą maszynową. √ √ • f l( x) =√ x(1 + δ), |δ| ¬ ǫ, 1 + β = 1 + α, |α| ¬ ǫ, to |β| ¬ 21 ǫ. Paweł Zieliński 2