BŁĘDY PRZETWARZANIA NUMERYCZNEGO

Podobne dokumenty
Wprowadzenie do metod numerycznych. Krzysztof Patan

Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Teoretyczne Podstawy Informatyki

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Liczby zmiennoprzecinkowe i błędy

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Podstawy Informatyki

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Dokładność obliczeń numerycznych

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Technologie Informacyjne Wykład 4

Pracownia Komputerowa wykład VI

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

EMN. dr Wojtek Palubicki

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Metoda znak-moduł (ZM)

METODY NUMERYCZNE. Wykład 2. Analiza błędów w metodach numerycznych. Met.Numer. wykład 2 1

Arytmetyka stało i zmiennoprzecinkowa

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Pracownia Komputerowa wyk ad VI

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

LICZBY ZMIENNOPRZECINKOWE

Technologie Informacyjne

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Stan wysoki (H) i stan niski (L)

Systemy zapisu liczb.

Zapis liczb binarnych ze znakiem

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Wstęp do informatyki- wykład 1 Systemy liczbowe

Wstęp do informatyki- wykład 1 Systemy liczbowe

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Kod U2 Opracował: Andrzej Nowak

Adam Korzeniewski p Katedra Systemów Multimedialnych

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Adam Korzeniewski p Katedra Systemów Multimedialnych

Arytmetyka binarna - wykład 6

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Operacje arytmetyczne

Naturalny kod binarny (NKB)

LICZBY ZMIENNOPRZECINKOWE

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

KADD Minimalizacja funkcji

Metody Obliczeniowe w Nauce i Technice

Pracownia Komputerowa wykład V

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Algorytmy i struktury danych. wykład 9

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Metody numeryczne II. Reprezentacja liczb

RÓWNANIA NIELINIOWE Maciej Patan

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1

Architektura komputerów

Architektura komputerów

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

Arytmetyka liczb binarnych

Pozycyjny system liczbowy

Kodowanie liczb całkowitych w systemach komputerowych

Arytmetyka stało- i zmiennoprzecinkowa. 1. Informacje wstępne

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Plan wynikowy z wymaganiami edukacyjnymi z matematyki w zakresie podstawowym dla klasy 1 zsz Katarzyna Szczygieł

Kodowanie informacji. Kody liczbowe

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych. Wprowadzenie do metod numerycznych. Wprowadzenie do metod numerycznych

Pracownia Komputerowa wykład IV

Wprowadzenie do informatyki - ć wiczenia

Metody numeryczne. Postać zmiennoprzecinkowa liczby. dr Artur Woike. Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania.

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Wymagania edukacyjne z matematyki dla klasy pierwszej zasadniczej szkoły zawodowej

Luty 2001 Algorytmy (7) 2000/2001

Podstawy opracowania wyników pomiarów z elementami analizy niepewności pomiarowych

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Transkrypt:

BŁĘDY PRZETWARZANIA NUMERYCZNEGO Maciej Patan Uniwersytet Zielonogórski

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. Uniwersytet Zielonogórski 1

... 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) Uniwersytet Zielonogórski 2

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 Uniwersytet Zielonogórski 3

Podstawowe pojęcia Metody numeryczne rozwiązywanie zadań matematycznych w skończonej liczbie operacji arytmetyczno-logicznych, Zadanie numeryczne matematyczny opis relacji pomiędzy danymi wejściowymi i wyjściowymi, Algorytm numeryczny skończona sekwencja operacji przekształcających dane wejściowe w wyjściowe, przy czym operacja jest rozumiana jako funkcja arytmetyczna lub logiczna albo referencja do innych istniejących algorytmów. Uniwersytet Zielonogórski 4

Ź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/sec, ε 3 10 6 4 Błędy maszynowe, 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 x2 dx (1 + x 2 + x4 2! + x6 3! + x8 dx 4! 0 0 Uniwersytet Zielonogórski 5

Błąd względny i bezwzględny Błąd bezwzględny gdzie: E abs = α ˆα α 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 = α ˆα α Uniwersytet Zielonogórski 6

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 oraz dla nita Erel m = 1 100% = 0.01% 10000 Erel n = 1 100% = 10% 10 Uniwersytet Zielonogórski 7

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 1 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 Uniwersytet Zielonogórski 8

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 i=0 e i {0, 1}, i = 0,..., n 1 oraz e n = 1 cyfry reprezentacji binarnej s 0... 0 e n e n-1... e i... e 2 e 1 e 0 sign d bits Uniwersytet Zielonogórski 9

Przykład 2 Określić zakres liczb całkowitych przy, 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 cyfr zakres wynosi [ 2 d,2 d 1] Uniwersytet Zielonogórski 10

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 całkowita) s d c bits sign. exponent d m bits mantissa sign d bits Uniwersytet Zielonogórski 11

Cyfrowy zapis liczb zmiennoprzecinkowych Standardy IEEE 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 2, 1). Uniwersytet Zielonogórski 12

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: 0100100=2 1 2 4 = 0.03125, a największa wartość dodatnia to 0111111=(2 1 + 2 2 + 2 3 ) 2 3 = 7. Czyli, zakres rozważanego systemu to 7 x 0.03125 lub x = 0 lub 0.03125 x 7 Wniosek: W ogólności mamy: m min 2 cmin x m max 2 cmax 1 2 dc 1 2 2 x (1 2 dm ) 2 2dc 1 1 Uniwersytet Zielonogórski 13

Zbiór liczb zmiennoprzecinkowych Zakres Rzeczywiste Nieskończony: istnieją dowolnie duże i dowolnie małe liczby rzeczywiste. Zmiennoprzecinkowe Skończony: liczba bitów cechy ogranicza amplitudę liczb zmiennoprzecinkowych. Precyzja Nieskończona: jest nieskończenie wiele liczb rzeczywistych pomiędzy dwoma dowolnymi l. rzeczywistymi. 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. Uniwersytet Zielonogórski 14

underflow Linia liczb zmiennoprzecinkowych denormal overflow usable range underflow usable range overflow -10 +308-10 -308 10-308 10 +308 Arytmetyka zmiennoprzecinkowa Wyniki operacji arytmetycznych pomiędzy dwoma liczbami zmiennoprzecinkowymi: najczęściej nie może być reprezentowana przez inną wartość zmiennoprzecinkową, ma ograniczony zakres i precyzję. Uniwersytet Zielonogórski 15

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%!!! Uniwersytet Zielonogórski 16

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 Uniwersytet Zielonogórski 17

Błędy kasowania (1) Dla dodawania: Błędy w c = a + b and 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 Uniwersytet Zielonogórski 18

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ą. Uniwersytet Zielonogórski 19

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. Uniwersytet Zielonogórski 20

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 Uniwersytet Zielonogórski 21

Błąd obcięcia Rozważmy rozwinięcie w szereg sin(x) sin(x) = x x3 3! + x5 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. Uniwersytet Zielonogórski 22

Szereg Taylora (1) Dla odpowiednio ciągłej funkcji f(x) określonej na przedziale x [a, b] defniniujemy wyraz n-tego rzędu szeregu Taylora P n (x) jako f(x) =f(x 0 ) + (x x 0 ) df dx + (x x 0) 2 d 2 f x=x0 2! dx 2 x=x0 +... + (x x 0) n d n f n! dx n + R n (x) x=x0 gdzie istnieje wartość ξ spełniająca x 0 ξ x taka, że R n (x) = (x x 0) n+1 d (n) f (n + 1)! dx n+1 x=ξ Uniwersytet Zielonogórski 23

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. Uniwersytet Zielonogórski 24

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 Uniwersytet Zielonogórski 25