Liczby zmiennoprzecinkowe i błędy

Podobne dokumenty
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

EMN. dr Wojtek Palubicki

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

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Wprowadzenie do metod numerycznych. Krzysztof Patan

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

Podstawy Informatyki

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

Zaawansowane metody numeryczne

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

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

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

BŁĘDY PRZETWARZANIA NUMERYCZNEGO

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

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

Teoretyczne Podstawy Informatyki

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

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

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

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

Technologie Informacyjne Wykład 4

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

Pracownia Komputerowa wykład VI

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

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

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

Obliczenia naukowe Wykład nr 2

Dokładność obliczeń numerycznych

Arytmetyka stało i zmiennoprzecinkowa

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Metody Obliczeniowe w Nauce i Technice

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

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

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

Pracownia Komputerowa wyk ad VI

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

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

Technologie Informacyjne

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

KADD Minimalizacja funkcji

LICZBY ZMIENNOPRZECINKOWE

Kodowanie informacji. Kody liczbowe

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

Zad. 3: Układ równań liniowych

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

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

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Architektura komputerów

0 + 0 = 0, = 1, = 1, = 0.

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

Języki Modelowania i Symulacji 2018 Arytmetyka zmiennoprzecinkowa w standardzie IEEE Wykład 3

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Zapis zmiennopozycyjny, arytmetyka, błędy numeryczne

Iteracyjne rozwiązywanie równań

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

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Bardzo łatwa lista powtórkowa

Programowanie celowe #1

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Metody numeryczne II. Układy równań liniowych

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

R n = {(x 1, x 2,..., x n ): x i R, i {1,2,...,n} },

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

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

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

Wstęp do programowania

Algorytmy i struktury danych. wykład 9

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

5. Rozwiązywanie układów równań liniowych

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

Estymacja wektora stanu w prostym układzie elektroenergetycznym

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Układy równań liniowych

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

Metoda znak-moduł (ZM)

Metody numeryczne. dr hab. Piotr Fronczak. pok. 101 GF. Zakład Fizyki Układów Złożonych

Kształcenie w zakresie podstawowym. Klasa 1

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info

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

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

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

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

LICZBY ZMIENNOPRZECINKOWE

Ciagi liczbowe wykład 4

Metody numeryczne. materiały do wykładu dla studentów. 1. Teoria błędów, notacja O

Stan wysoki (H) i stan niski (L)

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Transkrypt:

i błędy Elementy metod numerycznych i błędy

Kontakt pokój B3-10 tel.: 829 53 62 http://golinski.faculty.wmi.amu.edu.pl/ golinski@amu.edu.pl i błędy

Plan wykładu 1 i błędy

Plan wykładu 1 2 i błędy

Plan wykładu 1 2 3 i błędy

Każda liczbę niezerową można przedstawić jednoznacznie w postaci ±m 2 c, gdzie m [1, 2) (mantysa) i c Z (cecha). Liczby takie nazywamy zmiennoprzecinkowymi i współczesne komputery takie liczby przechowują i wykonują na nich obliczenia. Pamięć nie jest nieograniczona w praktyce przechowujemy skończoną ilość cyfr mantysy oraz wartość cechy też jest jakoś ograniczona. Dla przykładu: 2 0 10000000000 0000000000000000000000000000000000000000000000000000 1/3 0 01111111101 0101010101010101010101010101010101010101010101010101 1/5 1 01111111100 1001100110011001100110011001100110011001100110011010 Kolejne grupy cyfr to: znak, zakodowana cecha i ułamkowe cyfry mantysy. i błędy

IEEE 754 Standardem liczb zmiennoprzecinkowych implementowanym w komputerach jest IEEE 754. To w tym standardzie były zapisane liczby na poprzednim slajdzie. Poza zaprezentowanymi liczbami tzw. znormalizowanymi, standard ten definiuje zapis dla: ±0 ± bardzo bliskich zeru liczb subnormalnych (zwiększamy zakres kosztem precyzji) NaN Not a number sygnalizuje programiście wykonanie nieprawidłowej operacji Standard definiuje liczby pojedynczej precyzji (float w C/C++) i podwójnej precyzji (double). Oprócz tego nakłada na implementację pewne obowiązki dotyczące dokładności prowadzonych działań na tych liczbach. Niestety, standard ten nie jest dostępny za darmo. i błędy

Zaokrąglenia Ze względu na używanie liczb binarnych, większość skończonych ułamków dziesiętnych nie ma skończonych rozwinięć zmiennoprzecinkowych. Ponieważ przechowujemy tylko skończenie wiele cyfr, prowadzi to do błędów zaokrągleń, a w następstwie do powstawania błędów. Dla przykładu, jeżeli na papierze obliczenia dają 0, to może się okazać, że w komputerze dostajemy w wyniku małą ale niezerową liczbę. Podobnie wynik w arytmetyce zmiennoprzecinkowej może zależeć od kolejności wykonywanych działań. i błędy

względne i bezwzględne Mając wartośc dokładną x i wartość przybliżoną x mówimy, że popełniamy błąd bezwzględny x x oraz błąd względny x x x. i błędy

względne i bezwzględne Mając wartośc dokładną x i wartość przybliżoną x mówimy, że popełniamy błąd bezwzględny x x oraz błąd względny x x x. W praktyce znacznie bardziej istotne są błędy względne. i błędy

Źródła błędów Nigdy nie możemy zakładać, że nasz program działa na danych dokładnych odpowiadających rzeczywistości. W szczególności błędy to np.: błędy zaokrągleń, błędy pomiarów, błędy wykonania. Programista może kontrolować (w ograniczonym zakresie) błędy zaokrągleń. Pozostałe rodzaje błędów są poza naszą kontrolą. Należy tak konstruować programy, by pojawiające się błędy nie wypaczyły za bardzo wyniku. i błędy

zaokrągleń dla liczb zmiennoprzecinkowych zaokrągleń dla stosowanych w komputerach liczb zmiennoprzecinkowych są ograniczone przez tzw. dokładnośc maszynową, oznaczaną z reguły przez ε. Dokładność maszynowa to najmniejsza liczba taka, że (w obliczeniach na danej maszynie): 1 + ε 1. Liczby rzeczywiste są przybliżane przez liczby zmiennoprzecinkowe z dokładnością względną ε/2, to znaczy, że fl(x) = x(1 + δ), gdzie δ < ε/2. Dla liczb pojedynczej precyzji standardu IEEE 754 mamy ε = 2 23, dla liczb podwójnej precyzji: ε = 2 52. i błędy

Utrata precyzji Z utratą precyzji mamy do czynienia, gdy odejmujemy dwie bliskie siebie liczby. i błędy

Utrata precyzji Z utratą precyzji mamy do czynienia, gdy odejmujemy dwie bliskie siebie liczby. Theorem Jeżeli x > y są znormalizowanymi liczbami zmiennoprzecinkowymi, oraz 2 q 1 y/x 2 p, to przy obliczaniu x y tracimy co najmniej p i co najwyżej q bitów precyzji (to znaczy: co najmniej ostatnich p bitów mantysy będzie zerami). i błędy

Utrata precyzji przykład Obliczymy na komputerze (1 + 1/999999) (1 + 1/1000000). Wynik ma reprezentację: 0 01111010111 0001100110000000000000000000000000000000000000000000 Wynik dla (1/999999) (1/1000000) to: 0 01111010111 0001100101111001101010101000010100000000000000000000 Wynik dla 1/(999999 1000000) to: 0 01111010111 0001100101111001101010101000010100111101101010000110 i błędy

Utrate precyzji przykłąd cd. W pierwszych dwóch obliczeniach mamy odpowiednio: 2 40 1 y 1 x 1 = 10 12 2 39 2 20 1 y 2 x 2 = 10 6 2 19 W pierwszym przykładzie tracimy więc ok. 40 bitów precyzji, w drugim 20 bitów precyzji. i błędy

mierzy jak bardzo błąd danych zadania obliczeniowego przenosi się na błąd względny wyniku. Definiujemy go jako stosunek tych dwóch wartości. i błędy

mierzy jak bardzo błąd danych zadania obliczeniowego przenosi się na błąd względny wyniku. Definiujemy go jako stosunek tych dwóch wartości. Zadanie, dla którego ten współczynnik jest mały nazywamy dobrze uwarunkowanym, zadanie dla którego jest duży nazywamy źle uwarunkowanym. Zadania dla którego współczynnik ten jest wręcz nieskończony źle postawionym. Duży współczynnik oznacza, że stworzenie programu, który w zadowalający sposób obliczy co trzeba może okazać się niemożliwe. i błędy

mierzy jak bardzo błąd danych zadania obliczeniowego przenosi się na błąd względny wyniku. Definiujemy go jako stosunek tych dwóch wartości. Zadanie, dla którego ten współczynnik jest mały nazywamy dobrze uwarunkowanym, zadanie dla którego jest duży nazywamy źle uwarunkowanym. Zadania dla którego współczynnik ten jest wręcz nieskończony źle postawionym. Duży współczynnik oznacza, że stworzenie programu, który w zadowalający sposób obliczy co trzeba może okazać się niemożliwe. Dla przykładu rozważymy współczynnik uwarunkowania zadania obliczenia wartości funkcji w zadanym punkcie i współczynnik uwarunkowania zadania znalezienia rozwiązania układu równań liniowych. i błędy

Obliczenie wartości funkcji Załóżmy, że chcemy obliczyć wartośc funkcji f (x), jednak dane mają błąd względny δ Zanczy to, że w istocie obliczymy wartość f (x(1 + δ)). i błędy

Obliczenie wartości funkcji Załóżmy, że chcemy obliczyć wartośc funkcji f (x), jednak dane mają błąd względny δ Zanczy to, że w istocie obliczymy wartość f (x(1 + δ)). Stąd błąd względny wynosi: f (x) f (x(1 + δ)) f (x) i błędy

Obliczenie wartości funkcji Załóżmy, że chcemy obliczyć wartośc funkcji f (x), jednak dane mają błąd względny δ Zanczy to, że w istocie obliczymy wartość f (x(1 + δ)). Stąd błąd względny wynosi: f (x) f (x(1 + δ)) f (x) = f (ξ)δx f (x) i błędy

Obliczenie wartości funkcji Załóżmy, że chcemy obliczyć wartośc funkcji f (x), jednak dane mają błąd względny δ Zanczy to, że w istocie obliczymy wartość f (x(1 + δ)). Stąd błąd względny wynosi: f (x) f (x(1 + δ)) f (x) = f (ξ)δx f (x) = f (x)δx f (x) i błędy

Obliczenie wartości funkcji Załóżmy, że chcemy obliczyć wartośc funkcji f (x), jednak dane mają błąd względny δ Zanczy to, że w istocie obliczymy wartość f (x(1 + δ)). Stąd błąd względny wynosi: f (x) f (x(1 + δ)) f (x) = f (ξ)δx f (x) = f (x)δx f (x) = f (x)x f (x) δ. Dla funkcji wielu zmiennych F (x 1,..., x n ) współczynnik ten wynosi: n F x k (x 1,..., x n )x k F (x 1,..., x n ). k=1 i błędy

Przykład Znajdź współczynnik uwarunkowania zadania obliczenia pola powierzchni pokoju o wymiarach a b. i błędy

Przykład Znajdź współczynnik uwarunkowania zadania obliczenia pola powierzchni pokoju o wymiarach a b. Pole jest funkcją dwóch zmiennych: P(x, y) = xy. Korzystamy ze wzoru: ba ab i błędy

Przykład Znajdź współczynnik uwarunkowania zadania obliczenia pola powierzchni pokoju o wymiarach a b. Pole jest funkcją dwóch zmiennych: P(x, y) = xy. Korzystamy ze wzoru: ba ab + ab ab i błędy

Przykład Znajdź współczynnik uwarunkowania zadania obliczenia pola powierzchni pokoju o wymiarach a b. Pole jest funkcją dwóch zmiennych: P(x, y) = xy. Korzystamy ze wzoru: ba ab + ab ab = 2. i błędy

Przykład Znajdź współczynnik uwarunkowania zadania obliczenia pola powierzchni pokoju o wymiarach a b. Pole jest funkcją dwóch zmiennych: P(x, y) = xy. Korzystamy ze wzoru: ba ab + ab ab = 2. Przy wymiarach 1 1m i tolerancji 1% dostajemy najmniejsze pole 0,9801m 2 i największe pole 1,0201m 2, więc widać, że tolerancja wynosi ok. 2%. i błędy

Rozwiązywanie układów równań Załóżmy, że interesuje nas rozwiązanie układu Ax = b. Przypuśćmy, że macierz A jest dokładna, jedyne błędy dotyczą wyrazów wolnych b. Rozwiązaniem układu jest x = A 1 b. Błąd względny popełniany przy przybliżonych danych b jest równy (użyjemy bliżej niesprecyzowanej normy dla wektorów): A 1 b A 1 b A 1 b A 1 (b b) = A 1 = b b A 1 b A A 1 b b. b A 1 (b b) b Wyrażenie A A 1 nazywamy współczynnikiem uwarunkowania macierzy. Macierze dla których ten wskaźnik jest duży sprawiają problemy w obliczeniach numerycznych. i błędy