Kierunek: Automatyka i Robotyka, II rok Konwersje, bª dy przetwarzania numerycznego PWSZ Gªogów, 2009
Dlaczego modelujemy... systematyczne rozwi zywanie problemów, eksperymentalna eksploracja wielu rozwi za«, dostarczanie abstrakcyjnych metod zarz dzania zªo»ono±ci, redukcja czasu wdro»enia dla aplikacji biznesowych, zmniejszenie kosztów produkcji, zarz dzanie ryzykiem bª du,...
... numerycznie? szybkie i efektywne narz dzia rozwi zywania problemów, uniwersalno± i szeroka u»yteczno±, cz sto, jedyna alternatywa dla nieistniej cych rozwi za«analitycznych, liczne istniej ce efektywne programy i biblioteki, idealne do nauki obsªugi maszyn cyfrowych, zmieniaj rozumienie metod matematycznych (redukcja skomplikowanych technik do podstawowych operacji arytmetycznych)
In»ynierskie rozwi zywanie problemów Era prekomputerowa SFORMUŁOWANIE Fundamentalne prawa wyjaśnione w dużym uproszczeniu ROZWIĄZANIE Skomplikowana i czasochłonna metoda do rozwiązania problemu INTERPRETACJA Analiza ograniczona przez czasochłonne rozwiązywanie Era komputerowa SFORMUŁOWANIE Głęboka ekspozycja relacji pomiędzy problemem a prawami fundamentalnymi ROZWIĄZANIE Łatwa i efektywna metoda obliczeniowa INTERPRETACJA Czas obliczeń pozwala na głębszą analizę; można przestudiować wrażliwość i dynamikę systemu
ródªa bª dów 1 Modelowanie matematyczne, np. najprostszy model przyrostu populacji N(t) = N 0 e kt jest prawidªowy tylko przy zaªo»eniu,»e posiada nieograniczone zasoby, 2 Bª dy grube i pomyªki, np. bª dy programistyczne, 3 Bª dy pomiarowe, np. pr dko± ±wiatªa w pró»ni wynosi c = (2.997925 + ε) 10 8 m/sek, ε 3 10 6 4 Bª dy maszynowe bª dy przetwarzania numerycznego np. bª dy zaokr glania lub odrzucania w arytmetyce zmiennoprzecinkowej, 5 Bª dy przybli»ania matematycznego, np. obliczaj c caªk 1 1 I = e x 2 dx 0 0 ) (1 + x 2 + x 4 2! + x 6 3! + x 8 4! dx
Bª d wzgl dny i bezwzgl dny Bª d bezwzgl dny E abs = α ˆα gdzie: α warto± dokªadna ˆα warto± przybli»ona (obliczona) Bª d wzgl dny E rel = α ˆα α lub E rel = α ˆα α 100% Wniosek: α jest najcz ±ciej niedost pna a priori, st d E rel = α ˆα ˆα lub nawet E rel = α ˆα α
Przykªad 1 Rozwa»my zadanie pomiaru dªugo±ci mostu oraz nita u»ytego do jego budowy. W wyniku pomiaru otrzymano odpowiednio 9999 i 9 cm. Je»eli prawdziwe warto±ci to 10000 oraz 10 cm, policzy (a) bª d bezwzgl dny i (b) procentowy bª d wzgl dny w ka»dym z przypadków. a) Bª d bezwzgl dny dla dªugo±ci mostu wynosi oraz dla dªugo±ci nita E m abs = 10000 9999 = 1 cm E n abs = 10 9 = 1 cm b) Bª d wzgl dny dla dªugo±ci mostu wynosi E m = 1 100% = 0.01% rel 10000 oraz dla nita E n = 1 100% = 10% rel 10
Reprezentacja danych przetwarzanych przez komputer Powszechnie u»ywamy systemu dziesi tnego: L (10) = s n i= m e i 10 i gdzie: s znak liczby (±1), e i {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} cyfry reprezentacji dziesi tnej np.: 24, 56 = 2 10 1 + 4 10 0 + 5 10 1 + 6 10 2 Komputer przetwarza dane zapisane w systemie binarnym (dwójkowym): L (2) = s n i= m gdzie: s znak liczby (±1), e i {0, 1} cyfry reprezentacji dwójkowej np.: 10, 75 (10) = 1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 + 1 2 1 + 1 2 2 (2) = 1010, 11 (2) e i 2 i
Reprezentacja danych przetwarzanych przez komputer UWAGA - nie wszystkie liczby rzeczywiste zapisane w systemie dziesi tnym posiadaj sko«czone rozwini cie w systemie dwójkowym, np. 0, 325 (10) = 0, 0101(0011) (2) Zapis w systemie szesnastkowym (heksadecymalnym): L (16) = s n i= m e i 16 i gdzie: s znak liczby (±1), e i {0 9, A, B, C, D, E, F } cyfry reprezentacji heksadecymalnej np.: 175, 75 (10) = 1010 }{{} 1111 }{{}, 1100 }{{} (2) = AF, C (16) A (16) F (16) C (16) Cz sto u»ywany jest tak»e zapis oktalny (ósemkowy)
Cyfrowy zapis liczb caªkowitych baza 10 konwersja baza 2 baza 8 baza 16 1 1=2 0 00000001 001 01 8 8=2 3 00001000 010 08 10 8 + 2=2 3 + 2 1 00001010 012 0C 27 16 + 8 + 2 + 1=2 4 + 2 3 + 2 0 00011010 032 1C 67 64 + 2 + 1=2 6 + 2 1 + 2 0 01000011 103 43 202 128 + 64 + 8 + 2=2 8 + 2 7 + 2 3 + 2 1 11001010 312 CA
Posta staªoprzecinkowa Liczba caªkowita mo»e by dokªadnie reprezentowana w systemie dwójkowym jako n l = s e i 2 i gdzie: s { 1, 1} znak e i {0, 1}, i = 0,..., n 1 oraz e n = 1 cyfry reprezentacji binarnej i=0 s 0... 0 e n e... n-1 e 0 d bitów
Przykªad 2 Okre±li zakres liczb caªkowitych, które mog by reprezentowane na 16-bitowym komputerze. Pierwszy bit przechowuje znak. Pozostaªe 15 bitów mo»e sªu»y do przechowania liczb binarnych od 0 do 111111111111111. St d, górna granica wynosi 2 14 + 2 13 + + 2 1 + 2 0 = 2 15 1 = 32767 W ten sposób zakres to [-32 767,32 767]. Ale istnieje nadmiarowo± dla warto±ci zero, tj. 0000000000000000 oraz 1000000000000000, dlatego druga z kombinacji zazwyczaj jest u»ywana do reprezentacji dodatkowej liczby ujemnej: 32768, st d prawdziwy zakres jest od 32768 do 32767. Wniosek: W ogólno±ci, dla d bitów zakres wynosi Z = [ 2 d,2 d 1] O ile wynik nale»y do Z, dokªadnie wykonywane: dodawanie odejmowanie mno»enie
Przykªad 2 Okre±li zakres liczb caªkowitych, które mog by reprezentowane na 16-bitowym komputerze. Pierwszy bit przechowuje znak. Pozostaªe 15 bitów mo»e sªu»y do przechowania liczb binarnych od 0 do 111111111111111. St d, górna granica wynosi 2 14 + 2 13 + + 2 1 + 2 0 = 2 15 1 = 32767 W ten sposób zakres to [-32 767,32 767]. Ale istnieje nadmiarowo± dla warto±ci zero, tj. 0000000000000000 oraz 1000000000000000, dlatego druga z kombinacji zazwyczaj jest u»ywana do reprezentacji dodatkowej liczby ujemnej: 32768, st d prawdziwy zakres jest od 32768 do 32767. Wniosek: W ogólno±ci, dla d bitów zakres wynosi Z = [ 2 d,2 d 1] O ile wynik nale»y do Z, dokªadnie wykonywane: dodawanie odejmowanie mno»enie
Przykªad 2 Okre±li zakres liczb caªkowitych, które mog by reprezentowane na 16-bitowym komputerze. Pierwszy bit przechowuje znak. Pozostaªe 15 bitów mo»e sªu»y do przechowania liczb binarnych od 0 do 111111111111111. St d, górna granica wynosi 2 14 + 2 13 + + 2 1 + 2 0 = 2 15 1 = 32767 W ten sposób zakres to [-32 767,32 767]. Ale istnieje nadmiarowo± dla warto±ci zero, tj. 0000000000000000 oraz 1000000000000000, dlatego druga z kombinacji zazwyczaj jest u»ywana do reprezentacji dodatkowej liczby ujemnej: 32768, st d prawdziwy zakres jest od 32768 do 32767. Wniosek: W ogólno±ci, dla d bitów zakres wynosi Z = [ 2 d,2 d 1] O ile wynik nale»y do Z, dokªadnie wykonywane: dodawanie odejmowanie mno»enie
Posta zmiennoprzecinkowa Numeryczne warto±ci z niezerow cz ±ci uªamkow s przechowywane jako liczby zmiennoprzecinkowe. gdzie: s { 1, 1} znak l = s 2 c m c cecha (wykªadnik) (d c -bitowa liczba caªkowita) m mantysa (d m -bitowa liczba), m [0.5, 1), m dm = dm e 1 = 1, e i {0, 1} dla i > 1 e i 2 i i=1 s s e... d-t--2 e 1 e... c 0 e -1 e -2 e -t d c bitów cechy dm bitów mantysy
Cyfrowy zapis liczb zmiennoprzecinkowych Standardy IEEE 754 formatów liczb zmiennoprzecinkowych Precyzja Sign Bity mantysy Bity cechy Suma Single 1 23 8 32 Double 1 52 11 64 Quadruple 1 113 14 128 d m decyduje o precyzji reprezentacji, d c = d d m decyduje o zakresie reprezentacji, znormalizowana notacja naukowa, tzn. bez nieznacz cych zer, np. 123.456 0.123456 }{{} 10 3, mantissa czyli mantysa zawsze nale»y do przedziaªu [ 1, 1), gdzie t-baza t systemu zapisu liczby.
Przykªad 3 Utworzy hipotetyczny zbiór liczb zmiennoprzecinkowych, które przechowuj informacj o 8 bitowych sªowach (1 bit na znak, 3 na cech ze znakiem i pozostaªe 4 na mantys ). Zakres cechy wynosi [ 2 2, 2 2 1]. Zatem, najmniejsza warto± dodatnia to: 0 1000 }{{}}{{} 100 =2 1 2 4 = 0.03125, a najwi ksza warto± dodatnia to m min c min 0 1111 }{{}}{{} 011 =(2 1 + 2 2 + 2 3 + 2 4 ) 2 3 = 7.5. Czyli, zakres m max c max rozwa»anego systemu to 7.5 x 0.03125 lub x = 0 lub 0.03125 x 7.5 Wniosek: W ogólno±ci mamy: m min 2 c min x m max 2 cmax 1 1 2 2dc x (1 2 dm ) 2 2dc 1 1 2
Przykªad 3 Utworzy hipotetyczny zbiór liczb zmiennoprzecinkowych, które przechowuj informacj o 8 bitowych sªowach (1 bit na znak, 3 na cech ze znakiem i pozostaªe 4 na mantys ). Zakres cechy wynosi [ 2 2, 2 2 1]. Zatem, najmniejsza warto± dodatnia to: 0 1000 }{{}}{{} 100 =2 1 2 4 = 0.03125, a najwi ksza warto± dodatnia to m min c min 0 1111 }{{}}{{} 011 =(2 1 + 2 2 + 2 3 + 2 4 ) 2 3 = 7.5. Czyli, zakres m max c max rozwa»anego systemu to 7.5 x 0.03125 lub x = 0 lub 0.03125 x 7.5 Wniosek: W ogólno±ci mamy: m min 2 c min x m max 2 cmax 1 1 2 2dc x (1 2 dm ) 2 2dc 1 1 2
Zbiór liczb zmiennoprzecinkowych Rzeczywiste Zakres Niesko«czony: istniej dowolnie du»e i dowolnie maªe liczby rzeczywiste. Precyzja Niesko«czona: jest niesko«czenie wiele liczb rzeczywistych pomi dzy dwoma dowolnymi l. rzeczywistymi. Zmiennoprzecinkowe Sko«czony: liczba bitów cechy ogranicza amplitud liczb zmiennoprzecinkowych. Sko«czona: istnieje sko«czona liczba (czasami nawet równa zero) liczb zmiennoprzecinkowych pomi dzy dwoma dowolnymi l. zmiennoprzecinkowymi. Wniosek: Linia liczb zmiennoprzecinkowych jest podzbiorem linii liczb rzeczywistych.
Zbiór liczb zmiennoprzecinkowych Rzeczywiste Zakres Niesko«czony: istniej dowolnie du»e i dowolnie maªe liczby rzeczywiste. Precyzja Niesko«czona: jest niesko«czenie wiele liczb rzeczywistych pomi dzy dwoma dowolnymi l. rzeczywistymi. Zmiennoprzecinkowe Sko«czony: liczba bitów cechy ogranicza amplitud liczb zmiennoprzecinkowych. Sko«czona: istnieje sko«czona liczba (czasami nawet równa zero) liczb zmiennoprzecinkowych pomi dzy dwoma dowolnymi l. zmiennoprzecinkowymi. Wniosek: Linia liczb zmiennoprzecinkowych jest podzbiorem linii liczb rzeczywistych.
Linia liczb zmiennoprzecinkowych Arytmetyka zmiennoprzecinkowa Wynik operacji arytmetycznych pomi dzy dwoma liczbami zmiennoprzecinkowymi: najcz ±ciej nie mo»e by reprezentowany przez inn warto± zmiennoprzecinkow (potencjalnie wyst pi tzw. bª d zaokr glenia), ma ograniczony zakres i precyzj.
Bª dy zaokr glenia w obliczeniach (1) Przykªad 4 Obliczy r = x 2 y 2, gdzie x = 4.005 oraz y = 4.004 z 4-cyfrow precyzj. Przez bezpo±rednie podstawienie mamy r = x 2 y 2 = 16.04(0025) 16.03(2016) = 0.01 Prawdziwa warto± r to 0.008009. Zatem bª d wzgl dny wynosi E rel = 0.008009 0.01 0.008009 100% = 24.859%!!! Z drugiej strony, stosuj c znany wzór skróconego mno»enia r = (x y)(x + y) mamy: r = (4.005 4.004)(4.004 + 4.005) = 0.001 8.009 = 0.008009 Wynik jest dokªadny i bª d wzgl dny E rel = 0%!!!
Bª dy zaokr glenia w obliczeniach (1) Przykªad 4 Obliczy r = x 2 y 2, gdzie x = 4.005 oraz y = 4.004 z 4-cyfrow precyzj. Przez bezpo±rednie podstawienie mamy r = x 2 y 2 = 16.04(0025) 16.03(2016) = 0.01 Prawdziwa warto± r to 0.008009. Zatem bª d wzgl dny wynosi E rel = 0.008009 0.01 0.008009 100% = 24.859%!!! Z drugiej strony, stosuj c znany wzór skróconego mno»enia r = (x y)(x + y) mamy: r = (4.005 4.004)(4.004 + 4.005) = 0.001 8.009 = 0.008009 Wynik jest dokªadny i bª d wzgl dny E rel = 0%!!!
Bª dy zaokr glenia w obliczeniach (1) Przykªad 4 Obliczy r = x 2 y 2, gdzie x = 4.005 oraz y = 4.004 z 4-cyfrow precyzj. Przez bezpo±rednie podstawienie mamy r = x 2 y 2 = 16.04(0025) 16.03(2016) = 0.01 Prawdziwa warto± r to 0.008009. Zatem bª d wzgl dny wynosi E rel = 0.008009 0.01 0.008009 100% = 24.859%!!! Z drugiej strony, stosuj c znany wzór skróconego mno»enia r = (x y)(x + y) mamy: r = (4.005 4.004)(4.004 + 4.005) = 0.001 8.009 = 0.008009 Wynik jest dokªadny i bª d wzgl dny E rel = 0%!!!
Bª dy zaokr glenia w obliczeniach (2) Ograniczona precyzja prowadzi do zaokr gle«w pojedynczych kalkulacjach Efekty zaokr gle«akumuluj si powoli Bª dy zaokr gle«s nieuniknione, sposobem jest tworzenie lepszych algorytmów Odejmowanie niemal równych warto±ci prowadzi do powa»nych strat precyzji
Bª dy kasowania (1) Dla dodawania: Bª dy w c = a + b b d du»e kiedy a b lub a b. Przykªad 5 Rozwa»my c = a + b z a = x.xxx... 10 0, b = y.yyy... 10 8 oraz z = x + y < 10. osi galna precyzja {}}{ x.xxx xxxx xxxx xxxx + 0.000 0000 yyyy yyyy yyyy yyyy = x.xxx xxxx zzzz zzzz yyyy yyyy }{{} stracone cyfry
Bª dy kasowania (2) Dla odejmowania: Bª d w c = a b b dzie znaczny dla a b. Przykªad 6 Wyznaczy c = a b w arytmetyce zmiennoprzecinkowej dla a = x.xxxxxxxxxxxxxx1 oraz b = x.xxxxxxxxxxxxxxx0. { osi galna precyzja }} { x.xxx xxxx xxxx xxx1 x.xxx xxxx xxxx xxx0 = 0.000 0000 0000 0001 uuuu } uuuu {{ uuuu uuu } nieokre±lone cyfry = 1.uuu uuuu uuuu uuuu 10 15 Wynik posiada tylko jedn (!) cyfr znacz c.
Bª dy kasowania (3) Podsumowanie wyst puj w dodawaniu: a + b kiedy a b lub a b, wyst puj w odejmowaniu: a b kiedy a b, ogromne bª dy w pojedynczych operacjach, a nie powolna akumulacja, cz sto mog zosta zminimalizowane przez algebraiczne przeksztaªcenie wra»liwej formuªy.
Precyzja maszyny Amplituda bª dów zaokr glania jest okre±lona przez tzw. precyzj maszyny ε m, tzn. 1 + δ = 1, δ ε m Dla podwójnej precyzji (64 bity) ε m = 2.2204 10 16 Wyznaczanie precyzji maszyny eps=1 do if (eps+1 <= 1) exit eps = eps/2 end do eps=2*eps Porównywanie liczb zmiennoprzec. if x==y % bª dnie!!! if abs(x-y) < eps
Bª d obci cia Rozwa»my rozwini cie w szereg sin(x) sin(x) = x x 3 3! + x 5 5!... Dla maªych x, tylko kilka wyrazów szeregu jest potrzebnych do dokªadnego przybli»enia sin(x). Wyrazy wy»szego rz du s obcinane (ang. truncated) f true = f sum + bª d obci cia Rozmiar bª du obci cia zale»y od x oraz liczby wyrazów wª czonych w f sum.
Szereg Taylora (1) Dla odpowiednio ci gªej funkcji f (x) okre±lonej na przedziale x [a, b] deniujemy wyraz n-tego rz du szeregu Taylora P n (x) jako f (x) =f (x 0 ) + (x x 0 ) df +... + (x x 0) n n! dx x=x 0 + d n f dx n (x x0)2 2! + R n (x) x=x 0 gdzie istnieje warto± ξ speªniaj ca x 0 ξ x taka,»e R n (x) = (x x 0) n+1 d (n+1) f (n + 1)! dx n+1 x=ξ d 2 f dx 2 x=x 0
Szereg Taylora(2) Przykªad 7 U»y rozwini cia w szereg Taylora n = 4 rz du do przybli»enia f (x) = cos(x) w punkcie x 1 = π/6 na podstawie warto±ci f (x) i jej pochodnych w x 0 = 0. Przybli»enie 4-go rz du cos(π/6) = 1 (π/6)2 2 + (π/6)4 24 = 0.8660538 Warto± dokªadna to 3/2 = 0.8660254.
Szereg Taylora(3) Przyblizenia cos(x) 2 1.5 1 0.5 0 0.5 1 exact P 2 (x) P 4 (x) P 6 (x) 1.5 2 0 1 2 3 x