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
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.