1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy mantys i jest to uªamkowa liczba dwójkowa o t miejscach po przecinku oraz c nazywamy cech i jest to pot ga z pewnego zakresu Ka»d warto± dokªadn przybli»amy poprzez zaokr glenie lub obci cie do najbli»szej liczby powy»szej postaci (liczby maszynowej) Niech x oznacza warto± przybli»on dla dokªadnej warto±ci x Rodzaje bª dów ˆ bª d bezwzgl dny ˆ bª d wzgl dny x = x x, () δx = x x x (3) Celem analizy numerycznej jest uzyskanie oszacowa«bª dów Ze wzgl du na znaczenie cyfr w liczbie w bª dach bezwzgl dnym i wzgl dnym dzielimy je na: ˆ istotne-wszystkie cyfry z wyj tkiem zera na pocz tku liczby, ˆ uªamkowe-wszystkie cyfry po kropce, ˆ poprawne-je»eli x x 05 10 t to mówimy,»e x ma t poprawnych cyfr uªamkowych, ˆ znacz ce-cyfry istotne wyst puj ce w x do pozycji t po kropce Zadanie 1 Podaj liczb cyfr poprawnych i znacz cych: a) 000564 ± 0000004 b) 00011995 ± 000003 c) 0003 ± 000006 Rozwi zanie a) Liczba ma 5 cyfr poprawnych oraz 3 cyfry znacz ce, poniewa» x x 0000004 = 04 10 5 < 05 10 5 c) Liczba ma 3 cyfry poprawne oraz 1 cyfr znacz c, poniewa» x x 000006 = 06 10 4 < 05 10 3 Zadanie Wyznacz wszystkie nieujemne liczby zmiennopozycyjne dla mantysy do trzech miejsc po przecinku oraz cechy z zakresu 1 c Rozwi zanie Wypisujemy wszystkie mo»liwe mantysy W systemie dwójkowym to 0111, 0110, 0101 oraz 0100 Najlepiej przeksztaªci te liczby na liczby w 7 systemie dziesi tnym, a potem mno»y je przez odpowiednie pot gi dwójki: 8, 3 4, 5 8 oraz 1 Konstruujemy wszystkie liczby z powy»szymi mantysami wpisanymi po kolei do tablicy m[14] 1
for i=1 to 4 do for j=-1 to do write m[i]*^j Wynikiem powy»szego algorytmu s wszystkie liczby danego systemu zmiennopozycyjnego Rozkªad tych liczb wygl da nast puj co: Zadanie 3 Zastosuj dwa algorytmy obliczania warto±ci funkcji y = f(x), gdzie f(x) = 1 cos(x) x (4) Pierwszy - wg podanego wzoru, a drugi - zmodykowany: Obliczenia wykonaj dla x 0 w = sin(x/), x/ y = 1 ww (5) Rozwi zanie Wynik dodawania (odejmowania) mo»e by obarczony du»ym bª dem wzgl dnym Je±li to gdzie δ = x1δ1±xδ x 1±x St d x 1 = x 1 (1 + δ 1 ) oraz x = x (1 + δ ) (6) x 1 ± x = (x 1 ± x ) (1 + δ), (7) δ max( δ 1, δ ) x 1 + x x 1 ± x (8) Ró»nica dwóch prawie takich samych liczb mo»e mie du»y bª d wzgl dny W przypadku pierwszego wzoru odejmujemy bliskie sobie liczby 1 cos(x) co powoduje bª dy Drugi wzór pozwala unikn tego typu bª dów i daje w wyniku dokªadniejsze warto±ci Zadanie 4 Dla caªki y n = 1 x n 0 x+5dx prawdziwa jest zale»no± rekurencyjna y n + 5y n 1 = 1 n a) Przyjmuj c,»e przybli»ona warto± y 0 018 oblicz warto±ci y 1, y,, y 8 stosuj c wzór rekurencyjny y n = 1 n 5y n 1 b) Przyjmuj c,»e przybli»ona warto± y 8 0019 oblicz warto±ci y 0, y 1,, y 7 stosuj c wzór rekurencyjny y n 1 = 1 5n 1 5 y n c) Porównaj wyliczone w punktach a) i b) warto±ci y 0, y 1,, y 8 d) Spróbuj wyja±ni powstaªe ró»nice
e) Uzasadnij, który z otrzymanych wyników nale»y odrzuci Rozwi zanie Sposób liczenia caªki z punktu b) jest poprawny Unikamy w nim kumulowania si bª dów W pierwszym wzorze zaczynaj c od ỹ 0 = y 0 (1+ε) mno»ymy bª d ε przez 5 W kolejnym kroku rekurencji znowu zwi kszamy bª d itd W wyniku otrzymujemy warto± obarczon bardzo du»ym bª dem Zadanie 5 Zastosuj nast puj cy algorytm obliczania przybli»onej warto±ci pochodnej f (x 0 ) f(x 0 + h) f(x 0 ) h Wykonaj obliczenia dla ró»nych warto±ci parametru h i wybranych funkcji f, np f(x) = x, x 0 = 11, h = 10 k (k = 1,,, n, gdzie n N, n-ustalone) Porównaj warto±ci f (x 0 ) z wyliczonym ilorazem ró»nicowym Zadanie 6 Napisz program obliczaj cy warto± tego samego wielomianu ró»nymi sposobami: a) (x 1) 8 b) x 8 8x 7 + 8x 6 56x 5 + 70x 4 56x 3 + 8x 8x + 1 c) (((((((x 8)x + 8)x 56)x + 70)x 56)x + 8)x 8)x + 1 dla x od 099 do 101 z krokiem 0001 Rozwi zanie Tylko pierwszy sposób daje nam dokªadn warto± w wyniku Dzieje si tak dlatego,»e wykonujemy tam najmniejsz liczb dziaªa«arytmetycznych-mno»e«i dodawa«drugi sposób jest najgorszy, poniewa» wykonuje si tu najwi ksz liczb dziaªa«, a zwªaszcza mno»e«, które prowadz do kumulowania si bª dów Ostatni sposób to algorytm Hornera Korzystanie z tego algorytmu pozwala na unikni cie wielu podnosze«do pot gi Zadanie 7 Dany jest trójmian kwadratowy w(x) = x + px + q, gdzie p, q R oraz p 4q 0 Dla a) p = 08700, q = 0174, b) p = 10 7, q = 0, c) p = 099996 10 7, q = 09999 Oblicz zera rzeczywiste w(x) korzystaj c z "klasycznego" algorytmu oraz algorytmu zmodykowanego nast puj co: je±li p > 0, to x = p p 4q i x 1 = q x, gdy p 0, to x 1 = p+ p 4q i x = q x 1 Wskazówka Je±li warto± q jest niewielka w porównaniu z p oraz p > 0 to mo»e nast pi redukcja cyfr przy obliczaniu x 1 Analogicznie w przypadku liczenia x przy p < 0 3
Uwarunkowanie zadania Uwarunkowanie zadania jest to wra»liwo± wyniku zadania na maªe wzgl dne zaburzenia danych pocz tkowych Mówimy,»e zadanie jest ¹le uwarunkowane je±li niewielkie zaburzenia danych pocz tkowych powoduj du»e zaburzenia wyniku W przeciwnym przypadku mówimy,»e zadanie jest dobrze uwarunkowane Miar uwarunkowania zadania s wska¹niki uwarunkowania zadania Dla zadania obliczania warto±ci funkcji y = f(x) przyjmujemy za wska¹nik uwarunkowania ε y = xf (x) f(x) ε x (9) przy zaªo»eniu,»e funkcja f ma ci gª drug pochodn W przypadku funkcji wielu zmiennych y = f(x 1, x,, x n ) wska¹nik uwarunkowania n f(x) x i x ε y = i f(x) ε x i (10) i=1 Zadanie 8 Oblicz wspóªczynniki uwarunkowania zadania dla zadania wyznaczania iloczynu skalarnego wektorów: a = [1,, 3], b = [4, 5, 5] (11) i zmodykuj wektor b tak, by zadanie byªo dobrze uwarunkowane Rozwi zanie Traktuj c iloczyn skalarny n i=0 a ib i jako funkcj n zmiennych dostajemy wska¹nik uwarunkowania postaci n i=1 a ib i n i=1 a ib i (1) Dla naszego zadania wynosi wi c on 19 Zadanie jest wi c ¹le uwarunkowane Iloczyn skalarny wektorów jest dobrze uwarunkowanym zadaniem w przypadku, gdy wszystkie iloczyny a i b i s tego samego znaku Je»eli zmodykujemy np wektor b zmieniaj c znak ostatniego wyrazu [4, 5, 5] to zadanie b dzie dobrze uwarunkowane Zadanie 9 Zbadaj przenoszenie si bª dów dla funkcji: a) f(x) = x 1, b) f(x) = x, c) f(x, y) = x y, d) f(x, y) = x y, e) f(x, y) = y x, f) f(x, y) = y + x, g) f(x, y) = (x + y)x h) f(x, y) = x y 4
Rozwi zanie a) Liczymy wska¹nik uwarunkowania zadania ze wzoru ε f(x) = x x x 1 ε x = x x 1 ε x (13) Zadanie jest ¹le uwarunkowane dla x 1 0, czyli dla x 1 lub x 1 b) Liczymy wska¹nik uwarunkowania zadania ze wzoru ε f(x) = x x x ε x = ε x (14) Zadanie jest wi c dobrze uwarunkowane d) Liczymy wska¹nik uwarunkowania dla funkcji dwóch zmiennych ε f(x,y) = x 4x x y ε x + y ( 1) x y ε y = 4x x y ε x + y x y ε y (15) Zadanie jest ¹le uwarunkowane dla x y 0, czyli dla x y 5