Tale rappresentazione è unica tranne se la parte frazionaria contiene infinite cifre

Documenti analoghi
Analisi degli errori

Rappresentazione dei dati reali e teoria degli errori. N. Del Buono

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Numeri reali. Un numero reale X può essere espresso nella forma. X = f x 10 E. X = 0,314 x 10 1

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof.

Rappresentazione binaria

Rappresentazione binaria

RAPPRESENTAZIONE DEI NUMERI IN UN CALCOLATORE

Corso di Matematica per la Chimica

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 10 Novembre 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 14 Novembre 2014

Conversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)

Rappresentazione dei numeri. Rappresentazione di insiemi numerici mediante insiemi finiti di stringhe di bit Problemi:

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

Codifica dell Informazione per il Calcolo Scientifico

Numeri reali. Sistema in virgola mobile (floating point)

Rappresentazione dei Numeri

Corso di Laurea in Matematica Analisi Numerica (1 mod., 6 crediti, 48 ore, a.a , lez.5)

Numeri fixed point. La rappresentazione dei numeri interi: i numeri fixed point. Rappresentazione fixed point di un intero positivo N

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

Numeri con segno ed in virgola

Sistemi di Numerazione Binaria

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Informatica Generale 02 - Rappresentazione numeri razionali

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

Sistemi di Numerazione Binaria

Calcolatori: Sistemi di Numerazione

Sistemi di Numerazione Binaria

L Aritmetica del Calcolatore

Rappresentazione dell' informazione. Cenni, necessari per capire le caratteristiche dei tipi di dato e delle limitazioni dell'aritmetica del computer

Rappresentazione dei numeri reali in un calcolatore

Numeri floating point

Codifica dell informazione numerica

OPERAZIONI SUI NUMERI FINITI

OPERAZIONI SUI NUMERI FINITI

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

Sistemi di Numerazione Binaria a i b i. a m a m-1... a 0. a -1 a a -k

Codifica. Rappresentazione di numeri in memoria

Gli errori nella risoluzione di un problema

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

Lezione 1. Rappresentazione dei numeri. Aritmetica dei calcolatori. Rappresentazione dei numeri naturali in base 2

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

Analisi Numerica: Aritmetica di macchina

Rappresentazione dei Numeri in Virgola Mobile Valeria Cardellini

UD 1.2e: La codifica Digitale dei Numeri CODIFICA DIGITALE DEI NUMERI

Modulo 1: Le I.C.T. UD 1.2e: La codifica Digitale dei Numeri

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

Rappresentazione dei dati

Unità aritmetica e logica

Calcolatori Elettronici

Operazioni artimetiche

Richiami sulla rappresentazione dei numeri

Rappresentazione dei Dati

Fundamentals of Computer Science

Rappresentazione numeri reali

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

Codifica dell informazione numerica. Matteo Re, Nicola Basilico,

Rappresentazione dei dati

Informazione binaria: - rappresentazione dei numeri razionali -

Rappresentazione delle informazioni

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

La codifica digitale

Definizione di errore

Rappresentazione dei numeri reali

Architetture dei Calcolatori (Lettere

Problema numerico. Relazione funzionale chiara e non ambigua tra dati iniziali e la soluzione. Dati iniziali e soluzione sono due vettori finiti

Aritmetica dei Calcolatori Elettronici

Introduzione. Introduzione

Tracce di calcolo numerico 1

Lezione 3. I numeri relativi

Algebra di Boole e porte logiche

Operazioni sui binari

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

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Aritmetica dei Calcolatori

Elaborazione aut. dei dati

ALGORITMI GENERALITÀ (ADATTO A RISOLVERE UNA CLASSE DI PROBLEMI) OTTIMALITÀ (RISPETTO AL TEMPO, AL NUMERO DI OPERAZIONI, ALLA STABILITA, )

Aritmetica dei Calcolatori

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

Rappresentazione dei numeri reali in un calcolatore

Rappresentazione in virgola mobile Barbara Masucci

Rappresentazione dei numeri reali in un calcolatore

Calcolo numerico e programmazione Rappresentazione dei numeri

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2014/2015

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Rappresentazione dell informazione

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Corso di Fondamenti di Informatica Rappresentazione dei dati numerici Aritmetica dei registri Anno Accademico 2011/2012 Francesco Tortorella

Rappresentazione di numeri reali

Rappresentazione dei dati in memoria

Rappresentazione dei numeri reali

Esercizi su aritmetica di macchina, analisi dell errore e programmazione in ambiente MATLAB

Codifica di informazioni numeriche

Somma di numeri binari

Lezione 2. Rappresentazione dell informazione

La codifica dei numeri

Algebra di Boole e porte logiche

Transcript:

Analisi degli errori Sistemi di numerazione I sistemi di rappresentazione numerica sono posizionali: ogni cifra occupa una posizione corrispondente ad una potenza della ase del sistema adottato. Sistema decimale (ase 0) 058,5 0 4 + 0 0 3 + 0 + 5 0 + 8 0 0 + 5 0 - Sistema inario (ase ) (000,) 4 + 0 3 + 0 + + 0 0 + - (8,5) 0 Sistema esadecimale ( ase 6) (A) 6 6 + 0 6 + 6 0 (673) 0 Le cifre di questi sistemi sono : decimale: 0,,, 9 inario:0, esadecimale: 0,,, 9, A, B, C, D, E, F Quindi, scelta una ase ogni reale a può essere scritto: a ± (amn m + am-n m- + + a0 + a-n - + ) 0 a i N - Tale rappresentazione è unica tranne se la parte frazionaria contiene infinite cifre consecutive a-k N -. Una rappresentazione equivalente è quella di considerare il nuovo numero ottenuto sopprimendo la successione e aggiungendo un'unità all'ultima cifra rimasta. Per esempio nel sistema decimale 0, 7999 9 e 0, 73 rappresentano lo stesso numero. Formazione numerica - 4.0.0 - Appunti y Daisy83

Per la rappresentazione dei numeri in diverse asi si ha il seguente teorema: Sia N,, R, 0 e Z, {a i} i,, a i N : ± i a i i e 0 a i -, a 0, a i definitivamente - Rappresentazione numerica in un calcolatore Poiché in un calcolatore lo spazio di memoria è finito, la sommatoria precedente può estendersi fino a t (numero finito): t ± a i i i e t < L e U Aiamo due tipi di rappresentazione: Rappresentazione in virgola fissa Sono fissati il numero di cifre N che rappresenta il numero e il numero di cifre prima e dopo la virgola N, N : N N + N Ad esempio: N 0, N 4, N 6 7,35 007 35000 0,04 0000 04000 Quindi, se N sono le posizioni di memoria ed una è per il segno, N - k - per la parte intera e k per quella decimale, si ha: N s ( ) k j dove è la ase ed s è scelto in ase al segno di. 0 a j j Formazione numerica - 4.0.0 - Appunti y Daisy83

Rappresentazione in virgola moile In questo caso la posizione della virgola di un numero decimale non è fissa ma è data dall'esponente. R si può scrivere come: (-) s m e con m R Tale rappresentazione non è unica. Infatti: m e m' e- m'' e+ m m' m, m'' Tale rappresentazione si dice normalizzata se: - m < In tal caso chiamiamo m mantissa ed e esponente (caratteristica) di. (-) s m e, m.aa at Lo spazio riservato ad ogni R è: t N, 0 a i -, 0 m t -, L < e < U s e m L'insieme dei numeri la cui mantissa è rappresentaile da t cifre e la cui caratteristica è compresa tra L ed U, che sono interi che variano per ogni calcolatore è detto insieme dei numeri macchina. F F(t,, L, U) {0} { R : t ± a i i i e } poiché 0 ha una rappresentazione particolare. F è un insieme finito e numeraile: card F + ( - ) t- (U - L + ) Per memorizzare e spesso si agisce nel seguente modo: fissato L si memorizza e * e - L che è sempre non negativa, tenendo presente che il numero è memorizzato a meno di L. Formazione numerica - 4.0.0 - Appunti y Daisy83 3

In un calcolatore a 3 it si hanno 3 it per la mantissa, it per il segno e 8 it per l'esponente: L -7, U +7, -7 e 7 0 e * 55. Il più grande e il più piccolo numero rappresentaili sono: min (.) -7-7 -8 ma (. ) 7 8 3 3 i 3 infatti: (. ) ( ) i 3 Camiando l'ultimo it della mantissa per min si ha: 3 7 + min + -50 che è una differenza molto piccola. Camiando l'ultimo it della mantissa per ma si ha: ((. ) - -3 ) 7 ma - 04 che è una differenza molto grande. Quindi è meglio rappresentare numeri piccoli. Un numero decimale per essere rappresentato nel computer, viene convertito in inario. Tale conversione può comportare una rappresentazione approssimata. Per vedere ciò vediamo come si opera tale conversione. Formazione numerica - 4.0.0 - Appunti y Daisy83 4

Si hanno due casi: ) numero maggiore di. Si divide per due: se c'è il resto si mette altrimenti 0 e si assegnano potenze di due crescenti. Esempio: 37 8 9 4 0 0 0 0 3 0 4 5 (000) (37) 0 ) numero minore di. Si divide per /, ovvero si moltiplica per. Se il prodotto è minore di uno si ha 0 altrimenti. Quando il numero diventa maggiore di uno si sottrae procedendo come prima. 0, 0,4 0,8,6 0,6, 0, 0,4 0,8,6 0,6 0-0 - -3-4 0-5 0-6 -7-8 (0,) 0 ( 00) Si ha quindi una rappresentazione finita in decimale e una rappresentazione approssimata in inario: errore di arrotondamento. Formazione numerica - 4.0.0 - Appunti y Daisy83 5

Conversione da ase 0 a ase qualunque Sia n un numero in ase 0, vogliamo convertirlo in un numero in ase N. Sia n (aj j ) + (aj- j- ) + + (a ) + (a0 0 ) (aj aj- a a0) Dividendo n per si ha: n a (a j j- ) + (a j- j- ) + + (a 0 0 ) + dove n 0 < n n n 0 + a 0 Quindi a 0, l'ultima cifra della rappresentazione, è il resto intero di n/. Per ottenere la penultima cifra si divide n 0/: n 0 (aj j- ) + + (a 0 ) + a n + a Il procedimento si arresta ad aj tale che nj 0. Esempio: 74 (a9a8a7 aa0) (0000) Nell'aritmetica in virgola moile (floating point) si ha il prolema: dato R come scegliere fl() F {0} { R : t ± a i i i e } Si fanno i seguenti casi: ) e < L underflow fl() 0 "warning" ) e > U overflow segnale di errore e arresto del programma. Formazione numerica - 4.0.0 - Appunti y Daisy83 6

3) L e U i) a m 0, m t + F ii) F, fl() e si ha: a) chopping o troncamento: si esclude la parte destra della t-esima cifra fl() t ± a i i e fl() < ) rounding o arrotondamento a a t + e ± +... + + +... t t+ a fl() a a ± +... + α + t - t e t - t a con αt fl() a t k + 0 a t + a < / t+ cioè si aggiunge t e si tronca alla t-esima cifra. Poiché le mantisse dei numeri macchina p, che sono - p <, non hanno più di t cifre, la distanza tra le due mantisse di macchina consecutive è -t. Quindi se p, p >0, se p è consecutivo a p si ha: p p + -t Quindi con a) tutti tali p vengono sostituiti con p e quindi p p < -t, invece con ) tutte t le mantisse in ( p, p + ) sono sostituite con p e tutte le mantisse in ( p + t, p ) con p. Pertanto se p è la mantissa associata a p si ha: p p t. Formazione numerica - 4.0.0 - Appunti y Daisy83 7

Quindi, per l'errore assoluto si ha: fl( ) t e t e chopping rounding Per l'errore relativo: fl() t + t + chopping rounding L'errore relativo generalmente è più importante. Calcolo A: 0,5 0-4, c 0,4 0-4 EA 0, 0-4 ER 0, 0% Calcolo B: 5000, c 4950 EA 50 E R 0,0 % Si definisce precisione o epsilon di macchina il sup dell'errore relativo, cioè: ε M t + t + chopping rounding Non ha senso cercare delle approssimazioni con precisione inferiore ad ε M. Formazione numerica - 4.0.0 - Appunti y Daisy83 8

Distriuzione dei numeri in floating point I numeri in floating point non sono equispaziati ma si addensano in prossimità del più piccolo numero rappresentaile. La spaziatura tra due, F è almeno β - εm ed al più vale ε M se ε M β -t All'interno dell'intervallo [β e, β e+ ] i punti sono invece equispaziati e la loro distanza è β e-t. Quindi ogni volta che si aumenta (o diminuisce) e di una unità si ha un aumento (o una diminuzione) di un fattore β della distanza tra numeri consecutivi. Per questo si prediligono asi piccole. Il fenomeno (woling precision) ha quindi un andamento oscillatorio: Altra fonte di errori: il risultato di operazioni aritmetiche non può essere un numero di macchina. fl(), y fl(y) se: op y F si deve definire op il cui risultato appartiene ad F: op y fl( op y) valida se non c'è overflow. Ad esempio nel caso della somma: si rendono uguali gli esponenti, si sommano le mantisse in accumulatore con m cifre, si aggiustano gli esponenti. Ciò può portare alla non validità delle proprietà commutativa, distriutiva ed associativa della somma e della moltiplicazione. Formazione numerica - 4.0.0 - Appunti y Daisy83 9

Esempio: 4 cifre per la mantissa 0,5055 0 4, i 0,4000 0 0 i,, + 0,5055 0 4 + 0,00004 0 4 0,50554 0 4 0,5055 0 4 i i e quindi i 0,5055 0 4 i Se invece si fa: i 0,4 0 e i i + i i 0,5055 0 4 + 0,0004 0 4 0,5059 0 4 i Per sommare molti numeri dello stesso segno si devono sommare dal più piccolo al più grande per minimizzare la propagazione degli errori. Formazione numerica - 4.0.0 - Appunti y Daisy83 0

Diagramma di flusso per il calcolo di ε ε è il più piccolo numero per cui si ha + ε > ε i ε/ v + ε si v > ε ε + STOP Codice fortran: PROGRAM EPSMAC C CALCOLO APPROSSIMATO DI ε EPS EPS EPS / EPS EPS + IF (EPS.GT.) GOTO EPS + EPS END Condizionamento e stailità Formazione numerica - 4.0.0 - Appunti y Daisy83

Consideriamo il prolema: trovare tale che F() d, dove d è il dato o i dati da cui dipende la soluzione, ed F, relazione funzionale che lega e d. Diremo che tale prolema è en posto se, per un certo dato, la soluzione esiste, è unica e dipende con continuità dai dati. La dipendenza continua dei dati significa che piccole perturazioni su dati danno luogo a piccole variazioni della soluzione, dove "piccolo" può essere inteso in senso relativo o assoluto. D'altronde aiamo visto che si commettono errori sia nel rappresentare i numeri reali, sia nell'esecuzione di operazioni aritmetiche. Nascono a questo punto due prolemi: ci si chiede ) alterando i dati del prolema di quanto si altera la soluzione; ) come si propagano gli errori. Il primo prolema è connesso con la dipendenza continua dai dati della soluzione e può essere stimato con il numero di condizionamento del prolema, numero che non dipende dall'uso dell'aritmetica finita del calcolatore ma dal tipo di prolema. Supponiamo di alterare di δd i dati del prolema precedente e ci chiediamo di quanto si altera la soluzione: d + δd + δ Diremo numero di condizionamento relativo: K δ δd / / d Se 0, d 0 si calcola il numero di condizionamento assoluto: K ASS δ / δd Se K è grande il prolema è mal condizionato. Se un prolema è en posto ma K è grande asta riformulare il prolema. Il secondo prolema dipende dalla stailità dell'algoritmo. Ricordiamo che per algoritmo intendiamo una successione di passi che trasformi un vettore di dati in un corrispondente output. Ad ogni prolema numerico si possono associare più algoritmi. Un algoritmo è staile se la propagazione degli errori, dovuti all'aritmetica di macchina, è limitata. Un algoritmo è più staile di un altro se in esso l'influenza degli errori è minore. Quale delle quattro operazioni può provocare una perdita di precisione? Aiamo detto che i risultati di operazioni aritmetiche tra numeri di macchina in generale non sono Formazione numerica - 4.0.0 - Appunti y Daisy83

numeri di macchina. L'operazione di macchina associa a due numeri di macchina un terzo numero di macchina. Indichiamo con + / le operazioni di macchina: a + fl( a + ) ( a + )( + ε ) a - fl( a - ) ( a - )( + ε ) a fl( a ) ( a )( + ε 3) a / fl( a / )( + ε 4) dove a fl(a) e fl(), εi eps εm Esaminiamo l'errore relativo: [ ] ( op ) ( op ) ( op ) ( + ε ) op + ε prodotto: + ε + ε divisione: / op ( ) ( + ε ) ( ) ( ) ε + ε + ε ε ε ε ε + ε ε ε ε somma algerica: ( ) [ ( ) ( )] + + ε + + ε ε ε + + + i + per + 0 Formazione numerica - 4.0.0 - Appunti y Daisy83 3

Errore assoluto ed errore relativo nelle quattro operazioni: δ * - * δ ε * * * operazione err. ass. err. rel. + δ + δ ε + ε + + - δ - δ ε + ε * δ - δ ε + ε δ / δ ε - ε Osservazioni: + e - : nessun prolema per l'errore assoluto, ma si ha un errore relativo grande se * : ok per l'errore relativo, l'errore assoluto dipende dall'ordine di grandezza dei fattori /: ok per l'errore relativo, l'errore assoluto è grande se 0 Cancellazione Esempio: f() + con sei cifre decimali per la mantissa ~ f() f() 0,440 0,444 0,54340,54347 0 4,99000 4,98756 0 3 5,8000 5,8074 0 4 50,0000 49,9988 0 5 00,000 98,3 Le cifre sottolineate sono affette da errore. Per 0 5 l'informazione è persa. Per evitare l'errore commesso nel calcolare la differenza di numeri vicini si può procedere così: f() ( ) ( + )( + + ) + + + Altro esempio: p() a + + c + + + + + Formazione numerica - 4.0.0 - Appunti y Daisy83 4

4ac, a + 4ac a Algoritmo staile: a,,c >0 + 4ac 4ac a a c a c a Stampa, STOP Schema di Hörner (nested multiplication) Si vuole eseguire il calcolo di: f() a 3 + + c + d. Sono necessarie tre somme e sei moltiplicazioni per un totale di 9 operazioni floating point (9 flops). In generale per f() an n + an- n- + + a + a0 ricorrono n somme e n ( n + ) n moltiplicazioni, per un totale di n + ( n + ) n( n + 3) n flops Se invece si applica lo schema di Horner: f() a 0 + (a + (a + + (a n- + a n) )) otteniamo n somme e n moltiplicazioni: #flops n Formazione numerica - 4.0.0 - Appunti y Daisy83 5

Formazione numerica - 4.0.0 - Appunti y Daisy83 6