45
Introduzione al Calcolo Numerico Rappresentazione dei numeri sul calcolatore Stabilit` a e condizionamento Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilit` a Stefano Berrone Sandra Pieraccini Politecnico di Torino, Dipartimento di Scienze Matematiche [email protected] [email protected] http://calvino.polito.it/~sberrone, http://calvino.polito.it/~pieraccini Metodi Numerici e Calcolo Scientifico Ultimo aggiornamento: 28 settembre 2014 Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizion

1 Rappresentazionenumeri Mncs

Embed Size (px)

Citation preview

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Introduzione. Rappresentazione di numeri inmacchina, condizionamento e stabilita`

    Stefano BerroneSandra Pieraccini

    Politecnico di Torino, Dipartimento di Scienze [email protected]

    [email protected]

    http://calvino.polito.it/~sberrone,http://calvino.polito.it/~pieraccini

    Metodi Numerici e Calcolo Scientifico

    Ultimo aggiornamento: 28 settembre 2014

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Prerequisiti

    E` necessario ripassare (almeno) i seguenti argomenti:1 Analisi

    1 Sviluppo di Taylor per funzioni di una variabile2 (utile come complemento) Sviluppo di Taylor per funzioni in

    piu` variabili

    2 Geometria1 Algebra lineare2 autovalori

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Bibliografia di riferimento

    1 G. Monegato, Metodi e Algoritmi per il Calcolo Numerico,CLUT Editrice, Torino (2008).

    2 S. Berrone, S. Pieraccini, Esercizi svolti di Calcolo Numerico,con introduzione a MATLAB, CLUT Editrice, Torino (2004)

    Sul portale della didattica, nella sezione Materiale didattico delcorso, si trovano alcuni esercizi proposti, la maggior parte dei qualicon soluzione.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Ricevimento studenti e Articolazione del Corso

    Ricevimento studentiSu appuntamento (previo accordo telefonico o tramite e-mail)presso il Dipartimento di Scienze Matematiche, c.so Duca degliAbruzzi, 24, III piano, salire dalle scale vicine allaula 2.Articolazione corso

    Il corso si compone di Lezioni in aula e di esercitazioni inLaboratorio.

    Le lezioni in Laboratorio inizieranno la prima settimana dicorso e si effettueranno: Squadra 1 (Studenti con cognome AA-GZ): luned` ore11:30-13:00 presso LAIB3D Squadra 2 (Studenti con cognome HA-ZZ): mercoled` ore14:30-16:00 presso LAIB3D

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Come ottenere MATLAB

    http://www.areait.polito.it. Clik sul logo MathWorks o suSoftware per lAteno e seguire le istruzioni per THE MathWorks- Total Academic Headcount

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Modalita` desame

    Lesame consiste in due prove. Prova scritta:- Dara` diritto ad un punteggio fino a 25 punti- Non e` possibile consultare alcun tipo di materiale (libri, appunti,tavole...)- E` consentito luso di una semplice calcolatrice- I quesiti possono essere sia esercizi pratici che domande dicarattere teorico sullintero programma svolto

    Test informatizzato in laboratorio:- Dara` diritto ad un punteggio fino a 7 punti- La prova e` costituita da un quiz con domande a risposta multiplaa cui rispondere con luso di MATLAB/OCTAVE, che potra` essereutilizzato durante il test- Non e` possibile consultare alcun tipo di materiale (libri, appunti,tavole...)

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Finalita` del corso

    A cosa servono i metodi numerici?

    Fenomeno fisico Modello matematico (equazione) Soluzione?

    Metodi numerici consentono una risoluzione (approssimata) con uncalcolatore del modello matematicoCi occuperemo di:

    descrivere dei metodi numerici e degli algoritmi per larisoluzione di certe classi di problemi

    capire cosa aspettarci da un calcolatore quando eseguiamo sudi esso un programma che implementa un certo metodonumerico.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Organizzazione del corso (MNCS)

    1 Rappresentazione numeri in macchina e conseguenze.Stabilita` 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, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Il sistema floating point

    Fissata la base di un sistema di numerazione, la rappresentazionefloating point (virgola mobile) di un numero reale consistenellusare una opportuna potenza di in modo da non avere neparte intera e ne zeri dopo la virgola.Ad esempio, in base = 10:

    123.4567 0. 1234567 mantissa

    103 caratteristica

    0.00789 0.789 1020.6 0.6 100

    Osservazione

    Si osservi che

    0.789 = 7 101 + 8 102 + 9 103Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Il sistema floating point

    Si definisce insieme dei numeri macchina (floating-point) con tcifre di mantissa, base e range (L,U), linsieme dei numeri realidefinito nel modo seguente:

    F(, t, L,U) = {0} {

    x R : x = (1)set

    i=1

    dii}

    t, sono interi positivi con 20 di 1, i = 1, .., t,d1 6= 0 (rappresentazione normalizzata)L e U, U positivo e L negativoe viene chiamato caratteristicat

    i=1 dii e` la mantissa e varia tra 1 e 1 t .

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Per ogni numero x F(, t, L,U) si ha

    xmin = L1 |x | U (1 t) = xMAX .

    Dalla relazione precedente di deduce che non e` possibilerappresentare alcun numero (a parte lo zero) minore in valoreassoluto di xmin.Per aggirare questa limitazione lo standard IEEE754 prevede unarappresentazione denormalizzata.Quando lesponente e e` pari al valore minimo L la condizioned1 6= 0 puo` essere abbandonata e quindi vengono accettatemantisse comprese tra t e 1 t .

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Approssimazione di un numero reale con un numero dimacchina

    Sia x un numero reale e sia x una sua approssimazione:

    x = (1)sm e , x = (1)sm e

    Errore assoluto:Ea |x x |

    Errore relativo:

    Er |x x ||x | , x 6= 0

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Tecniche di approssimazione

    In un elaboratore elettronico non possono essere rappresentati tuttii numeri reali, quindi ogni numero reale x = sign(x) m e la cuicaratteristica e cada nel range [L,U] sara` approssimato con unnumero x F(, t, L,U).La mantissa m di tale approssimazione dovra` necessariamenteavere al piu` t cifre.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Le tecniche di approssimazione a numeri macchina previste dallostandard IEEE 754 sono:

    1 Round to nearest (Arrotondamento) x viene approssimatocon il numero rappresentabile piu` vicino. Se x cadeesattamente a meta` tra due numeri rappresentabili, vieneapprossimato con quello dei due con la cifra meno significativadella mantissa pari (se = 2, quello con bit meno significativouguale a 0). Garantisce la migliore stabilita` numerica.

    2 Round toward zero (Troncamento): x viene approssimatocon il piu` grande numero rappresentabile il cui valore assolutoe` minore di quello del risultato.

    3 Round toward plus Infinity: x viene approssimato al piu`piccolo numero rappresentabile maggiore del risultato.

    4 Round toward minus Infinity: x viene approssimato al piu`grande numero rappresentabile minore del risultato.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Errori commessi

    Osservazione

    Le mantisse m dei numeri macchina sono separate di passi uniformipari a t . Infatti due mantisse consecutive hanno la forma

    0.d1d2d3 . . . dt1dt

    0.d1d2d3 . . . dt1(dt + 1)

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

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Errori commessi

    Troncamento: tutte le mantisse m [m1,m1 +t) vengonoapprossimate con m = m1. Lerrore commesso e` quindi

    m m1 < t ,

    sempre positivo.

    Arrotondamento: tutte le mantisse che cadono in(m1 12t ,m1 + 12t ] vengono approssimate con m1. Inquesto modo lerrore sulla mantissa risulta

    |m m1| 12t

    e puo` essere sia positivo che negativo.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Tra questi metodi larrotondamento e` sicuramente piu` onerosodal punto di vista di istruzioni del microprocessore, ma provocaunerrore meta` degli altri ed e` sicuramente piu` conveniente dalpunto di vista dellaccuratezza.Riassumendo gli errori di approssimazione sulle mantisse risultano:

    |m m| < t , troncamento,|m m| 1

    2t , arrotondamento

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Lerrore assoluto associato allapprossimazione x vale:

    |x x | < et , troncamento,|x x | 1

    2et , arrotondamento,

    Poiche m 0.1000 . . . = 1, si ha

    |x | = me 1e

    e quindi per lerrore relativo

    |x x ||x |

    |x x |e1

    < m 1t , troncamento,|x x ||x |

    |x x |e1

    m 121t , arrotondamento.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    La quantita` eps 1t verra` chiamata epsilon di macchina.Con il simbolo m (o um) si indichera` invece la precisione dimacchina. Essa e` una costante caratteristica di ogni aritmeticafloating-point e rappresenta la massima precisione relativa dicalcolo raggiungibile sul calcolatore e con il tipo di dati che laimplementano.Due quantita` la cui differenza relativa sia minore della precisionedi macchina sono da considerarsi indistinguibili per il calcolatore.Non ha senso cercare di determinare approssimazioni conprecisione relativa inferiore alla quantita` m.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Sia lerrore relativo della rappresentazione di x :

    =fl(x) x

    x fl(x) = x(1 + )

    Ricordiamo che si ha, dalla definizione di m, || mSi ha allora

    fl(x) = x(1 + ), || m.Questo e` il modo in cui viene generalmente descritto il legame traun numero (non di macchina) x e la sua rappresentazione fl(x).

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Standard IEEE

    I personal computer che implementano lo Standard IEEE 754-1985prevedono:

    1 32 bit per la singola precisione, 1+8+23

    2 64 bit per la doppia precisione, 1+11+52

    Conseguenze:

    1 In base 2, L = 127, U = 128, eps = 222;in base 10, L ' 38, U ' 38, eps ' 107

    2 In base 2, L = 1023, U = 1024, eps ' 252;in base 10, L ' 308, U ' 308, eps ' 1016

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Overflow e Underflow

    1 Overflow: errore dovuto al tentativo di rappresentare numericon e > U

    2 Underflow: errore dovuto al tentativo di rappresentarenumeri con e < L

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Operazioni di macchina effettuate in virgola mobile

    Vediamo adesso cosa accade quando si effettuano delle operazioniaritmetiche in macchina.Il risultato di una operazione aritmetica eseguita tra due numerimacchina non e`, in generale, un numero macchina, quindi anchequesto risultato dovra` essere approssimato.

    Definizione

    Chiameremo operazione di macchina il risultato delloperazioneeseguita sui numeri macchina seguita da unapprossimazione.

    Indichiamo con fl(x) loperazione di approssimazione di x anumero di macchina in aritmetica floating-point e 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, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Per le operazioni di macchina si ha

    a b = fl(fl(a) + fl(b)) = (fl(a) + fl(b))(1 + 1), |1| ma b = fl(fl(a) fl(b)) = (fl(a) fl(b))(1 + 2), |2| ma b = fl(fl(a) fl(b)) = (fl(a) fl(b))(1 + 3), |3| ma b = fl(fl(a) / fl(b)) = (fl(a) / fl(b))(1 + 4), |4| m

    Osservazione

    Queste relazioni mostrano che, prescindendo dagli eventuali erroridi macchina presenti nelle rappresentazioni degli operandi, lerrorerelativo commesso eseguendo operazioni di macchina non e` maisuperiore alla precisione di macchina.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Osservazione

    Non tutte le proprieta` delle operazioni aritmetiche si conservanoper le operazioni di macchina. La proprieta` commutativa persomma e prodotto si conserva anche per le operazioni di macchina:

    a b = b a, a b = b a,

    Ma non valgono piu` le seguenti proprieta`:

    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, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Osservazione

    Inoltre per le operazioni di macchina puo` accadere che valga larelazione

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

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Due espressioni equivalenti in aritmetica infinta possono nonesserlo in aritmetica finita.

    Definizione

    Diremo equivalenti due espressioni che in aritmetica finitaforniscano risultati la cui distanza relativa differisce di una quantita`dellordine della precisione di macchina.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Cancellazione numerica

    Il fenomeno della cancellazione numerica e` la conseguenza piu`grave dellaritmetica finita.Essa puo` verificarsi quando si esegue la sottrazione di due numeridi macchina molto vicini tra loro.

    Definizione

    Si dice cancellazione numerica il fenomeno di perdita di cifresignificative che si verifica quando si opera una sottrazione tra duenumeri di macchina quasi uguali tra loro (ovvero, il risultato e`piu` piccolo di ciascuno dei due operandi)

    Sostanzialmente consiste in una enorme amplificazione deglierrori di approssimazione sugli operandi.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Esempio (Cancellazione 1)

    Si considerino i seguenti numeri in formato floating-pointnormalizzato

    x1 = 0.19101972 103, x2 = 0.19101708 103

    e si voglia eseguire loperazione x1 x2 in unaritmetica 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 103

    |fl(x1) x1||x1| =

    0.720000 1030.19101972 103 ' 0.37692 10

    5 < mStefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Esempio (segue)

    |fl(x2) x2||x2| =

    0.800000 1040.19101708 103 ' 0.41881 10

    6 < m

    Calcoliamo la differenza in macchina:

    x1 x2 = 0.000002 103 = 0.200000 102

    Errore commesso? Differenza esatta:

    x1 x2 = 0.264000 102

    Errore relativo:

    |(x1 x2) (x1 x2)||(x1 x2)| = 0.2424,

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Esempio (segue)

    Cose` accaduto? Approssimando le mantisse di x1 e x2 si sonobuttate via le cifre che seguono la sesta (con un errore diapprossimazione entro i limiti della precisione di macchina).Ladifferenza effettuata tra x1 e x2 ha pero` amplificato molto laperdita di informazione dovuta allapprossimazione, fino a farlarisalire alla prima cifra significativa del risultato!

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

    x1 x2 = 0.000002 103 = 0.200000 102.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Esempio (segue)

    Con arrotondamento?

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

    x1 x2 = 0.000003 103 = 0.300000 102|(x1 x2) (x1 x2)|

    |(x1 x2)| = 0.1363

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Osservazione

    Nellesempio precedente la sottrazione di macchina non introducealcun errore di approssimazione, ma fornisce il risultato esatto.Quindi la sottrazione non genera problemi in se, ma amplificaerrori di approssimazione gia` esistenti sugli operandi.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    Si puo` evitare la cancellazione numerica? Usare (quando possibile)forme alternative per il calcolo di una espressione.

    Esempio (Cancellazione 2)

    f (x0) ' f (x0 + h) f (x0)h

    , h piccolo

    Sia f (x) = sin(x)

    sin(x0 + h) sin(x0)h

    AlgoritmoI

    =2

    hcos

    2x0 + h

    2sin

    h

    2 AlgoritmoII

    Esempio (Cancellazione: calcolo della varianza)

    var(X ) =1

    n

    ni=1

    (xi x)2 AlgoritmoI

    =1

    n

    ni=1

    x2i x2 AlgoritmoII

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Stabilita` di un algoritmo e condizionamento di un problema

    Obiettivo: studiare come errori sui dati di un problema sipropagano sui risultati.

    Definizione

    Un problema e` ben posto quando ammette una ed una solasoluzione e la soluzione dipende con continuita` dai dati.

    Altrimenti il problema e` mal posto.

    Nel seguito assumeremo di lavorare sempre su problemi ben posti.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Consideriamo la risoluzione numerica di un problema ben posto.Nello studio della propagazione degli errori, occorre distinguere trail ruolo assunto:

    1 dal problema (condizionamento del problema)

    2 dal particolare algoritmo usato per risolvere il problema(stabilita dellalgoritmo)

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

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

    x = f (d) (1)

    Siano:

    d una perturbazione del dato d dato d + dx = f (d + d) la soluzione esatta del problema con datod + d

    x la risposta dellalgoritmo al dato d + d .

    NB: generalmente x 6= x

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Condizionamento

    Come il problema reagisce alle inevitabili perturbazioni su dati?Sia x = x x

    x sara` grande o picolo rispetto a d?

    Domanda:

    Le inevitabili perturbazioni sui dati del problema (d) come sitrasmettono sui risultati, prescindendo dal particolare algoritmoche si vuole usare per risolvere il problema?

    Risposta:

    Dipende dal problema!

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Definizione (qualitativa!)

    Un problema e` ben condizionato se le perturbazioni sui dati noninfluenzano eccessivamente i risultati.

    Un problema e` mal condizionato se le perturbazioni sui datiinfluenzano i risultati in misura molto grande.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Definizione (Numero di condizionamento)

    Se si ha una relazione del tipo

    xx K

    dd

    o xx ' K

    dd

    per una qualche costante K = K (d), il fattore K (d) si definiscenumero di condizionamento del problema.

    Definizione (Numero di condizionamento)

    Un problema si dice ben condizionato se K (d) e` piccolo, sara`mal condizionato se K (d) e` grande.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    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 e` un problema ben condizionato.Siano x la soluzione esatta, a = a + a, b = b + b. Quindi

    x + x = a + a + b + b

    da cui si ottienex = a + b

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Esempio (segue)

    Pertanto

    |x x ||x | =

    |x ||x | =

    |a + b||a + b|

    |a||a + b| +

    |b||a + b|

    =|a||a + b|

    |a||a| +

    |b||a + b|

    |b||b|

    Le costanti

    Ka =|a||a + b| , Kb =

    |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).Come` dunque il condizionamento del problema?

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Esempio (segue)

    Si osserva che se a + b 0, si ha Ka,Kb . Quindi il problemae` mal condizionato se a + b e` piccolo.Ma quando a + b e` piccolo? Quando a e b sono vicini in modulo edi segno opposto... in pratica la situazione in cui si verifica lacancellazione numerica!Quindi la cancellazione numerica puo` essere interpretata come ilmal condizionamento della somma algebrica quando a + b e`piccolo (rispetto a ciascuno dei due addendi).

    Piu` in generale si puo` stimare il numero di condizionamento di unproblema usando sviluppi di Taylor (; libro di testo).

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Stabilita` (ovvero: ruolo dellalgoritmo nella propagazionedegli errori)

    Il risultato finale di un algoritmo dipende in manierafondamentale da come le perturbazioni, cioe` i successivi erroricompiuti ad ogni passo, si amplificano o si smorzano durante larisoluzione dei singoli problemi elementari.

    Definizione (intuitiva)

    Un algoritmo si dice numericamente stabile se la successionedelle operazioni di macchina non amplifica eccessivamente gli erroridi arrotondamento.

    In pratica, tutte le operazioni intermedie e il risultato finaledellalgoritmo devono presentare un errore relativo controllabilecon la precisione di macchina.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

  • Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatore

    Stabilita` e condizionamento

    CondizionamentoStabilita`

    Definizione (quantitativa)

    Se x xx ' m

    lalgoritmo si dice stabile

    Partendo dagli stessi dati si possono avere algoritmi in cui lerrorefinale e dellordine della precisione di macchina (stabili), altri in cuicio` non avviene (instabili).

    Lalgoritmo I dellesempio Cancellazione 2 e` instabile perchelerrore finale non e` controllabile in termini della sola precisione dimacchina, mentre lalgoritmo II genera unerrore controllabile conm, quindi e stabile.

    Stefano Berrone Sandra Pieraccini Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilita`

    Introduzione al Calcolo NumericoRappresentazione dei numeri sul calcolatoreStabilit e condizionamentoCondizionamentoStabilit