I numeri reali e la loro rappresentazione

Documenti analoghi
Codifica. Rappresentazione di numeri in memoria

Rappresentazione dei numeri reali in un calcolatore

Aritmetica dei Calcolatori Elettronici

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Numeri in virgola mobile

Sistemi di Numerazione Binaria

La codifica. dell informazione

Sistemi di Numerazione Binaria

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Lezione 3. I numeri relativi

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Rappresentazione dei dati in memoria

I.4 Rappresentazione dell informazione

Rappresentazione dei Numeri

Informatica di Base - 6 c.f.u.

La codifica. dell informazione

Calcolo numerico e programmazione Rappresentazione dei numeri

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Sistemi di numerazione

Utilizzata per rappresentare numeri frazionari nella. numero =(mantissa) 2 esponente. Il formato piu utilizzato e quello IEEE P754, rappresentato

Rappresentazione numeri reali

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Somma di numeri binari

Rappresentazione dell informazione

codifica in virgola mobile (floating point)

La codifica binaria. Informatica B. Daniele Loiacono

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Rappresentazione dei numeri interi in un calcolatore

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

12BHD - Informatica - soluzioni Appendice B del quaderno di testo - v. 1.05

Rappresentazione e Codifica dell Informazione

Rappresentazione dei Dati

Caratteristiche di un linguaggio ad alto livello

Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari Russo ing. Saverio

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Rappresentazioni numeriche

Codifica binaria. Rappresentazioni medianti basi diverse

Esercitazione n. 5. Rappresentazione dei numeri

Esercizi di Analisi Numerica. Errori, Cambi di base, Numeri macchina, Aritmetica finita

Corso di Calcolo Numerico Informatica e Comunicazione Digitale - Taranto A.A. 2015/2016

Rappresentazione in virgola mobile

Esercitazione del 09/03/ Soluzioni

Esercitazione del 2/3/2010- Numeri binari e conversione

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

La codifica digitale

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Lezione 7 Standard IEEE-754 per le operazioni floating-point

Transcript:

I numeri reali e la loro rappresentazione 1 Alcune figure di questi appunti riportano nei commenti esempi in linguaggio MATLAB. In tali esempi i caratteri di peso normale sono prodotti dal computer mentre i caratteri in grassetto sono battuti dall operatore. I caratteri >> sono il prompt del sistema, ossia indicano che MATLAB è in attesa di istruzioni. Ad esempio la sequenza seguente: >> whos significa che MATLAB attendeva ordini e che l operatore ha battuto il comando whos. MATLAB (MATrix LABoratory) è un sistema interattivo basato sul calcolo matriciale per uso scientifico e tecnico. Oltre al trattamento di matrici è in grado di trattare polinomiali, equazioni differenziali e altre applicazioni. Funzionalità aggiuntive sono rese possibili mediante l installazione di toolbox addizionali. La Homepage di MATLAB è http://www.mathworks.com/ Un sistema simile a MATLAB, di tipo Open Source (ossia gratuito), è Scilab (http://www.scilab.org/). La sintassi di Scilab è molto simile a quella di MATLAB. In particolare, negli esempi che seguono i comandi da dare sono identici, tranne dove esplicitamente dichiarato. L output di Scilab è leggermente diverso. Il prompt di Sscilab è -->.

Classi di numeri (irrazionali) 2 NUMERO FINITO DI RELATIVI infiniti razionali infiniti irrazionali 2 Ogni classe esterna (più ampia) include le classi interne: ad esempio i numeri relativi comprendono anche i numeri naturali. In ogni classe più esterna sono possibili le operazioni delle classi interne, più altre: nella classe dei razionali è sempre possibile la divisione (eccetto che con denominatore nullo), che con i relativi non è sempre possibile. Le classi di numeri vengono comunemente identificate con i simboli seguenti: Naturali: N Relativi: Q Razionali: Z Reali: R Paaina 2

Interi (positivi): 10 simboli Notazione posizionale cifra più significativa cifra meno significativa + + + + + + b = 2,3, a i = 0,,b-1 3 Il numero è la combinazione lineare di tanti numeri di una cifra, ognuno moltiplicato per un peso che è una potenza della base. Posizionale : il peso di una cifra dipende dalla posizione in cui si trova la cifra. Le cifre più a sinistra sono più significative (hanno un peso maggiore). Gli interi negativi hanno la stessa rappresentazione, con l aggiunta del simbolo -. Paaina 3

Numeri interi: rappresentazione in basi diverse!"!"!" Una cifra esadecimale equivale a quattro cifre binarie (bit). # $ 10 =#$ 2 =#$ 16 4 Nelle rappresentazioni in basi diverse da 10 si usano: per i primi numeri (zero, uno, ) le stesse cifre usate per la rappresentazione decimale; se la base è >10 si aggiungono, in coda al 9, le prime lettere dell alfabeto latino (A, B, ). Per capire che una sequenza di cifre rappresenta un numero in una base b si usa la notazione (cifre ) b, dove il numero b è sempre scritto in base 10. Se la base non è indicata si sottintende b=10. La rappresentazione binaria (base 2) è quella usata intrinsecamente nei computer. Le cifre binarie (che sono solo lo 0 e 1) dono chiamate BIT (Binary unit). Una cifra esadecimale corrisponde a quattro bit. Quindi rappresentazione in base 2 e in base 16 sono equivalenti purché si usi un numero di bit multiplo di 4. La notazione in base 16 è pertanto una comune rappresentazione, utilizzante 16 simboli, dei numeri in un computer. In effetti in un computer l informazione è comunemente organizzata in byte (o ottetti). Un byte è una sequenza di 8 cifre binarie, per cui un byte corrisponde a due cifre esadecimali il cui valore va da (00) 16 a (FF) 16 (ossia da 0 a 255). In MATLAB il comando dec2hex(n) converte un numero intero positivo da base 10 a base 16. Esempio: >> dec2hex(17) ans = 11 Paaina 4

Rappresentazione posizionale dei numeri razionali = + π cifra più significativa % + + + = + + + + % =% Non tutti i numeri razionali sono rappresentabili con un numero finito di cifre. = % cifra meno significativa I numeri irrazionali: Non sono rappresentabili con un numero finito di cifre. Non hanno periodo. periodo 5 Nella rappresentazione di un razionale è essenziale il simbolo di separazione fra le parte intera (a sinistra) e la parte frazionaria (a destra). Tale simbolo è spesso il carattere. (punto), tuttavia alcuni software possono richiedere il carattere, (virgola), ad esempio Excel in edizione italiana e se opportunamente configurato. MATLAB accetta solo il punto. Paaina 5

Numeri razionali: rappresentazione in basi diverse!"!" % % % %!" % =% Un numero può essere finito in una base e periodico in un altra. 6 Paaina 6

Notazione esponenziale Notazione esponenziale = % = % = % = % CIFRE SIGNIFICATIVE Esponenziale normalizzata = % =0 0 MANTISSA ESPONENTE!" " b = 2,3, a i = 0,,b-1 a 1 0 7 Paaina 7

Numero di macchina È un numero reale rappresentato da N cifre (N prefissato). Esempio: N = 4 (b = 10) a i = 0,,9 $ $ %&'(! ) # " * %&" +! ) = 0,01 " ' = 99,99 -. " = 0,1 10-4 = 0,0001, $$ Esponente - 4 " ' = 0,999 10 5 = 99900 8 Paaina 8

L insieme dei Numeri di macchina I numeri di macchina, comunemente rappresentati in virgola mobile, costituiscono un insieme limitato e finito di razionali. UNDERFLOW!, Errore di arrotondamento, OVERFLOW!, 0 "!- " " 0,1 &"%,) " 2 0,1 &"%,), &"%,)!- " '/ Con i numeri di macchina gli errori di rappresentazione sono inevitabili! 9 Paaina 9

Precisione: zero macchina e epsilon macchina Quante più cifre si dedicano all esponente tanto più aumenta il campo di variazione dei numeri di macchina. Quante più cifre si dedicano alla mantissa tanto più aumenta la precisione. In particolare: 1. Diminuisce lo zero macchina ( reale minimo ): minimo numero positivo rappresentabile; 2. Diminuisce l epsilon macchina ( precisione di macchina ): minimo numero positivo che sommato a 1 fornisce un risultato diverso da 1: 1 + ε M > 1 1 + ε M = 1 2 10 Paaina 10

Numeri di macchina: lo standard IEEE 754 32 bit S(egno) 8 bit,/ 23 bit $$ $ $ S(egno) 11 bit 64 bit 52 bit,/ $$ # $ % * '-") 11 Lo Standard 754, emesso da IEEE (Institute of Electrical and Electronics Engineers) è equivalente allo standard internazionale ISO/IEC 60559, Binary floating-point arithmetic for microprocessor systems. Prevede diversi formati, di cui quello doppia precisione è il più usato, ad esempio da software come MATLAB/Scilab ed Excel. Nel formato doppia precisione il 1 bit (il più significativo) vale 0 se il numero è positivo, 1 se negativo. Gli 11 bit successivi contengono l esponente EXP. Dei 2048 valori possibili (fra 0 e 2047) di questi 11 bit i valori da 1 a 2046 sono utilizzati per rappresentare EXP-1023. I valori 0 e 2047 servono a rappresentare situazioni speciali quali +INF (Infinito positivo, risultato ad esempio di un overflow), -INF (Infinito negativo), NaN (Not a Number, risultato ad esempio di una divisione 0/0). Paaina 11

Numeri di macchina, MATLAB e Excel (alcuni comandi MATLAB per evidenziare effetti liminali dei numeri di macchina). realmin (determina il minimo intero positivo rappresentabile) realmax (determina il massimo intero) eps (determina epsilon macchina) format long e (output con 15 cifre decimali purché non tutte =0) format hex (output evidenziato come 8 cifre esadecimali) format (torna a default) (con EXCEL è possibile costruire epsilon macchina). 12 === Scilab ====================== Il comando realmin è sostituito da number_properties("tiny") Il comando realmax è sostituito da number_properties( huge") La variabile eps si chiama %eps Il comando format ha una sintassi differente, ad esempio: certi limiti) -->format( v,12) (usa 12 simboli al massimo, formato esponenziale oltre -->format( e,12) (usa 12 simboli, formato esponenziale sempre) (non esiste l equivalente di format hex ). Per maggiori dettagli vedere l help di sistema. Paaina 12

Propagazione degli errori 13

Propagazione degli errori nelle operazioni elementari Volendo effettuare operazioni fra numeri reali, si opera in realtà sui loro rappresentanti di macchina. Ciò ha per conseguenza che gli errori di arrotondamento dei numeri su cui si opera producono errori di arrotondamento sul risultato dell operazione. Relazione fra un numero reale x e il suo rappresentante di macchina fl(x): x fl( x ) ε x = fl( x ) = x( 1 ε x ) x ε x < ε M 14 Paaina 14

Esempio: errore di moltiplicazione fl(xy) fl(x) fl(y) ε xy = '3 1 &"%')&"%3) '3 ε xy = '3 1 '%4 ε x )3%4 ε y ) '3 = ε x 5ε y 4 ε x ε y ε x 5ε y Nel prodotto l errore relativo non viene amplificato. 15 Paaina 15

Errore nella somma: cancellazione numerica fl(x+y) fl(x)+fl(y) ε x+y = '531 %'%4ε x )53%4ε y )) '53 ε x+y = 'ε x 53ε y '53 Nella somma l errore relativo può essere notevolmente amplificato. Ciò accade se x+y x 0 16 Paaina 16

Cancellazione numerica con MATLAB a=2; b=eps; c=a + 2*b; d=a +b +b; (nell algebra comune risulta d=c!) (si verifica che c>d) a=2^28; b=2^(-26); si verifica che: a+b a b < 0 (a+b) (a+b) = 0 (a b) (a b) = 0 a b a+b > 0 17 Per verificare che c>d (1 esempio) basta battere: >> c-d Si ottiene un numero positivo (maggiore di realmin). Con Scilab ricordarsi di usare %eps al posto di eps. Paaina 17

Instabilità di un algoritmo Algoritmo: Sequenza organizzata di operazioni su alcuni dati, per ottenere un risultato. Es: algoritmo per effettuare la divisione fra due numeri. Instabilità: Fenomeno per cui un algoritmo amplifica gli errori sui dati. Esistono alcuni algoritmi instabili, che per loro natura amplificano gli errori. 18 Paaina 18

Esempio di algoritmo instabile Successione per approssimare π: z 2 = 2; z n+1 = 2 n-1/2 1 2 1 4 n z 1 n n = 2,3, La successione z 2, z 3, z 4,... converge a π. L errore diminuisce nelle prime 16 iterazioni, poi aumenta nuovamente. 19 Un programma MATLAB per verificare le prime 21 iterazioni può essere il seguente: >>z(2)=2; >>for n=2:20;z(n+1)=2^(n-1/2)*sqrt(1-sqrt(1-4^(1-n)*z(n)^2));end >>format long e;errore=z-pi (viene visualizzato un vettore errore di 21 valori che contiene gli errori alle varie iterazioni). === Scilab ====================== lo stesso programma in Scilab: --> z(2)=2; --> for n=2:20;z(n+1)=2^(n-1/2)*sqrt(1-sqrt(1-4^(1-n)*z(n)^2));end --> format('e',12);errore=z-%pi Paaina 19

Sensitività (condizionamento) di un problema Esistono problemi per loro natura sensibili a variazioni dei dati. Esempio, risolvere l equazione: (x-2) 2 = 10-6 Soluzione: x = 2 ±10-3 alteriamo il secondo membro: (x-2) 2 = 4 10-6 Soluzione: x = 2 ± 2 10-3 20 Paaina 20

Conclusioni 1. Nelle computazioni gli errori sono sempre presenti (finitezza della rappresentazione su elaboratore) 2. Utilizzare algoritmi stabili per evitare di propagare gli errori 3. Esistono problemi sensibili alle variazioni sui dati (problemi mal condizionati) che vanno trattati con particolare attenzione. 21 Paaina 21