Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni50 pagine

1 - RappresentazioneNumeri 2

Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni50 pagine

1 - RappresentazioneNumeri 2

Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Introduzione

Introduzione. Rappresentazione di numeri in macchina,


condizionamento e stabilità

Metodi Numerici e Calcolo Scientifico


Ultimo aggiornamento: September 19, 2024

1
Introduzione

Argomenti trattati

1 Introduzione al corso

2 Rappresentazione dei numeri sul calcolatore

3 Stabilità e condizionamento
Condizionamento
Stabilità

2
Introduzione
Introduzione al corso

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)
Ulteriore bibliografia verrà suggerita per la seconda parte del 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.

E’ attiva una piattaforma web per accedere a test di esercitazione (vedi


modalità d’esame).

3
Introduzione
Introduzione al corso

Ricevimento studenti e Articolazione del 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

Come ottenere MATLAB

[Link] ; MathWorks o “Software per l’Ateno” ; THE


MathWorks - Total Academic Headcount
5
Introduzione
Introduzione al corso

Modalità d’esame

L’esame consiste nelle seguenti prove:


1 Test informatizzato in laboratorio (fino a 12 punti)
La prova è costituita da un quiz con:
Domande a risposta multipla a cui rispondere con l’uso di MATLAB
Durante il test:
Non è possibile consultare libri o appunti né usare device elettronici diversi
dal computer che eroga il test informatizzato
Il software MATLAB sarà disponibile per tutta la durata della prova
Sarà possibile consultare un formulario che concorderemo insieme
2 Prova scritta (fino a 20 punti) con domande sia pratiche che teoriche
sull’intero programma del corso
3 Per chi con le due prove precedenti ottiene un punteggio di almeno 27.5:
prova orale su argomenti sia teorici che pratici relativi all’intero
programma.

6
Introduzione
Introduzione al corso

Perché studiare metodi numerici?

Molti fenomeni (fisici, ingegneristici, sociologici, economici...) possono


essere descritti da un modello matematico.

`ϑ00 + g ϑ = 0

7
Introduzione
Introduzione al corso

Perché studiare metodi numerici?

Generalmente - tranne pochi casi particolari - non è possibile trovare per


via analitica una soluzione del modello, oppure sarebbe troppo costoso
farlo.
I metodi numerici consentono di trovare una soluzione (approssimata),
tramite un calcolatore, di molti modelli matematici.
La matematica ha un ruolo fondamentale per capire le caratteristiche dei
problemi da affrontare e la qualità dei metodi numerici. Domande tipiche
da porsi:
Il problema è ben posto? Se sı̀, qual è il suo numero di condizionamento?
Se il problema è ben posto, esistono metodi numerici che possono
approssimare una soluzione? Quali sono le loro caratteristiche? (ad
esempio, proprietà di convergenza e stabilitã)
Se esistono metodi numerici, qual è il loro livello di accuratezza?
A parità di accuratezza, qual è il costo computazionale?

8
Introduzione
Introduzione al corso

Cos’è un metodo numerico?

È un algoritmo 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.

9
Introduzione
Rappresentazione dei numeri sul calcolatore

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
| {z } ·10
123.4567 ⇒ 0. 1234567
mantissa

0.00789 ⇒ 0.789 · 10−2


0.6 ⇒ 0.6 · 100

(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

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.

(Argomenti di ripasso) 12
Introduzione
Rappresentazione dei numeri sul calcolatore

Formalmente,

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

Equivalentemente,
( t
)
s
X −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 −).

(Argomenti di ripasso) 13
Introduzione
Rappresentazione dei numeri sul calcolatore

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

(Argomenti di ripasso) 14
Introduzione
Rappresentazione dei numeri sul calcolatore

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 .

(Argomenti di ripasso) 15
Introduzione
Rappresentazione dei numeri sul calcolatore

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|

(Argomenti di ripasso) 16
Introduzione
Rappresentazione dei numeri sul calcolatore

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

(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

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


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

(Argomenti di ripasso) 18
Introduzione
Rappresentazione dei numeri sul calcolatore

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 + 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

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

(Argomenti di ripasso) 20
Introduzione
Rappresentazione dei numeri sul calcolatore

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 1−t
≤ 2 e−1 ≤ εm ≡ β , arrotondamento.
|x| β 2

(Argomenti di ripasso) 21
Introduzione
Rappresentazione dei numeri sul calcolatore

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 .

(Argomenti di ripasso) 22
Introduzione
Rappresentazione dei numeri sul calcolatore

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 .

(Argomenti di ripasso) 23
Introduzione
Rappresentazione dei numeri sul calcolatore

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)
(Argomenti di ripasso) 24
Introduzione
Rappresentazione dei numeri sul calcolatore

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 ;

(Argomenti di ripasso) 25
Introduzione
Rappresentazione dei numeri sul calcolatore

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

(Argomenti di ripasso) 26
Introduzione
Rappresentazione dei numeri sul calcolatore

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

(Argomenti di ripasso) 27
Introduzione
Rappresentazione dei numeri sul calcolatore

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.

(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,

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.

(Argomenti di ripasso) 29
Introduzione
Rappresentazione dei numeri sul calcolatore

Osservazione
Inoltre per le operazioni di macchina può accadere che valga la relazione

a ⊕ b = fl(a), 0 < |fl(b)|  |fl(a)|.

(Argomenti di ripasso) 30
Introduzione
Rappresentazione dei numeri sul calcolatore

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.

(Argomenti di ripasso) 31
Introduzione
Rappresentazione dei numeri sul calcolatore

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.

(Argomenti di ripasso) 32
Introduzione
Rappresentazione dei numeri sul calcolatore

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

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

(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!

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


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

(Argomenti di ripasso) 35
Introduzione
Rappresentazione dei numeri sul calcolatore

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

(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

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 i=1 n i=1
| {z } | {z }
AlgoritmoI AlgoritmoII

(Argomenti di ripasso) 38
Introduzione
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.

(Argomenti di ripasso) 39
Introduzione
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)

(Argomenti di ripasso) 40
Introduzione
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̃

(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

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
.

(Argomenti di ripasso) 42
Introduzione
Stabilità e condizionamento
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!

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

Un problema è mal condizionato se le perturbazioni sui dati influenzano i


risultati in misura molto grande.

(Argomenti di ripasso) 44
Introduzione
Stabilità e condizionamento
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”.

(Argomenti di ripasso) 45
Introduzione
Stabilità e condizionamento
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

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

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


usando sviluppi di Taylor (; libro di testo).

(Argomenti di ripasso) 48
Introduzione
Stabilità e condizionamento
Stabilità

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.

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

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.

(Argomenti di ripasso) 50

Potrebbero piacerti anche