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

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

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

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

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

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

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

Teoretyczne Podstawy Informatyki

Liczby zmiennoprzecinkowe i błędy

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

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

Pracownia Komputerowa wykład VI

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

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

Systemy zapisu liczb.

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

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

Metoda znak-moduł (ZM)

Technologie Informacyjne Wykład 4

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

Pracownia Komputerowa wykład V

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

1.1. Pozycyjne systemy liczbowe

Wprowadzenie do metod numerycznych. Krzysztof Patan

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

Stan wysoki (H) i stan niski (L)

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

Pracownia Komputerowa wyk ad VI

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Kodowanie informacji. Kody liczbowe

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

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

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

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

Kod U2 Opracował: Andrzej Nowak

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

Arytmetyka binarna - wykład 6

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

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

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Arytmetyka liczb binarnych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

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

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

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

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

Technologie Informacyjne

Zapis liczb binarnych ze znakiem

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

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

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

Arytmetyka stało i zmiennoprzecinkowa

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

BŁĘDY PRZETWARZANIA NUMERYCZNEGO

SYSTEMY LICZBOWE 275,538 =

EMN. dr Wojtek Palubicki

Naturalny kod binarny (NKB)

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

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

LICZBY ZMIENNOPRZECINKOWE

Podstawy Informatyki dla Nauczyciela

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

Architektura komputerów

Architektura komputerów

Wstęp do informatyki- wykład 2

Metody numeryczne I Równania nieliniowe

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Pracownia Komputerowa wyk ad V

Pracownia Komputerowa wykład IV

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

2.3. Wyznaczanie wartości wielomianu, pozycyjne systemy liczbowe i reprezentacja danych liczbowych w komputerze

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

Algorytmy obliczeniowe

Wymagania edukacyjne. Hasło z podstawy programowej 1. Liczby naturalne 1 Liczby naturalne, cechy podzielności. Liczba godzin

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Techniki multimedialne

Wymagania edukacyjne: Matematyka Zasadnicza Szkoła Zawodowa

Pozycyjny system liczbowy

Wprowadzenie do informatyki - ć wiczenia

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Dokładność obliczeń numerycznych

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

L6.1 Systemy liczenia stosowane w informatyce

Transkrypt:

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

Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane tą drogą wyniki są na ogół przybliżone, jednak dokładność obliczeń może być z góry określona i dobiera się ją zależnie od potrzeb. Wykorzystywane są wówczas gdy badany problem nie ma w ogóle rozwiązania analitycznego (danego wzorami), lub korzystanie z takich rozwiązań jest uciążliwe ze względu na ich złożoność. 2

Kalkulator, komputer -> maszyna cyfrowa Jakość maszyny cyfrowej wielkość pamięci operacyjnej, szybkość wykonywania operacji matematycznych i logicznych, dopuszczalny zakres liczb podczas obliczeń, dokładność wykonywania podstawowych działań arytmetycznych na liczbach rzeczywistych Zastosowanie do obliczeń w elektronice np.: - analiza obwodów (Spice) - analiza sygnałów 3

Zagadnienia omawiane na wykładzie: 1. Zapis liczb w komputerach 2. Metody rozwiązywania układów równań liniowych: - metody dokładne: dekompozycji LU, - metody iteracyjne: Jacobiego, Gaussa-Seidla 3. Wybrane metody przybliżonego wyznaczania rozwiązań równania algebraicznego: bisekcji, regula falsi, siecznych, stycznych, iteracji prostej 4. Aproksymacja funkcji: interpolacja, aproksymacja 4

Zapis liczb w komputerach Sem. 2 EiT, 2014/2015 5

Każdą liczbę zastosowaną do obliczeń w komputerach należy przedstawić w postaci dogodnej do wykonywania operacji matematycznych Przyjmujemy, że zapiszemy liczby w postaci określonych wartości, które będą występować lub nie, w zależności od pewnej wagi. Jako wagę można zastosować wartości: 0 (nie) lub 1 (tak). Wartości, które wybierzemy do reprezentacji liczb, powinny stanowić jakiś logiczny ciąg, np. 2 0, 2 1, 2 2, 2 3, 2 4,, 2 n Jest to system dwójkowy, p = 2 Liczba 10 zapisana w systemie dziesiętnym, w systemie dwójkowym zostanie zapisana jako: 1 0 1 0 Jaką największą liczbę mogę zapisać? Jaką najmniejszą liczbę mogę zapisać? 1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 8 + 2 = 10 Czy mogę zapisać 2,5? Konieczne jest ustalenie, co w danym rejestrze jest zapisane, oczywiście symbolicznie, w maszynie cyfrowej występuje tylko zapis wartości: 0 i 1 Przyjęto, że każdy element zapisany w maszynie cyfrowej jest nazywany bitem. 6

Zapisanie liczby o większej wartości, liczby ułamkowej, liczby ujemnej wymaga stworzenia odpowiedniego systemu zapisu liczb. W naszym przykładzie, przy 4 bitach, można zapisać liczby od 0 do 15, ale co 1. Większy zakres liczb możemy uzyskać zwiększając liczbę bitów. Liczby ułamkowe możemy uzyskać wprowadzając zapis dla części całkowitej i ułamkowej. Liczby dodatnie i ujemne można uzyskać wprowadzając dodatkowy bit na znak. Co zrobić, żeby uzyskać odpowiednią dokładność? Od czego ona zależy? 7

Liczby w komputerach są zapisywane w postaci: stałopozycyjnej (stałoprzecinkowej), zmiennopozycyjnej (zmiennoprzecinkowej). Zapis liczby w komputerze w postaci bitów, np. słowo 32-bitowe, 16-bitowe,. Reprezentacja stałopozycyjna Do zapisu liczby stałoprzecinkowej przeznaczamy z góry określoną liczbę bitów, a pozycję przecinka ustala się arbitralnie, w zależności od wymaganej dokładności: S = s c n 1 c 1 c 0 c 1 c 2 c m+1 c m c i 0,, p 1, s +, p podstawa, s znak System dziesiętny p = 10, system dwójkowy (binarny) p = 2 Przyjmujemy, że p = 2, więc c i 0,1 i = n-1, n 2,., - m + 1, - m Słowo 7-bitowe możemy zapisać w postaci: część całkowita 4 bity (n = 4), 1 bit na znak, część ułamkowa 2 bity (m = 2) 0 znak +, 1 znak. 8

S = s c n 1 c 1 c 0 c 1 c 2 c m+1 c m c i 0, 1, s 0, 1 Liczba dodatnia S = 0(c n 1 2 n 1 + c n 2 2 n 2 + + c 0 2 0 + c 1 2 1 + c 2 2 2 + +c m 2 m ) Przykład część całkowita część ułamkowa Na część całkowitą przeznaczono 4 bity (n = 4), na część ułamkową 2 bity (m = 2) S = s c 3 c 1 c 0 c 1 c 2 c i 0, 1, s 0, 1 Liczba dodatnia s = 0, wartość maksymalna to: 0 1111 11 czyli 0(1 2 3 + 1 2 2 + 1 2 1 + 1 2 0 + 1 2 1 + 1 2 2 ) = +15,75 Symbol reprezentuje przecinek 9

Liczba dodatnia s = 0, najmniejsza wartość większa od zera to: 0000 01 czyli 0(0 2 3 + 0 2 2 + 0 2 1 + 0 2 0 + 0 2 1 + 1 2 2 )= + 0,25 Wniosek: można zapisać liczby od 15,75 do + 15,75, ale tylko co 0,25 Przykładowa liczba: s = 1 1011 10 1 (1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 + 1 2 1 + 0 2 2 )= 11,50 Podziału na część całkowitą i ułamkową dokonuje programista. Przy ustalonej liczbie bitów trzeba bardzo precyzyjnie określić: część całkowitą (liczbę bitów na część całkowitą) i część ułamkową (liczbę bitów na część ułamkową), żeby uzyskać we wszystkich obliczeniach (operacjach matematycznych) wymagany zakres liczb. Przy ustalonej liczbie bitów Zwiększanie części ułamkowej powoduje zmniejszenie zakresu liczb, natomiast zwiększanie części całkowitej, to zmniejszanie dokładności (precyzji). 10

Reprezentacja zmiennopozycyjna Do zapisu liczby zmiennopozycyjnej stosujemy następujący zapis: Z = ( 1) s M W gdzie: s 0,1 M - mantysa, W - cecha, s znak, 0 znak +, 1 znak. Mantysa M jest znormalizowana, liczba ułamkowa. Jeżeli M jest stałe, a zmienia się W, to przesunięciu ulega przecinek stąd nazwa tej reprezentacji liczb. 11

Z = ( 1) s M W s = 0 znak +, s = 1 znak Mantysa Przeznaczamy na mantysę n bitów M = 1 + m n 1 2 1 + m n 2 2 2 + m n 3 2 3 + m 1 2 n+1 + m 0 2 n m i 0, 1 część ułamkowa Cecha Przeznaczamy na cechę n bitów W = w n 1 2 n 1 + w n 2 2 n 2 + w n 3 2 n 3 + w 0 2 0 w i 0, 1 12

Reprezentacja zmiennopozycyjna Sposób zamiany Należy zapisać liczbę 99,00 (system dziesiętny) w systemie binarnym (p = 2) zmiennopozycyjnym: Najbliższa potęga 2, o wartości mniejszej od 99, to 2 6 = 64, s = 0, znak " + " Obliczamy ułamek: 99 64 Zapis mantysy (6 bitów): 0,546875 x 2 = 1,09375 1 0,09375 x 2 = 0,1875 0 0,1875 x 2 = 0,375 0 0,375 x 2 = 0,75 0 0,75 x 2 = 1,50 1 0,5 x 2 = 1,0 1 Z = ( 1) s M W = 1,546875 będziemy zapisywać liczbę w postaci: (1 + 0,546875) 64, M = 1 + 0,546875 cecha W = 2 6 s 0,1 Zapis cechy (7 bitów): 64:2 = 0 32:2 = 0 16:2 = 0 8:2 = 0 4:2 = 0 2:2 = 0 1 1 znak cecha W =2 6 Zapis liczby mantysa 0 1000000 100011 M = 1 + m 5 2 1 + m 4 2 2 + m 3 2 3 + m 2 2 4 + m 1 2 5 + m 0 2 6 = 1,546875 W = w 6 2 6 + w 5 2 5 + w 4 2 4 + w 0 2 0 = 64 Z = 0 1 + 1 2 1 + 0 2 2 + 0 2 3 + 0 2 4 + 1 2 5 + 1 2 6 [(1 2 6 + + 0 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 0 2 1 + 0 2 0 )] = = +1,546875 64 = +99 13

Na zapisanie liczby 99 przeznaczono: 1 bit na znak, siedem bitów na cechę, sześć bitów na mantysę. Przy ograniczaniu liczby bitów, zapis liczby będzie niedokładny, z błędem. Przykładowo: 1 bit na znak, siedem bitów na cechę, pięć bitów na mantysę, wtedy: 0 1000000 0 10001 Z = 0 1 + 1 2 1 + 0 2 2 + 0 2 3 + 0 2 4 + 1 2 5 (2 6 ) = = 1,53125 64 = + 98 Błąd bezwzględny: 99-98 = 1, błąd względny 1/99 = 1,01% 1 bit na znak, siedem bitów na cechę, cztery bity na mantysę, wtedy: 0 1000000 0 1000 Z = 0 1 + 1 2 1 + 0 2 2 + 0 2 3 + 0 2 4 (2 6 ) = = 1,5 64 = 96 Błąd bezwzględny: 99-96 = 3, błąd względny 3/99 = 3,03% A co spowoduje ograniczanie liczby bitów na cechę? 14

Dokładność zapisu liczby zależy od mantysy, a zakres liczby od cechy. 15

Błędy w obliczeniach 16

BŁĘDY W OBLICZENIACH Błąd bezwzględny definiuje się w obliczeniach jako różnicę między dokładną (na ogół nieznaną) wartością liczbową x a jej wartością przybliżoną otrzymaną jako wynik rozwiązania pewnego zadania obliczeniowego, δ = x x W celu określenia dokładności obliczeń określa się zwykle graniczny (tzn. maksymalny) błąd bezwzględny δ M = max x x wyrażany w jednostkach wielkości obliczanej, lub graniczny błąd względny ε M = x x x wyrażany w postaci ułamka lub procentu wartości obliczanej wielkości. 17

Rozpatruje się trzy główne przyczyny powstawania niedokładności w trakcie realizacji obliczeń: błędy danych wejściowych, błędy obcięcia, błędy zaokrągleń. Błędy danych wejściowych powodowane są przez skończoną długość słowa stosowanego w maszynie cyfrowej (skończoną dyskretną reprezentację liczb stosowanych w obliczeniach komputerowych) i związaną z tym w konsekwencji niemożliwością przedstawienia wartości rzeczywistej w postaci dokładnego zapisu liczbowego. 18

Reprezentacja stałopozycyjna S = s c n 1 c 1 c 0 c 1 c 2 c m+1 c m c i 0, 1, s 0, 1 Powtórka Liczba dodatnia S = 0 (c n 1 2 n 1 + c n 2 2 n 2 + + c 0 2 0 + c 1 2 1 + c 2 2 2 + +c m 2 m ) część całkowita część ułamkowa Do zapisu liczby stałoprzecinkowej przeznaczamy z góry określoną liczbę bitów, a pozycję przecinka ustala się arbitralnie, w zależności od wymaganej dokładności Przykład Na część całkowitą przeznaczono 4 bity (n = 4), na część ułamkową 2 bity (m = 2) Liczba dodatnia s = 0, wartość maksymalna to: 1111 11 czyli Symbol reprezentuje przecinek 0 (1 2 3 + 1 2 2 + 1 2 1 + 1 2 0 + 1 2 1 + 1 2 2 ) = +15,75 19

Reprezentacja stałopozycyjna Należy zapisać liczbę 0,48 (system dziesiętny) w systemie binarnym, jako liczbę stałopozycyjną: Założenie Zapis liczby w systemie binarnym p = 2 1 bit na znak, cztery bity na część całkowitą, 2 bity na część ułamkową Część całkowita: 0000 Zapis liczby w systemie binarnym Sposób zamiany Część ułamkowa 0,48 x 2 = 0,96 0 0,96 x 2 = 1,92 1 0,92 x 2 = 1,84 1 0,84 x 2 = 1,68 1 0 0000 01 Wartość w systemie dziesiętnym: 0 0 2 1 + 1 2 2 = 0,25 Wniosek: nie ma możliwości zapisania dokładnie wartości 0,48 w przyjętym systemie zapisu: znak, 4 bity na część całkowitą i 2 bity na część ułamkową Błąd bezwzględny 0,48 0,25 = 0,23, błąd bezwzględny 0,23/0,48 = 47,9% Błąd danych wejściowych 20

Reprezentacja stałopozycyjna Należy zapisać liczbę 16,50 (system dziesiętny) w systemie binarnym stałopozycyjną: Założenie Część całkowita: 16:2 reszta 0 8:2 reszta 0 4:2 reszta 0 2:2 reszta 0 1 reszta 1 Zapis: 10000 Zapis liczby w systemie binarnym 1 bit na znak, cztery bity na część całkowitą, 2 bity na część ułamkową Sposób zamiany Część ułamkowa: 0,50 x2 = 1,0 1 0,0 x 2= 0 0 Zapis: 10 Nie można zapisać tej liczby w założonym systemie zapisu (cztery bity na mantysę), liczba wymaga pięciu bitów na mantysę. Można zapisać tylko liczbę 15,75 Błąd bezwzględny 16,50 15,75 = 0,75, błąd bezwzględny 0,75/16,50 = 4,5% Błąd danych wejściowych 21

Reprezentacja stałopozycyjna Należy zapisać liczbę (system dziesiętny) w systemie binarnym stałopozycyjną: 11,60 Założenie Część całkowita: Zapis liczby w systemie binarnym Znak, cztery bity na mantysę, 2 bity na cechę Sposób zamiany Część ułamkowa: 11:2 reszta 1 5:2 reszta 1 2:2 reszta 0 1 reszta 1 Zapis: 1011 Wartość w systemie dziesiętnym: 0,60 x2 = 1,2 1 0,2 x 2= 0,4 0 Zapis: 10 Zapis liczby w systemie binarnym: 1011 10 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 + 1 2 1 + 0 2 2 = 11,50 Wniosek: nie ma możliwości zapisania dokładnie wartości 11,60 w przyjętym systemie zapisu, znak, 4 bity na część całkowitą i 2 bity na część ułamkową Błąd bezwzględny 11,60 11,50 = 0,10, błąd bezwzględny 0,10/11,60 = 0,86% Błąd danych wejściowych 22

Działania na liczbach w systemie dwójkowym 1 + 0 = 1 1 + 1 = 10 1 * 0 = 0 1 * 1 = 1 10 1 = 1 23

Dodawanie liczb stałopozycyjnych Zasady dodawania: 0+0 = 0, 1+0 = 1, 0+1 = 1, 1+1 = 10 Należy dodać liczby 11,5 i 3,5 w systemie dziesiętnym i binarnym System dziesiętny: 11,5 + 3,5 = 15 Zamiana liczb na binarne, przyjmujemy, że liczby zostaną zapisane : W formacie 1 bit na znak, 4 bity na część całkowitą, 2 bity na część ułamkową Część całkowita Liczba 11 11:2 1 5:2 1 2:2 0 1 1 Liczba 3 3:2 1 1 1 0 0 0 0 Część ułamkowa 0,50 0,50 x 2 = 1 1 0,00 0 Liczba 3,5 0 0011 10 Liczba 11,5 0 1011 10 11,5 = 0 1 2 3 + 0 2 2 + 1 2 1 +1 2 0 + (1 2 1 + 0 2 0 ) 3,5 = 0 0 2 3 + 0 2 2 + 1 2 1 +1 2 0 + (1 2 1 + 0 2 0 ) 24

Dodawanie Liczba 11,5 0 1011 10 Liczba 3,5 0 0011 10 Suma 0 1111 00 11,5 + 3,5 = 0 1 2 3 + 1 2 2 + 1 2 1 +1 2 0 + (0 2 1 + 0 2 0 ) = +15 Liczby zostały dodane prawidłowo, nie występuje błąd 25

Zadanie Należy dodać liczby zapisane w systemie dziesiętnym (jest to przeliczenie skali): T F = 32 + 9 5 T C W systemie binarnym liczby te należy zapisać jako liczby całkowite: Przeliczamy temperaturę T c = 100. 9/5 = 1,8 1,0 obcięcie 2,0 zaokrąglenie T F = 32 + 9 5 T C 132 232 Wynik poprawny 212 Jeżeli zmienimy kolejność działań, czyli T F = 32 + 9 T C 5, to wynik będzie poprawny 9 100 = 900 900/5 = 180 T F = 32 +180 = 212 26

Wniosek W czasie wykonywania operacji matematycznych występują błędy danych wejściowych, błędy zaokrąglenia i obcięcia, które zależą od reprezentacji liczby w maszynie cyfrowej Na dokładność obliczeń wpływa również kolejność wykonywanych operacji matematycznych. 27

Standardy zapisu liczb w maszynach cyfrowych 28

Liczba w reprezentacji zmiennopozycyjnej o pojedynczej lub podwójnej precyzji (IEEE 754) jest zapisywana w rejestrach komputera jako liczba o podstawie p = 2 w postaci: Reprezentacja zmiennopozycyjna, pojedyncza precyzja (32 bity): znak cecha mantysa (1 bit) (8 bitów) (23 bity) numer bitu: 31 30 22 Reprezentacja zmiennopozycyjna, podwójna precyzja (64 bity): znak cecha mantysa (1 bit) (11 bitów) (52 bity) numer bitu: 63 62 51 29

Zapis liczby Z w standardzie IEEE 754 Z = ( 1) s E wartość stała M 2 s znak, jeżeli s = 0, to jest to liczba dodatnia, jeżeli s = 1, to jest to liczba ujemna, M mantysa, składa się z określonej liczby bitów, zapisywana jako ułamek binarny, E - cecha, składa się z określonej liczby bitów, zapisywana jako liczba. Pojedyncza precyzja: Z = ( 1) s M 2 E 127 M = 1. m 22 m 21 m 2 m 1 m 0 Zajmuje 23 bity: 0 (LSB), 22 (MSB) M = 1 + m 22 2 1 + m 21 2 2 + + m 1 2 22 + m 0 2 23 m przyjmuje wartości 0 lub 1 E zajmuje 8 bitów: 23 (LSB), 30 (MSB) 30

0 albo 1 2 7 2 0 Cecha, s 30 29 28 27 26 25 24 23 maksymalna wartość E = 255, czyli 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128, minimalna E = 0, czyli wykładnik może znak, 1 bit zmieniać się od -127 do +128 (2 127 do 2 128 ) cecha, 8 bitów 2 1 Mantysa, jeżeli wszystkie m są równe 0, to M = 1, jeżeli wszystkie m są równe 1, to M = 2 2 23 2 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 mantysa, 23 bity 31

Przykład: 0 00000111 11000000000000000000000 + 1,75 2 7 127 = +1,316554 10 36 + 7 0,75 znak cecha mantysa (1 bit) (8 bitów) (23 bity) numer bitu: 31 30 22 32

33