Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Letizia SCUDERI
A.A. 2016/2017
1
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html
L. Scuderi (Politecnico di Torino) Aritmetica A.A. 2016/2017 3 / 68
Uno dei pi`
u grandi errori, da evitare quando si programma al calcolatore, `e
pensare che i risultati numerici ottenuti siano privi di errori oppure aetti
da un errore trascurabile.
Alcuni disastri, ormai passati alla storia, sono dovuti proprio ad un uso
scorretto del Calcolo Numerico!
Diverse pagine web1 riportano alcune di queste storie, per esempio,
nel 1991, durante la prima guerra del Golfo Persico, la caduta su una
caserma americana di un missile Scud iracheno, a causa di una
mancata intercettazione da parte di un missile americano Patriot;
1
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html
L. Scuderi (Politecnico di Torino) Aritmetica A.A. 2016/2017 3 / 68
Uno dei pi`
u grandi errori, da evitare quando si programma al calcolatore, `e
pensare che i risultati numerici ottenuti siano privi di errori oppure aetti
da un errore trascurabile.
Alcuni disastri, ormai passati alla storia, sono dovuti proprio ad un uso
scorretto del Calcolo Numerico!
Diverse pagine web1 riportano alcune di queste storie, per esempio,
nel 1991, durante la prima guerra del Golfo Persico, la caduta su una
caserma americana di un missile Scud iracheno, a causa di una
mancata intercettazione da parte di un missile americano Patriot;
nel 1996, lesplosione in aria del razzo Ariane 5 dopo appena 40
secondi dal lancio.
1
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html
L. Scuderi (Politecnico di Torino) Aritmetica A.A. 2016/2017 3 / 68
Esempio
Un esempio con conseguenze meno catastrofiche, ma comunque
inquietanti, `e costituito dalla seguente successione:
x1 = 2 ! "
xn = 2n1/2 1 2
1 41n xn1 n2
convergente a .
In teoria, per definizione di limite di una successione, xn deve avvicinarsi
sempre di pi`u a al crescere di n.
Definizione
Si definisce rappresentazione floating-point di un numero reale a la
seguente rappresentazione
Definizione
Si definisce rappresentazione floating-point di un numero reale a la
seguente rappresentazione
Lesempio evidenzia che ogni numero reale (non nullo) non ammette
ununica rappresentazione floating-point. Tale rappresentazione `e
univocamente determinata, se si impone la seguente condizione
N 1 p < 1
Lesempio evidenzia che ogni numero reale (non nullo) non ammette
ununica rappresentazione floating-point. Tale rappresentazione `e
univocamente determinata, se si impone la seguente condizione
N 1 p < 1
N 1 p < 1
N 1 p < 1
Definizione
Si definiscono numeri di macchina i numeri con mantissa ed esponente
esattamente rappresentabili negli spazi a loro riservati dal calcolatore.
ove
N `e la base del sistema di numerazione;
s vale 0 (segno positivo) oppure 1 (segno negativo);
a1 , a2 , ..., at sono interi minori o uguali a N 1 e rappresentano le
cifre della mantissa2 ;
t `e il massimo numero di cifre della mantissa rappresentabili;
q `e lesponente.
2
Da qui in avanti, con il termine cifre della mantissa p = 0.a1 a2 ...at si intenderanno
le cifre a1 , a2 , ..., at che seguono la virgola.
L. Scuderi (Politecnico di Torino) Aritmetica A.A. 2016/2017 12 / 68
Esempi
Siano N = 10, t = 5, L = 127, U = 128. Nellaritmetica floating-point
fissata,
1 a = 1.58291 100 = 0.158291 101
non `e un numero di macchina;
Di seguito verr`a descritto come un calcolatore tratti i numeri reali che non
soddisfano le limitazioni sullesponente.
Definizione
Si definisce regione di underflow linsieme dei numeri reali diversi da zero
e appartenenti a (m, m).
Definizione
Si definisce regione di underflow linsieme dei numeri reali diversi da zero
e appartenenti a (m, m).
Esempio
Per N = 10, t = 8 e L = 125, il pi`u piccolo numero positivo
rappresentabile `e m = 0.10000000 10125 .
Definizione
Si definisce regione di overflow linsieme dei numeri appartenenti a
(, M) (M, +).
Definizione
Si definisce regione di overflow linsieme dei numeri appartenenti a
(, M) (M, +).
Esempio
Per N = 10, t = 8 e U = 128, il pi`
u grande numero positivo
rappresentabile `e M = 0.99999999 10128 .
M M M M
+ oppure M+
2 2 2
Pu`o accadere che, pur essendo x1 e x2 rappresentabili, x12 e/o x22 non lo
siano. In questo caso si pu`o ovviare al problema, calcolando R come
+ , -2
x2
|x1 | 1 + , se |x1 | > |x2 |
x1
R= +, -
x1 2
|x2 |
+ 1, se |x2 | > |x1 |
x2
Definizione
Tecnica di arrotondamento rounding to even: la mantissa p viene
approssimata con la mantissa di macchina p pi`u vicina e se p `e
equidistante da due mantisse di macchina consecutive allora p viene
approssimata con quella delle due che ha lultima cifra pari.
|x x|
er = , x = 0
|x|
|x x|
er = , x = 0
|x|
Osservazione
Se x rappresenta unentit`a diversa dal numero reale, per esempio una
funzione, oppure un vettore o una matrice, e x denota una sua
approssimazione, `e possibile dare una analoga definizione di errore
assoluto/relativo. In tal caso, nella definizione occorre sostituire il valore
assoluto | | con una opportuna norma || ||.
Esempio
Sia N = 10.
Se x = 103 e x = 999 si ha ea = 1 ed er = 103 .
Esempio
Sia N = 10.
Se x = 103 e x = 999 si ha ea = 1 ed er = 103 .
Se x = 106 e x = 999999 si ha nuovamente ea = 1, mentre er = 106 `e
pi`
u piccolo del valore er precedentemente determinato.
.
_
.p .
_
p1 p2
Nt
.
_
.
_
p1 p2
Nt
.
_
.
_
p1 p2
Nt
In entrambi i casi, si ha
1
|p p| N t
2
|a a|
|p p| 1
= N 1t
|a| |p| 2
eps = N 1t
eps = N 1t
a = a(1 + ), || m
Esempio
Siano N = 10, t = 4 e
a1 = 0.5823 e a2 = 0.6214
a1 + a2 = 1.2037 = 0.12037 10
Definizione
Loperazione di macchina associa a due numeri di macchina un terzo
numero di macchina, ottenuto arrotondando lesatto risultato
delloperazione in questione.
Esempio
Siano N = 10, t = 4, a1 = 0.5823 e a2 = 0.6214. Il risultato
delloperazione di macchina corrispondente alloperazione di addizione `e
a1 a2 = 0.1204 10
a1 a2 =
a1 + a2 = (
a1 + a2 )(1 + )
a1 a2 =
a1 a2 = (
a1 a2 )(1 + )
a1 a2 =
a1 a2 = (
a1 a2 )(1 + )
a1 a2 =
a1 /
a2 = (
a1 /
a2 )(1 + )
con | | m .
a1 a2 =
a2
a1 p. commutativa
a1 a2 =
a2
a1 p. commutativa
ma, in generale,
a1 (
a2 a3 ) = (
a1
a2 ) a3 p. associativa
a1 (
a2 a3 ) = (
a1
a2 ) a3 p. associativa
a1 (
a2 a3 ) = (
a1
a2 ) (
a1
a3 ) p. distributiva
(
a1 a2 ) a3 = (
a1
a3 ) a2 p. distributiva
a1
a2 = a1
a1
a2 = a1
Esempio
>> format long e
>> 5+1.0e-18
ans =
5
>> 2017.3+1.0e-14
ans =
2.017300000000000e+03
Definizione
Due espressioni/quantit`a e1 ed e2 si definiscono equivalenti
nellaritmetica del calcolatore quando lerrore relativo
|e1 e2 | |e1 e2 |
oppure
|e1 | |e2 |
Esempio 2
Consideriamo le espressioni y 1 = (1 + x) 1 e y 2 = (1 1) + x,
equivalenti in aritmetica esatta qualunque sia il valore di x.
a1 = 0.15782 e a2 = 0.15735
a1 = 0.15782 e a2 = 0.15735
in aritmetica esatta
a1 = 0.15782
a2 = 0.15735
a1 a2 = 0.00047
= 0.47 103
a1 = 0.15782 e a2 = 0.15735
a1 a2 = 0.00047 a1
a2 = 0.00047
= 0.47 103 = 0.47 103
Le due operazioni hanno fornito lo stesso risultato.
a1 = 0.157824831 e a2 = 0.157348212
in aritmetica esatta
a1 = 0.157824831
a2 = 0.157348212
a1 a2 = 0.000476619
= 0.476619 103
a1 = 0.157824831 e a2 = 0.157348212
a1 a2 = 0.000476619 a1
a2 = 0.00047
= 0.476619 103 = 0.47000 103
Pertanto, la mantissa di a1
a2 ha solo le prime 2 cifre decimali in
comune con la mantissa di a1 a2 . Si `e verificata una perdita di tre cifre!
Definizione
Siano
a1 = (1)s1 p1 N q1 , a2 = (1)s2 p2 N q2
le rappresentazioni di macchina associate rispettivamente ai numeri reali
a1 = (1)s1 p1 N q1 , a2 = (1)s2 p2 N q2
(1 + x) 1
y=
x
per i valori di x uguali a 10k , k = 1, ..., 15. Tenendo conto che in
precisione infinita di calcolo y 1 qualunque sia x, calcoliamo lerrore
assoluto |1 y | associato a y (che in questo caso coincide con lerrore
relativo), per ogni valore di x considerato.
(1 + x) 1
y=
x
per i valori di x uguali a 10k , k = 1, ..., 15. Tenendo conto che in
precisione infinita di calcolo y 1 qualunque sia x, calcoliamo lerrore
assoluto |1 y | associato a y (che in questo caso coincide con lerrore
relativo), per ogni valore di x considerato.
Esempio 1
Sia y = x + x con x, x + > 0.
Esempio 1
Sia y = x + x con x, x + > 0.
Esempio 1
Sia y = x + x con x, x + > 0.
1 x2 x3 xn x x2 x n1
y= (1 + x + + + ... + 1) = 1 + + + ... +
x 2! 3! n! 2! 3! n!
x f y
x f y
y = f (x)
oppure implicita
f (x, y ) = 0
Definizione
Un problema numerico si dice ben condizionato se accade che lerrore
relativo associato a y `e dello stesso ordine di grandezza dellerrore relativo
associato a x o minore; altrimenti, si dice mal condizionato.
Definizione
Un problema numerico si dice ben condizionato se accade che lerrore
relativo associato a y `e dello stesso ordine di grandezza dellerrore relativo
associato a x o minore; altrimenti, si dice mal condizionato.
Definizione
Si definisce numero di condizionamento del problema il pi` u piccolo
valore di K (f , x) per cui vale la suddetta disuguaglianza.
Definizione
Si definisce numero di condizionamento del problema il pi` u piccolo
valore di K (f , x) per cui vale la suddetta disuguaglianza.
y = x1 + x2 , x1 , x2 R
x1 = x1 (1 + 1 ) e x2 = x2 (1 + 2 ), con i = (
xi xi )/xi , i = 1, 2,
si ha
y = x1 + x2 , x1 , x2 R
x1 = x1 (1 + 1 ) e x2 = x2 (1 + 2 ), con i = (
xi xi )/xi , i = 1, 2,
si ha
y y x1 + x2 (
x1 + x2 ) x1 + x2 x1 (1 + 1 ) x2 (1 + 2 )
= =
y x1 + x2 x1 + x2
y = x1 + x2 , x1 , x2 R
x1 = x1 (1 + 1 ) e x2 = x2 (1 + 2 ), con i = (
xi xi )/xi , i = 1, 2,
si ha
y y x1 + x2 (
x1 + x2 ) x1 + x2 x1 (1 + 1 ) x2 (1 + 2 )
= =
y x1 + x2 x1 + x2
x1 x2
= 1 2
x1 + x2 x1 + x2
Definizione
Per algoritmo si intende una sequenza finita di operazioni (aritmetiche e
non) che consente di ottenere loutput di un problema a partire dai dati di
input.
Definizione
Per algoritmo si intende una sequenza finita di operazioni (aritmetiche e
non) che consente di ottenere loutput di un problema a partire dai dati di
input.
Definizione
Un algoritmo si dice numericamente stabile se accade che lerrore
relativo associato al risultato y ha lo stesso ordine di grandezza della
precisione di macchina o minore; altrimenti, si dice instabile.
Definizione
Un algoritmo si dice numericamente stabile se accade che lerrore
relativo associato al risultato y ha lo stesso ordine di grandezza della
precisione di macchina o minore; altrimenti, si dice instabile.
Pertanto, un algoritmo `
e numericamente stabile quando la sequenza
delle operazioni non amplifica eccessivamente gli errori di
arrotondamento presenti nei dati.
x1 = 2 ! "
xn = 2n1/2 1 2
1 41n xn1 n2
100
-5
10
10-10
0 10 20 30 40
x1 = 2 !
2
xn = xn1 !
2
n2
1+ 141n xn1
`e stabile.
10 0
10 -5
10 -10
10 -16
0 10 20 30 40