Sei sulla pagina 1di 50

Introduzione al Calcolo Numerico

Rappresentazione dei numeri sul calcolatore


Stabilità e condizionamento

Introduzione. Rappresentazione di numeri in


macchina, condizionamento e stabilità

Stefano Berrone
Sandra Pieraccini

Politecnico di Torino, Dipartimento di Scienze Matematiche


stefano.berrone@polito.it
sandra.pieraccini@polito.it
http://calvino.polito.it/~sberrone,
http://calvino.polito.it/~pieraccini

Metodi Numerici e Calcolo Scientifico


Ultimo aggiornamento: 28 settembre 2015

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Prerequisiti

È necessario ripassare (almeno) i seguenti argomenti:


1 Analisi

1 Sviluppo di Taylor per funzioni di una variabile


2 (utile come complemento) Sviluppo di Taylor per funzioni in
più variabili
2 Geometria
1 Algebra lineare
2 autovalori

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Bibliografia di riferimento e materiale didattico

1 G. Monegato, Metodi e algoritmi per il Calcolo Numerico, ed.


CLUT, 2008
2 S. Berrone, S. Pieraccini, Esercizi Svolti di Calcolo Numerico
con introduzione a MATLAB, ed. CLUT, 2004
Sul portale della didattica, nella sezione Materiale didattico del
corso, si trovano alcuni esercizi proposti, la maggior parte dei quali
con soluzione.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Ricevimento studenti e Articolazione del Corso


Ricevimento studenti
Su appuntamento (previo accordo telefonico o tramite e-mail,
sandra.pieraccini@polito.it, stefano.scialo@polito.it) presso il
Dipartimento di Scienze Matematiche, c.so Duca degli Abruzzi, 24,
III piano, salire dalle scale vicine all’aula 2.
Articolazione corso
Il corso si compone di Lezioni in aula e di esercitazioni di
Laboratorio.
Le lezioni in Laboratorio inizieranno la prima settimana di
corso e si effettueranno:
• Squadra 1 (Studenti con cognome A-L): lunedı̀ ore 13:00
presso LAIB3 (SEDE)
• Squadra 2 (Studenti con cognome M-Z): mercoledı̀ ore
13:00 presso LAIB3B (v. Boggio)
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Come ottenere MATLAB

http://www.areait.polito.it. Clik sul logo MathWorks o su


“Software per l’Ateno” e seguire le istruzioni per THE MathWorks
- Total Academic Headcount
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Modalità d’esame
L’esame consiste in due prove.
• Prova scritta:
- Darà diritto ad un punteggio fino a 25 punti
- Non è possibile consultare alcun tipo di materiale (libri, appunti,
tavole...)
- È consentito l’uso di una semplice calcolatrice
- I quesiti possono essere sia esercizi pratici che domande di
carattere teorico sull’intero programma svolto
• Test informatizzato in laboratorio:
- Darà diritto ad un punteggio fino a 7 punti
- La prova è costituita da un quiz con domande a risposta multipla
a cui rispondere con l’uso di MATLAB/OCTAVE, che potrà essere
utilizzato durante il test
- Non è possibile consultare alcun tipo di materiale (libri, appunti,
tavole...)
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore Perché studiare metodi numerici?
Stabilità e condizionamento

Perché studiare metodi numerici?


Moltissimi fenomeni (fisici, ingegneristici, sociologici,
economici...) possono essere descritti da un modello
matematico, ovvero da una ‘equazione’.
Generalmente - tranne che in pochi, particolarissimi casi -
questa ‘equazione’ non è risolvibile per via analitica o sarebbe
troppo ‘costoso’ individuare a ‘mano’ la soluzione.
I metodi numerici ci aiutano a trovare una soluzione
(approssimata), tramite un calcolatore, di molti modelli
matematici.
La matematica ci aiuta comunque a capire le caratteristiche
dei problemi da affrontare e la qualità dei metodi numerici.
Infatti non tutti i metodi numerici...
...possono sempre fornire una soluzione
...possono fornire una soluzione ugualmente accurata
...possono fornire una soluzione ugualmente accurata in
modo efficiente.
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore Perché studiare metodi numerici?
Stabilità e condizionamento

Cos’è un metodo numerico?


È un algoritmo1 con alcune proprietà teoriche (matematica) da
implementare su un calcolatore (informatica) per ottenere una
soluzione approssimata entro una accuratezza prefissata
(ingegneria).
Il Calcolo Scientifico unisce insieme tutti questi aspetti.
Ci occuperemo di:
descrivere alcuni metodi numerici e algoritmi per la risoluzione
di certe classi di problemi
descrivere le loro proprietà utili a scegliere un metodo
specifico tra diversi disponibili, tenuto conto di questioni di
robustezza, efficienza ed affidabilità
sapere come interpretare i risultati forniti dal calcolatore
quando applichiamo un metodo numerico.
1
Un algoritmo è una sequenza di istruzioni non ambigue, eseguite in tempo
finito
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore Perché studiare metodi numerici?
Stabilità e condizionamento

Organizzazione del corso (MNCS)

1 Rappresentazione numeri in macchina e conseguenze.


Stabilità e condizionamento (capitolo 1).
2 Sistemi lineari (capitolo 2, capitolo 3 tranne 3.2.4, 3.2.5,
3.2.6, 3.3.3, 3.3.4)
3 Interpolazione (capitolo 5 tranne 5.2.2, 5.4, 5.5, 5.6, 5.8, 5.9,
5.10)
4 Quadratura numerica (capitolo 7 paragrafi 7.1, 7.2, 7.7)
5 Equazioni non lineari (capitolo 6 tranne 6.2.5, 6.3, 6.4, 6.5)
6 Equazioni differenziali ordinarie (capitolo 8 paragrafi 8.1, 8.2)

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Il sistema floating point


Per saper interpretare i risultati resituiti da un calcolatore,
dobbiamo innanzitutto capire come opera il calcolatore stesso.

Fissiamo la base β di un sistema di numerazione, la


rappresentazione floating point (virgola mobile) normalizzata
di un numero reale consiste nell’usare una opportuna potenza di β
in modo da non avere né parte intera e né zeri dopo la virgola.
Esempio
Base β = 10:
3 caratteristica
123.4567 ⇒ 0. 1234567
| {z } ·10
mantissa

0.00789 ⇒ 0.789 · 10−2


0.6 ⇒ 0.6 · 100
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Osservazione
Ricordiamo che

0.789 = 7 · 10−1 + 8 · 10−2 + 9 · 10−3

(sistema posizionale)

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Il sistema floating point 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).

F(β, t, L, U) è quindi l’insieme dei numeri del tipo


x = ±0.d1 d2 . . . dt β e
con mantissa m = 0.d1 d2 . . . dt formata da t cifre (0 ≤ di ≤ β − 1,
i = 1, .., t, e d1 6= 0 per la normalizzazione) e caratteristica e, con
L ≤ e ≤ U.
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Formalmente,

F(β, t, L, U) = {0} ∪ {x ∈ R : x = ±0.d1 d2 . . . dt · β e }

Equivalentemente,
t
( )
X
s −i e
F(β, t, L, U) = {0} ∪ x ∈ R : x = (−1) di β ·β
i=1

dove s è un numero intero che rappresenta convenzionalmente il


segno (s = 0 per +, s = 1 per −).

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

I limiti della macchina

Iniziamo ad analizzare la mantissa:

β −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

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Limiti dell’insieme F(β, t, L, U)


Aggiungiamo la caratteristica: x = ±m · β e . Per ogni numero
x ∈ F(β, t, L, U) si ha

xmin = β L−1 ≤ |x| ≤ β U 1 − β −t = xmax .




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 .

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Approssimazione di un numero reale con un numero di


macchina
Poiché F(β, t, L, U) è un sottoinsieme finito di R, dato un numero
reale x = sign(x) m β e ∈ / F la cui caratteristica e cada nel range
[L, U], questo dovrà essere approssimato con un numero
x̄ ∈ F(β, t, L, U).
Sia x un numero reale e sia x̄ la sua approssimazione:

x = (−1)s m · β e , x̄ = (−1)s m̄ · β e
Errore assoluto:
Ea ≡ |x̄ − x|
Errore relativo:
|x̄ − x|
Er ≡ , x 6= 0
|x|

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Tecniche di approssimazione (standard IEEE754-2008)


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).
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

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

0.d1 d2 d3 . . . dt−1 (dt + 1)


Quindi i numeri floating-point normalizzati sono, per un fissato
valore della caratteristica, equispaziati.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Errori commessi

Troncamento: tutte le mantisse m ∈ [m1 , m1 + β −t ) vengono


approssimate con m̄ = m1 . L’errore commesso è quindi

m − m1 < β −t ,

sempre positivo.
Arrotondamento: tutte le mantisse che cadono in
(m1 − 12 β −t , m1 + 21 β −t ) vengono approssimate con m1 . In
questo modo l’errore sulla mantissa risulta
1
|m − m1 | ≤ β −t
2
e può essere sia positivo che negativo.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Tra questi metodi l’arrotondamento è sicuramente più oneroso


dal punto di vista di istruzioni del microprocessore, ma provoca
un’errore metà degli altri ed è sicuramente più conveniente dal
punto di vista dell’accuratezza.
Riassumendo gli errori di approssimazione sulle mantisse risultano:

|m̄ − m| < β −t , troncamento,


1 −t
|m̄ − m| ≤ β , arrotondamento
2

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

L’errore assoluto associato all’approssimazione x̄ vale:

|x̄ − x| = |m̄ − m|β e < β e−t , troncamento,


1 e−t
|x̄ − x| = |m̄ − m|β e ≤ β , arrotondamento,
2
Poiché m ≥ 0.1000 . . . = β −1 , si ha

|x| = mβ e ≥ β −1 β e

e quindi per l’errore relativo

|x̄ − x| β e−t
≤ e−1 < εm ≡ β 1−t , troncamento,
|x| β
1 e−t
|x̄ − x| β 1
≤ 2 e−1 ≤ εm ≡ β 1−t , arrotondamento.
|x| β 2

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

La quantità eps ≡ β 1−t verrà chiamata epsilon di macchina.


Con il simbolo εm (o um ) si indicherà invece la precisione di
macchina.
εm è una costante caratteristica dell’aritmetica di macchina in
considerazione e rappresenta la massima precisione relativa
di calcolo raggiungibile sul calcolatore e con il tipo di dati
che la implementano.
Due quantità la cui differenza relativa sia minore della
precisione di macchina sono da considerarsi indistinguibili per
il calcolatore.
Non ha senso cercare di determinare approssimazioni con
precisione relativa inferiore alla quantità εm .

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Una prospettiva leggermente diversa

Sia fl(x) l’approssimazione in macchina di x e δ l’errore relativo


commesso:
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 .

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Standard IEEE
I PC che implementano lo Standard IEEE 754-1985 prevedono:

1 32 bit for single precision, 1+8+23 (hidden bit)


2 64 bit for double precision, 1+11+52 (hidden bit)
3 128 bit for quadruple precision, 1+15+112 (hidden bit)
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Osservazione (Hidden bit)


Se β = 2 in un’aritmetica floating point normalizzata la prima cifra
della mantissa diversa da zero è necessariamente d1 = 1. Quindi la
cifra non viene memorizzata e viene “guadagnato“ un bit. Ne
segue che il valore di eps e εm corrsiponde ad avere un numero di
cifre di mantissa pari a t + 1.

1 Single precision: L = −126, U = 127,


eps = 21−(23+1) = 2−23 ≈ 10−7 ;
2 Double precision: L = −1022, U = 1023,
eps = 21−(52+1) = 2−52 ≈ 10−16 ;
xmin,denorm = 2−1074 = 2−1022−52 , xmin,norm = 2−1022 ,
xmax,norm = (1 + (1 − 2−52 )) · 21023 ;
3 Quadruple precision: L = −16382, U = 16383,
eps = 21−(112+1) = 2−112 ≈ 10−34 ;

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Overflow e Underflow

1 Overflow: errore dovuto al tentativo di rappresentare numeri


con e > U
2 Underflow: errore dovuto al tentativo di rappresentare
numeri con e < L

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Operazioni di macchina effettuate in virgola mobile


Vediamo adesso cosa accade quando si effettuano delle operazioni
aritmetiche in macchina. Il risultato di una operazione aritmetica
eseguita tra due numeri macchina non è, in generale, un numero
macchina, quindi anche questo risultato dovrà essere approssimato.
Definizione
Chiameremo operazione di macchina il risultato dell’operazione
eseguita sui numeri macchina seguita da un’approssimazione.

Indichiamo con ⊕, , ⊗, le operazioni macchina corrispondenti


a +, −, ×, /.
Quindi, ad esempio,

a ⊕ b := fl(fl(a) + fl(b))

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Per le operazioni di macchina si ha

a ⊕ b = fl(fl(a) + fl(b)) = (fl(a) + fl(b))(1 + δ1 ), |δ1 | ≤ εm


a b = fl(fl(a) − fl(b)) = (fl(a) − fl(b))(1 + δ2 ), |δ2 | ≤ εm
a ⊗ b = fl(fl(a) × fl(b)) = (fl(a) × fl(b))(1 + δ3 ), |δ3 | ≤ εm
a b = fl(fl(a) / fl(b)) = (fl(a) / fl(b))(1 + δ4 ), |δ4 | ≤ εm

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.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

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,

Ma non valgono più le seguenti proprietà:

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.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Osservazione
Inoltre per le operazioni di macchina può accadere che valga la
relazione
a ⊕ b = fl(a), 0 < |fl(b)|  |fl(a)|.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Due espressioni equivalenti in aritmetica infinita possono non


esserlo in aritmetica finita.
Definizione
Diremo equivalenti due espressioni che in aritmetica finita
forniscano risultati la cui distanza relativa differisce di una quantità
dell’ordine della precisione di macchina.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Cancellazione numerica

Il fenomeno della cancellazione numerica è la conseguenza più


grave dell’aritmetica finita.
Essa può verificarsi quando si esegue la sottrazione di due numeri
molto vicini tra loro.
Definizione
Si dice cancellazione numerica il fenomeno di perdita di cifre
significative che si verifica quando si opera una sottrazione tra due
numeri “quasi uguali” tra loro (ovvero, il risultato è più piccolo di
ciascuno dei due operandi)

Sostanzialmente consiste in una enorme amplificazione degli


errori di approssimazione sugli operandi.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Esempio (Cancellazione 1)
Si considerino i seguenti numeri:

x1 = 0.19101972 · 103 , x2 = 0.19101708 · 103

e si voglia eseguire l’operazione x1 x2 in un’aritmetica in base


β = 10, 6 cifre di mantissa, operante con troncamento
(εm = 10−5 )

fl(x1 ) = 0.191019 · 103 , fl(x2 ) = 0.191017 · 103 .

Che errore abbiamo commesso per ora?

|fl(x1 ) − x1 | = 0.720000 · 10−3

|fl(x1 ) − x1 | 0.720000 · 10−3


= ' 0.37692 · 10−5 < εm
|x1 | 0.19101972 · 103
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

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.000002 · 103 = 0.200000 · 10−2

Errore commesso? Differenza esatta:

x1 − x2 = 0.264000 · 10−2

Errore relativo:
|(x1 x2 ) − (x1 − x2 )|
= 0.2424,
|(x1 − x2 )|

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

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!

fl(x1 ) = 0.191019 · 103 , fl(x2 ) = 0.191017 · 103


x1 x2 = 0.000002 · 103 = 0.200000 · 10−2 .

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Esempio (segue)
Con arrotondamento?

fl(x1 ) = 0.191020 · 103 , fl(x2 ) = 0.191017 · 103

x1 x2 = 0.000003 · 103 = 0.300000 · 10−2


|(x1 x2 ) − (x1 − x2 )|
= 0.1363
|(x1 − x2 )|

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

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 in sé, ma amplifica
errori di approssimazione già esistenti sugli operandi.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Rappresentazione dei numeri sul calcolatore
Stabilità e condizionamento

Si può evitare la cancellazione numerica? Usare (quando possibile)


forme alternative per il calcolo di una espressione.
Esempio (Cancellazione 2)
f (x0 + h) − f (x0 )
f 0 (x0 ) ' , h piccolo
h
Sia f (x) = sin(x)

sin(x0 + h) − sin(x0 ) 2 2x0 + h h


= cos sin
| h
{z } |h 2
{z 2}
AlgoritmoI AlgoritmoII

Esempio (Cancellazione: calcolo della varianza)


n n
1X 1X 2
var (X ) = (xi − x̄)2 = xi − x̄ 2
n n
|i=1 {z } |i=1 {z }
AlgoritmoI AlgoritmoII
Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion
Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Stabilità di un algoritmo e condizionamento di un problema

Obiettivo: studiare come errori sui dati di un problema si


propagano sui risultati.
Definizione
Un problema è ben posto quando ammette una ed una sola
soluzione e la soluzione dipende con continuità dai dati.

Altrimenti il problema è mal posto.

Nel seguito assumeremo di lavorare sempre su problemi ben posti.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Consideriamo la risoluzione numerica di un problema ben posto.


Nello studio della propagazione degli errori, occorre distinguere tra
il ruolo assunto:
1 dal problema (condizionamento del problema)
2 dal particolare algoritmo usato per risolvere il problema
(stabilitá dell’algoritmo)

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Generico problema: assegnato il dato d, trovare x tale che

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̃

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Esempio
Si consideri il problema di trovare la radice quadrata di un numero
d assegnato: √
x= d
Si consideri il seguente algoritmo molto rudimentale:
√ d +1
x= d'
2
Sia d = 1000 e δd = 1. Si ha:

x = 1000
√ √
x̄ = d + δd = 1001
d+δd+1 1002
x̃ = 2 = 2 .

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Condizionamento

Come il problema reagisce alle inevitabili perturbazioni su dati?


Sia δx = x̄ − x

δx sarà grande o piccolo rispetto a δd?

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:

Dipende dal problema!

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Definizione (qualitativa!)
Un problema è ben condizionato se le perturbazioni sui dati non
influenzano eccessivamente i risultati.

Un problema è mal condizionato se le perturbazioni sui dati


influenzano i risultati in misura molto grande.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Definizione (Numero di condizionamento)


Se si ha una relazione del tipo

kδxk kδdk
≤K
kxk kdk
o
kδxk kδdk
'K
kxk kdk
per una qualche costante K = K (d), il fattore K (d) si definisce
numero di condizionamento del problema.

Definizione (Numero di condizionamento)


Un problema si dice ben condizionato se K (d) è piccolo, sarà
mal condizionato se K (d) è grande.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Esempio (Condizionamento della somma fra due numeri)


Consideriamo il problema di calcolare la somma di due numeri

x =a+b

(i dati sono d1 = a e d2 = b, la soluzione del problema x = a + b).


Ci domandiamo se è un problema ben condizionato.
Siano x la soluzione esatta, ā = a + δa, b̄ = b + δb. Quindi

x + δx = a + δa + b + δb

da cui si ottiene
δx = δa + δb

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e 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| |δb|
|a| |b| per questo problema. Possiamo prendere come numero di
condizionamento K = max(Ka , Kb ).
Com’è dunque il condizionamento del problema?

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e 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).

Più in generale si può stimare il numero di condizionamento di un


problema usando sviluppi di Taylor (; libro di testo).

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

Stabilità (ovvero: ruolo dell’algoritmo nella propagazione


degli errori)

Il risultato finale di un algoritmo dipende in maniera


fondamentale da come le perturbazioni, cioè i successivi errori
compiuti ad ogni passo, si amplificano o si smorzano durante la
risoluzione dei singoli problemi elementari.
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.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion


Introduzione al Calcolo Numerico
Condizionamento
Rappresentazione dei numeri sul calcolatore
Stabilità
Stabilità e condizionamento

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).

L’algoritmo I dell’esempio Cancellazione 2 è instabile perché


l’errore finale non è controllabile in termini della sola precisione di
macchina, mentre l’algoritmo II genera un’errore controllabile con
εm , quindi è stabile.

Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion

Potrebbero piacerti anche