Estratto del documento

Rappresentazione dei numeri al calcolatore,

aritmetica dei calcolatori e analisi degli errori

Riassunto strutturato per lo studio

Corso di Calcolo Numerico A.A. 2025/2026

prof.ssa Marina Popolizio

1 Gli errori nel calcolo numerico

Il calcolatore ha memoria nita: non può memorizzare né gli inniti numeri reali, né le innite

cifre di un numero reale. Questo genera una discrepanza tra il risultato ottenuto "carta e penna"

e quello calcolato dal computer. Il calcolo numerico studia questi errori e la loro propagazione.

Si distinguono due classi di errori:

1. errori analitici;

2. errori di rappresentazione.

1.1 Errori analitici

Gli errori analitici si generano quando il metodo utilizzato risolve esattamente il problema solo a

seguito di un procedimento al limite. I metodi iterativi (per sistemi lineari, equazioni non lineari,

autovalori) generano una successione di approssimazioni che converge alla soluzione esatta

{x }

solo per . Poiché non è possibile eseguire innite iterazioni, l'algoritmo si arresta dopo

k

⋆ → ∞

x k

un numero nito di passi, ottenendo un'approssimazione : l'assunzione di al posto di

K x x

introduce un errore, tanto più grande quanto più è distante da .

K K

⋆ ⋆

x x x

Lo studio di questi errori dipende dal metodo specico utilizzato. Anche il calcolo delle

K

funzioni elementari tramite sviluppo in serie di Taylor è soggetto a errori analitici, poiché la

somma innita deve essere troncata a un numero nito di termini:

K

∞ ∞

k k 2k+1

x (−1) x

X X

exp(x) = , sin(x) =

k! (2k + 1)!

k=0 k=0

Le versioni troncate sono K K

k k 2k+1

(−1) x

x X

X

exp (x) = , sin (x) =

K

K k! (2k + 1)!

k=0 k=0

e per quanto grande sia , l'errore non si annulla mai del tutto, ma decresce

| −

K exp(x) exp (x)|

rapidamente aumentando (come mostrato per : l'errore passa da con

K −1

·

K exp(1) 7.18 10 K = 1

a con ).

−14

·

5.06 10 K = 15

1.2 Errori di rappresentazione

I numeri reali sono inniti, mentre la memoria del calcolatore è nita: ciò rende impossibile la

rappresentazione esatta dei numeri reali con innite cifre decimali (es. ). Si memorizza quindi

π

solo un'approssimazione del numero, introducendo un .

errore di rappresentazione

1

1.3 Misurazione dell'errore: errore assoluto ed errore relativo

Al posto del valore teorico si dispone quasi sempre di un'approssimazione . Per misurare la

x x̃

bontà dell'approssimazione si denisce:

L' è

Denizione. errore assoluto |x −

e (x) = x̃|

A

nel caso scalare, oppure nel caso vettoriale/matriciale (dove è una norma).

∥x − ∥ · ∥

e (x) = x̃∥

A

L'errore assoluto non è sempre una misura adeguata poiché dipende fortemente dall'ordine

di grandezza del dato: risulta più elevato se è grande, più contenuto se è piccolo (es.:

x x

, ; , ; l'errore assoluto

⇒ ⇒

x = 1000000 x̃ = 1000000.5 e = 0.5 y = 2 ỹ = 2.1 e = 0.1

suggerirebbe erroneamente che approssima meglio di quanto approssimi ).

A A

ỹ y x̃ x

Si preferisce quindi l' , che misura l'errore in rapporto alla gran-

Denizione. errore relativo

dezza in esame. Se :

̸

x = 0 (oppure nel caso vettoriale)

|x − ∥x −

x̃| x̃∥

e (x) =

R |x| ∥x∥

Nell'esempio precedente: e , da cui si deduce correttamente

e (x) = 0.0000005 e (y) = 0.05

che approssima meglio di quanto approssimi .

R R

x̃ x ỹ y

2 La rappresentazione dei numeri al calcolatore

I calcolatori rappresentano i dati in modo diverso rispetto alla notazione umana, per due aspetti

principali: uso di una base dierente (binaria) e utilizzo di un numero nito di cifre. Ogni valore

immesso in notazione decimale viene convertito internamente in binario, elaborato con aritmetica

binaria, e riconvertito in decimale per l'utente.

2.1 La rappresentazione normalizzata

Un numero decimale ha una parte intera e una parte decimale. I numeri molto grandi o piccoli

si rappresentano convenientemente come prodotto tra una mantissa e una potenza della base

(es. ). Questa rappresentazione non è unica: moltiplicando e dividendo per la base

9

·

x = 3.4 10

elevata a un esponente si sposta la virgola.

Tra le rappresentazioni possibili, la è quella in cui:

rappresentazione normalizzata

la parte intera del numero è nulla;

ˆ la prima cifra dopo la virgola è diversa da zero.

ˆ (Teorema di rappresentazione in base) Dato un numero reale non nullo e un intero

Teorema. x

(base), si può rappresentare come

β 0 x E

± ·

x = 0.d d d . . . β

1 2 3

dove è detto , è la , sono le

caratteristica parte esponente cifre della

E

E β d , d , d , . . .

, con le proprietà: 1 2 3

mantissa

1. ;

∈ {0, −

d 1, . . . , β 1}

i

2. ;

̸

d = 0

1

3. le cifre non sono denitivamente uguali a .

d β 1

i 2

"Normalizzato" indica quindi che la parte intera è zero e non ci sono zeri iniziali nella

mantissa, poiché lo spostamento della virgola è assorbito dall'esponente.

I due obiettivi ottenuti con la normalizzazione sono:

numeri di diversa grandezza occupano la stessa quantità di memoria (rappresentazione

ˆ omogenea);

si evita di sprecare memoria per cifre non signicative (zeri) nei numeri molto piccoli o

ˆ molto grandi.

La parte esponente è una potenza della base usata (10 in decimale, 2 in binario). Le basi più

usate: Base Nome Cifre

β

2 Binaria ∈ {0,

d 1}

8 Ottale i ∈ {0,

d . . . , 7}

10 Decimale i ∈ {0,

d . . . , 9}

16 Esadecimale i ∈ {0, }

d . . . , 9, A, . . . , F

i

2.2 I numeri macchina

I calcolatori usano sempre una rappresentazione normalizzata. Tuttavia esistono limiti sul nume-

ro di cifre della mantissa e sui valori minimo/massimo dell'esponente. Si indica con l'insieme

nito dei numeri macchina, caratterizzato da 4 costanti: F

base della rappresentazione

β : numero di cifre della mantissa

t :

 valore minimo della caratteristica

m : E

valore massimo della caratteristica

M : E

quindi . Formalmente:

= t, m, M )

F F(β, E

{x ∈ ± · ̸ ∪ {0}

t, m, M ) = : x = 0.d d . . . d β , d = 0}

F(β, R 1 2 t 1

con , , . Lo zero va aggiunto separatamente poiché

−m ≤ ≤ ∈ {0, −

m, M > 0 E M d . . . , β 1}

non ammette rappresentazione normalizzata. Ogni numero macchina è detto anche numero in

i

(oating point) ed è univocamente caratterizzato da: base, segno, cifre della

virgola mobile

mantissa, caratteristica. Intuitivamente, la caratteristica denisce la grandezza del numero, la

mantissa il dettaglio.

: la retta reale non è tutta rappresentabile (limiti sulla caratteristica impedi-

Proprietà di

scono numeri troppo grandi/piccoli); all'interno dell'intervallo rappresentabile, solo un sottoin-

F

sieme nito di numeri è rappresentabile (la numerosità dipende dalle cifre di mantissa). Tra due

numeri macchina consecutivi esistono inniti numeri reali non rappresentabili.

Se e sono gli estremi della caratteristica, il numero positivo di valore assoluto massimo

−m M

e minimo rappresentabili sono: −m M

· ·β −

x = 0.1 β , x = 0. dd . . . dd , d = β 1

min max | {z }

t

La distanza tra un numero macchina e il successivo

E E

· ·

x = β (0.d d . . . d d ) y = β

(con ) è: 1 2 t−1 t

˜ ˜

(0.d d . . . d d ) d = d + 1

1 2 t−1 t t t E−t

y x = β

Ne consegue che i numeri oating point sono molto addensati vicino a e sempre più radi

x

verso . min

x

Esaminando l'insieme (numeri binari, mantissa di 2 cifre, esponente )

max −2 ≤ ≤

2, 2, 2) E 2

si confermano le seguenti proprietà generali:

F(2, 3

1. l'insieme è discreto;

2. i numeri rappresentabili sono solo una piccola parte di ;

R

3. la distanza tra due numeri macchina consecutivi non è costante.

Per memorizzare un numero macchina servono posizioni di memoria per la caratteristica, per

il segno e per la mantissa: . In binario ogni numero è una stringa di bit

± E E . . . E d d . . . d

(binary digit); un byte è un gruppo di 8 bit.

1 2 n 1 2 t

Generalmente non si usa una cella per il segno della

Shifting (oset) della caratteristica.

caratteristica: si ricorre alla rappresentazione in shifting (oset). Dati e (con −m ≤ ≤

m M E

), si memorizza il valore invece di , ottenendo valori da a . Esempio:

M E + m + 1 E 1 M + m + 1

se , si memorizza (valore 1 per , no a 254 per ).

∈ −126

E [−126, 127] Ē = E + 127 E = E = 127

Nella rappresentazione binaria, poiché implica necessariamente ,

Bit nascosto. ̸

d = 0 d = 1

la cifra viene omessa (bit nascosto). Si usa quindi: 1 1

d

1 E E

±(1 · ±1.d ·

x = + 0.d d . . . d ) 2 = d . . . d 2

1 2 t 1 2 t

per cui il numero eettivo di cifre disponibili per la mantissa è e non .

t + 1 t

L' (o "precisione di macchina", "unit roundo", simbolo ) è il

Denizione. epsilon machine ϵ

più piccolo numero macchina positivo tale che sommato a 1 dia un risultato maggiore di 1; è la

distanza tra 1 e il successivo numero macchina.

Poiché e , si ricava:

1 1

·β ·

1 = 0.1 00 . . . 0 1 + ϵ = 0.1 00 . . . 0 1 β

| {z } | {z }

t−1 t−2

1 1−t 1−t

· ·

ϵ = 0. 00 . . . 0 1 β = 1 β = β

| {z }

t−1

Un algoritmo semplice per calcolare genera la successione

ϵ U = 1, U = U /β, U =

no a che : 1 2 1 3

U /β, . . . 1 + U = 1

2 Algoritmo 1 (Calcolo precisione di macchina)

1. U = 1.0

2. mentre :

(1 + U ) > 1

(a) U = U

mem

(b) U = U/β

3. U = U mem

2.3 Lo standard IEEE-754

Le architetture moderne usano base binaria ( ) con tre modalità di rappresentazione: singola

β = 2

precisione (32 bit, 4 byte), doppia precisione (64 bit, 8 byte), mezza precisione (16 bit, 2 byte,

usata soprattutto nei processori graci). Secondo lo standard IEEE-754:

Precisione Segno Caratteristica Mantissa Tot.

Mezza 1 5 10 16

Singola 1 8 23 32

Doppia 1 11 52 64

Valori caratteristici per le tre precisioni: 4

Precis. RealMin RealMax

m M t ϵ

Mezza 14 15 11 −14 −5 −10 −10

15 4

· ≈ · − · ≈ · ≈

1.0 2 6.1035 10 (2 2 ) 2 6.5504 10 2 9.7656

Singola 126 127 24 −126 −38 −23 −23

127 38

· ≈ · − · ≈ · ≈

1.0 2 1.1755 10 (2 2 ) 2 3.4028 10 2 1.1921

Doppia 1022 1023 53 −1022 −308 −52 −52

1023 308

· ≈ · − · ≈ · ≈

1.0 2 2.2251 10 (2 2 ) 2 1.7977 10 2 2.2204

Il numero decimale equivale in binario al

Esempio della rappresentazione di 0.1. (0.1)

, cioè omettendo la prima

numero periodico 10

−3 −4

· ·

= (0.1100 2 ) (1.1001100 2 )

(0.00011001100)

cifra della mantissa. In singola precisione, con rounding, si rappresenta con segno 0, caratteristica

2 2 2

(essendo ), e la mantissa corrispondente, impacchettati in 4 byte. La

−4

Ē = E + 127 = 123 E =

mantissa completa 1.10011001100110011001101 equivale in decimale a ,

−4

·

1.600000023841858 2

cioè: (singola precisione)

f l(0.1) = 0.100000001490116

che dierisce da 0.1 a causa della rappresentazione binaria periodica non memorizzabile esatta-

mente. In doppia precisione:

−4 ̸

f l(0.1) = 1.600000001·2 = 0.1000000000000000055511151231257827021181583404541015625 = 0.1

migliore approssimazione, ma comunque aetta da errore.

2.4 Trasformazione di numeri reali in numeri oating-point

Dato un numero reale , occorre stabilire quale elemento associargli commet-

x x̃ t, m, M )

tendo il minor errore possibile. F(β,

Overow e underow.

Se si tenta di memorizzare un numero con caratteristica maggiore di , si genera un

ˆ E M

errore di (numero troppo grande in valore assoluto).

overow

Se si tenta di memorizzare un numero con caratteristica minore di , si genera un

ˆ −m

E

errore di (numero troppo piccolo in valore assoluto); in questi casi solitamente

underow

si restituisce zero, poiché il calcolatore non distingue valori troppo piccoli da zero.

Per rappresentare con caratteristica in ma con mantissa di più di cifre, occorre

x [−m, M ] t

una funzione che associ a uno dei numeri macchina disponibili. Le

f l(x) : t, m, M ) x

due funzioni principali sono:

R F(β, Dato , la funzione

Denizione. Troncamento (chopping). E

±0.d ·

x = d . . . d d . . . β

chop(x) considera solo le prime cifre: 1 2 t t+1

t E

± ·

x̃ = chop(x) = 0.d d . . . d β

1 2 t

Errore assoluto e relativo del chopping: E−t E−t

·

e (chop(x)) = 0.d d . . . β < β

t+1 t+2

A −

x chop(x) 1−t

e (chop(x)) = < β

R x

(poiché , essendo ). L'errore relativo non dipende dalla grandezza del numero,

E−1

|x| ≥ ̸

β d = 0

solo dal numero di cifre della mantissa: più cifre in mantissa, minore l'errore relativo. L'errore

1

assoluto invece cresce con la caratteristica , coerentemente col fatto che i numeri macchina

E

sono più densi per valori piccoli e più radi per valori grandi.

5

Associa a il numero macchina più vicino tra

Denizione. Arrotondamento (rounding). x x̃

i due candidati e :

E E−t

·

x̃ = 0.d . . . d β x̃ = x̃ + β

1 1 t 2 1

se β

d < : round(x) = x̃ = chop(x)

t+1 1

2

se β E−t

d : round(x) = x̃ = chop(x) + β

t+1 2

2

Errore assoluto e relativo del rounding:

E−t 1−t

1 1

≤ ≤

e (round(x)) β , e (round(x)) β

A R

2 2

Il rounding introduce quindi un errore mediamente inferiore rispetto al chopping, ma può in casi

estremi causare overow (cosa che non avviene con il chopping).

In generale, per l'operazione (chopping o rounding):

Errori ed epsilon machine. f l(x) chopping

( 1−t

− β = ϵ

x f l(x) rounding

e (f l(x)) = u, u =

R 1 1

1−t

x β = ϵ

2 2

L'uguaglianza vale solo con rounding e con .

E

·

x = 0.d . . . d d β d = β/2

1 t t+1 t+1

Denendo (con ), si ottiene la relazione fondamentale:

f l(x) x |δ | ≤

δ = u

x x

x |δ | ≤

f l(x) = x(1 + δ ), u

x x

dove dipende da: base , numero di cifre della mantissa, tipo di trasformazione (chopping o

u β t

rounding).

2.5 L'aritmetica dei calcolatori

Poiché i calcolatori usano l'insieme nito e non , anche l'aritmetica risulta dierente da

quella reale. Somma di due numeri macchina si eettua incolonnandoli con lo stesso esponente;

F R

il risultato può avere più cifre di mantissa di quante siano memorizzabili, e va quindi convertito

nuovamente in numero macchina (chopping/rounding), introducendo un errore.

non implica . Questa situazione è comune

Denizione. Non chiusura di : ∈ ∈

x̃, ỹ x̃ + ỹ

alla maggior parte delle operazioni.

F F F

Il risultato di un'operazione macchina si scrive come: |δ| ≤

f l(x̃ + ỹ) = (x̃ + ỹ)(1 + δ), u

Le operazioni macchina corrispondenti alle 4 operazioni elementari si indicano con .

⊕, ⊖, ⊙, ⊘

Indicando con un'operazione in aritmetica reale (precisione innita) e con la corrispondente

⋄ ⋄

operazione di macchina: ⋄ ⋄ ⋄ |δ| ≤

x̃ ỹ = f l(x̃ ỹ) = (x̃ ỹ)(1 + δ), u

Questa è detta o .

aritmetica di macchina aritmetica in virgola mobile

Proprietà dell'aritmetica reale non più valide nell'aritmetica di macchina:

Associatività della somma:

ˆ a + (b + c) = (a + b) + c

Associatività del prodotto:

ˆ a(bc) = (ab)c

Distributività del prodotto rispetto alla somma:

ˆ a(b + c) = ab + ac

Legge di cancellazione della somma:

ˆ ⇒

a + b = a + c b = c

6

Legge di cancellazione del prodotto:

ˆ ̸ ⇒

ab = ac, a = 0 b = c

Legge di semplicazione:

ˆ a(b/a) = b

L'elemento neutro per l'addizione non è unico

ˆ L'elemento neutro per il prodotto non è unico

ˆ

Un esempio numerico (con e chopping) mostra che :

⊕ ⊕ ̸ ⊕ ⊕

3, 2, 2) x (y z) = (x y) z

calcolando si ottiene , mentre dà , contro il risultato teorico esatto

F(10,

⊕ ⊕ ⊕ ⊕

x (y z) 26.8 (x y) z 26.7

evidenza concreta della non associatività della somma in aritmetica di macchina.

26.857

2.6 Propagazione degli errori: condizionamento dei problemi

È importante studiare la sensibilità dei problemi agli err

Anteprima
Vedrai una selezione di 11 pagine su 50
Calcolo numerico  Pag. 1 Calcolo numerico  Pag. 2
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 6
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 11
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 16
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 21
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 26
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 31
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 36
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 41
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Calcolo numerico  Pag. 46
1 su 50
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Paolonzo05 di informazioni apprese con la frequenza delle lezioni di Calcolo numerico e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Bari o del prof Popolizio Marina.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community