1 - RappresentazioneNumeri 2
1 - RappresentazioneNumeri 2
1
Introduzione
Argomenti trattati
1 Introduzione al corso
3 Stabilità e condizionamento
Condizionamento
Stabilità
2
Introduzione
Introduzione al corso
Sul portale della didattica, nella sezione Materiale didattico del corso, saranno
messi a disposizione alcuni esercizi proposti, la maggior parte dei quali con
soluzione.
3
Introduzione
Introduzione al corso
Ricevimento studenti
Su appuntamento (previo accordo telefonico o tramite e-mail).
Articolazione corso
Il corso si compone di lezioni ed esercitazioni in aula e di esercitazioni di
laboratorio.
Durante le lezioni di laboratorio sarete divisi in tre squadre. Fate
riferimento alla pagina degli avvisi sul portale della didattica, per la
suddivisione in squadre.
4
Introduzione
Introduzione al corso
Modalità d’esame
6
Introduzione
Introduzione al corso
`ϑ00 + g ϑ = 0
7
Introduzione
Introduzione al corso
8
Introduzione
Introduzione al corso
9
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio:
Base β = 10:
3 caratteristica
| {z } ·10
123.4567 ⇒ 0. 1234567
mantissa
(Argomenti di ripasso) 10
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione
Ricordiamo che
0.789 = 7 · 10−1 + 8 · 10−2 + 9 · 10−3
(sistema posizionale)
(Argomenti di ripasso) 11
Introduzione
Rappresentazione dei numeri sul calcolatore
Su un calcolatore, fissiamo:
1 β ∈ N+ , β ≥ 2, la base del sistema di numerazione (tipicamente β = 2);
2 t ∈ N+ , numero di cifre di mantissa a disposizione sul calcolatore per
rappresentare ciascun numero;
3 L < 0 e U > 0, limiti entro cui può variare la caratteristica.
L’insieme dei numeri rappresentabili su tale calcolatore è chiamato insieme dei
numeri macchina (floating-point) ed è denotato F(β, t, L, U).
x = ±0.d1 d2 . . . dt β e
(Argomenti di ripasso) 12
Introduzione
Rappresentazione dei numeri sul calcolatore
Formalmente,
Equivalentemente,
( t
)
s
X −i e
F(β, t, L, U) = {0} ∪ x ∈ R : x = (−1) di β ·β
i=1
(Argomenti di ripasso) 13
Introduzione
Rappresentazione dei numeri sul calcolatore
β −1 = mmin ≤ m ≤ mmax = 1 − β −t
................
.
.
.
mmin = 0. 1 0 0 0 .
.
.
.
................
0 0 0 0 = β −1
1 2 3 4 t−1 t
................
.
.
.
mmax = 0. β−1 β−1 β−1 β−1 .
.
.
.
................
β−1 β−1 β−1 β−1 = 1 − β −t
1 2 3 4 t−1 t
(Argomenti di ripasso) 14
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione (Denormalizzazione)
Dalla relazione precedente di deduce che non è possibile rappresentare alcun
numero (a parte lo zero) minore in valore assoluto di xmin .
Per aggirare questa limitazione lo standard IEEE754 prevede una
rappresentazione denormalizzata.
Quando la caratteristica e è pari al valore minimo L, la condizione d1 6= 0 può
essere abbandonata e quindi vengono accettate mantisse comprese tra β −t e
β −1 − β −t .
(Argomenti di ripasso) 15
Introduzione
Rappresentazione dei numeri sul calcolatore
x = (−1)s m · β e , x̄ = (−1)s m̄ · β e
Errore assoluto:
Ea ≡ |x̄ − x|
Errore relativo:
|x̄ − x|
Er ≡ , x 6= 0
|x|
(Argomenti di ripasso) 16
Introduzione
Rappresentazione dei numeri sul calcolatore
Roundings to nearest
1 Round to nearest, ties to even (Arrotondamento): approssima con il n.m. (numero di
macchina) più vicino; se il numero cade esattamente a metà strada tra due n.m. consecutivi,
approssima con quello con cifra meno significativa pari. È l’opzione di default in aritmetica
binaria.
2 Round to nearest, ties away from zero: approssima con il n.m. più vicino; se il numero cade esattamente a metà strada tra due
n.m. consecutivi, approssima con quello maggiore per numeri positivi, quello minore per numeri negativi.
Directed roundings
1 Round toward 0 (Troncamento): directed rounding towards zero (also known as truncation
or chopping).
2 Round toward plus Infinity: directed rounding towards positive infinity (also known as rounding up or ceiling).
3 Round toward minus Infinity: directed rounding towards negative infinity (also known as rounding down or floor).
(Argomenti di ripasso) 17
Introduzione
Rappresentazione dei numeri sul calcolatore
Errori commessi
Osservazione
Le mantisse dei numeri macchina sono separate di passi uniformi pari a β −t .
Infatti due mantisse consecutive hanno la forma
0.d1 d2 d3 . . . dt−1 dt
(Argomenti di ripasso) 18
Introduzione
Rappresentazione dei numeri sul calcolatore
Errori commessi
m − m1 < β −t ,
sempre positivo.
Arrotondamento: tutte le mantisse che cadono in
(m1 − 12 β −t , m1 + 12 β −t ) vengono approssimate con m1 . In questo modo
l’errore sulla mantissa risulta
1 −t
|m − m1 | ≤ β
2
e può essere sia positivo che negativo.
(Argomenti di ripasso) 19
Introduzione
Rappresentazione dei numeri sul calcolatore
(Argomenti di ripasso) 20
Introduzione
Rappresentazione dei numeri sul calcolatore
|x| = mβ e ≥ β −1 β e
|x̄ − x| β e−t
≤ e−1 < εm ≡ β 1−t , troncamento,
|x| β
1 e−t
|x̄ − x| β 1 1−t
≤ 2 e−1 ≤ εm ≡ β , arrotondamento.
|x| β 2
(Argomenti di ripasso) 21
Introduzione
Rappresentazione dei numeri sul calcolatore
(Argomenti di ripasso) 22
Introduzione
Rappresentazione dei numeri sul calcolatore
fl(x) − x
δ= ⇒ fl(x) = x(1 + δ)
x
Ricordiamo che si ha, dalla definizione di εm , |δ| ≤ εm
Si ha allora
fl(x) = x(1 + δ), |δ| ≤ εm .
(Argomenti di ripasso) 23
Introduzione
Rappresentazione dei numeri sul calcolatore
Standard IEEE
(Argomenti di ripasso) 25
Introduzione
Rappresentazione dei numeri sul calcolatore
Overflow e Underflow
(Argomenti di ripasso) 26
Introduzione
Rappresentazione dei numeri sul calcolatore
Definizione
Chiameremo operazione di macchina il risultato dell’operazione eseguita sui
numeri macchina seguita da un’approssimazione.
(Argomenti di ripasso) 27
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione
Queste relazioni mostrano che, prescindendo dagli eventuali errori di macchina
presenti nelle rappresentazioni degli operandi, l’errore relativo commesso
eseguendo operazioni di macchina non è mai superiore alla precisione di
macchina.
(Argomenti di ripasso) 28
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione
Non tutte le proprietà delle operazioni aritmetiche si conservano per le
operazioni di macchina. La proprietà commutativa per somma e prodotto si
conserva anche per le operazioni di macchina:
a ⊕ b = b ⊕ a, a ⊗ b = b ⊗ a,
a ⊕ (b ⊕ c) 6= (a ⊕ b) ⊕ c,
a ⊗ (b ⊗ c) 6= (a ⊗ b) ⊗ c,
a ⊗ (b ⊕ c) 6= (a ⊗ b) ⊕ (a ⊗ c),
(a ⊗ b) b 6= a,
(a b) ⊗ b 6= a,
(a ⊗ b) c 6= (a c) ⊗ b.
(Argomenti di ripasso) 29
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione
Inoltre per le operazioni di macchina può accadere che valga la relazione
(Argomenti di ripasso) 30
Introduzione
Rappresentazione dei numeri sul calcolatore
(Argomenti di ripasso) 31
Introduzione
Rappresentazione dei numeri sul calcolatore
Cancellazione numerica
(Argomenti di ripasso) 32
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio: Cancellazione 1
Si considerino i seguenti numeri:
(Argomenti di ripasso) 33
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio: (segue)
|fl(x2 ) − x2 | 0.800000 · 10−4
= ' 0.41881 · 10−6 < εm
|x2 | 0.19101708 · 103
Calcoliamo la differenza in macchina:
x1 − x2 = 0.264000 · 10−2
Errore relativo:
|(x1 x2 ) − (x1 − x2 )|
= 0.2424,
|(x1 − x2 )|
(Argomenti di ripasso) 34
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio: (segue)
Cos’è accaduto? Approssimando le mantisse di x1 e x2 si sono “buttate via” le
cifre che seguono la sesta (con un errore di approssimazione entro i limiti della
precisione di macchina).La differenza effettuata tra x1 e x2 ha però amplificato
molto la perdita di informazione dovuta all’approssimazione, fino a farla risalire
alla prima cifra significativa del risultato!
⇓
x1 x2 = 0.000002 · 103 = 0.200000 · 10−2 .
(Argomenti di ripasso) 35
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio: (segue)
Con arrotondamento?
(Argomenti di ripasso) 36
Introduzione
Rappresentazione dei numeri sul calcolatore
Osservazione
Nell’esempio precedente la sottrazione di macchina non introduce alcun errore
di approssimazione, ma fornisce il risultato esatto. Quindi la sottrazione non
genera problemi, ma amplifica errori di approssimazione già esistenti sugli
operandi.
(Argomenti di ripasso) 37
Introduzione
Rappresentazione dei numeri sul calcolatore
Esempio: Cancellazione 2
f (x0 + h) − f (x0 )
f 0 (x0 ) ' , h ”piccolo”
h
Sia f (x) = sin(x)
(Argomenti di ripasso) 38
Introduzione
Stabilità e condizionamento
(Argomenti di ripasso) 39
Introduzione
Stabilità e condizionamento
(Argomenti di ripasso) 40
Introduzione
Stabilità e condizionamento
x = f (d) (1)
Siano:
δd una perturbazione del dato d −→ dato d + δd
x̄ = f (d + δd) la soluzione esatta del problema con dato d + δd
x̃ la risposta dell’algoritmo al dato d + δd.
NB: generalmente x̄ 6= x̃
(Argomenti di ripasso) 41
Introduzione
Stabilità e condizionamento
Esempio:
Si consideri il problema di trovare la radice quadrata di un numero d assegnato:
√
x= d
(Argomenti di ripasso) 42
Introduzione
Stabilità e condizionamento
Condizionamento
Condizionamento
Domanda:
Le inevitabili perturbazioni sui dati del problema (δd) come si trasmettono sui
risultati, prescindendo dal particolare algoritmo che si vuole usare per
risolvere il problema?
Risposta:
(Argomenti di ripasso) 43
Introduzione
Stabilità e condizionamento
Condizionamento
Definizione (qualitativa!)
Un problema è ben condizionato se le perturbazioni sui dati non influenzano
eccessivamente i risultati.
(Argomenti di ripasso) 44
Introduzione
Stabilità e condizionamento
Condizionamento
(Argomenti di ripasso) 45
Introduzione
Stabilità e condizionamento
Condizionamento
x =a+b
x + δx = a + δa + b + δb
da cui si ottiene
δx = δa + δb
(Argomenti di ripasso) 46
Introduzione
Stabilità e condizionamento
Condizionamento
Esempio: (segue)
Pertanto
|x̄ − x| |δx| |δa + δb| |δa| |δb|
= = ≤ +
|x| |x| |a + b| |a + b| |a + b|
|a| |δa| |b| |δb|
= +
|a + b| |a| |a + b| |b|
Le costanti
|a| |b|
Ka = , Kb =
|a + b| |a + b|
sono i coefficienti di amplificazione delle perturbazioni relative |δa|
|a|
|δb|
|b|
per
questo problema. Possiamo prendere come numero di condizionamento
K = max(Ka , Kb ).
Com’è dunque il condizionamento del problema?
(Argomenti di ripasso) 47
Introduzione
Stabilità e condizionamento
Condizionamento
Esempio: (segue)
Si osserva che se a + b → 0, si ha Ka , Kb → ∞. Quindi il problema è mal
condizionato se a + b è piccolo.
Ma quando a + b è piccolo? Quando a e b sono vicini in modulo e di segno
opposto... in pratica la situazione in cui si verifica la cancellazione numerica!
Quindi la cancellazione numerica può essere interpretata come il mal
condizionamento della somma algebrica quando a + b è piccolo (rispetto a
ciascuno dei due addendi).
(Argomenti di ripasso) 48
Introduzione
Stabilità e condizionamento
Stabilità
Definizione (intuitiva)
Un algoritmo si dice numericamente stabile se la successione delle operazioni
di macchina non amplifica eccessivamente gli errori di arrotondamento.
In pratica, tutte le operazioni intermedie e il risultato finale dell’algoritmo
devono presentare un errore relativo controllabile con la precisione di
macchina.
(Argomenti di ripasso) 49
Introduzione
Stabilità e condizionamento
Stabilità
Definizione (quantitativa)
Se
kx̃ − x̄k
' εm
kx̄k
l’algoritmo si dice stabile
Partendo dagli stessi dati si possono avere algoritmi in cui l’errore finale è
dell’ordine della precisione di macchina (stabili), altri in cui ciò non avviene
(instabili).
(Argomenti di ripasso) 50