Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Francesco Giannino » 5.Introduzione agli errori numerici


Indice della lezione

Introduzione al concetto di errore numerico, aritmetica di macchina, errori di troncamento e roundoff.

Introduzione al problema

L’utilizzo di un calcolatore per la risoluzione di un problema matematico comporta che i dati sono sempre affetti da errori, basti solo pensare che, per “costruzione”, un calcolatore numerico è in grado di rappresentare solo un numero finito di cifre. Inoltre, le operazioni elementari eseguite su tali numeri possono, a loro volta, produrre risultati non rappresentabili esattamente nel calcolatore. Pertanto, nella progettazione di un algoritmo numerico bisogna, dunque, tener presente il fatto che si e’ sempre in presenza di errori, e nel seguente tema vedremo, anche attraverso semplici esempi, come si introducono, come si propagano gli errori e come in alcuni casi si evitano la propagazione di questi ultimi.

Tipi di errore

Iniziamo a classificare le cause che generano i diversi tipi di errore.

  • Semplificazione del modello: sono dovuti alle ipotesi che il modellista matematico fa nella formalizzazione del suo problema (ad es. trascurare alcune grandezze fisiche)
  • Errore nei dati: i dati di un problema sono spesso il risultato di alcune misure, che possono essere influenzate da errori sistemici e/o random. Gli errori sistemici dipendono dallo strumento di misurazione e non interessano per lo studio dell’analisi numerica. Gli errori random possono essere analizzati mediante tecniche statistiche che utilizzano algoritmi numerici.
  • Errori di arrotondamento: sono gli errori che abbiamo quando rappresentiamo un numero nel calcolatore.
  • Errori di troncamento: sono gli errori che abbiamo quando un procedimento infinito e approssimato ad un procedimento finito (es. calcolo di una derivata tramite le differenze finite)

E’ utile ricordare che ci sono altre cause di generazione di errori (software o hardware, errore umano di disattenzione di introduzione dati, etc etc) che però non interessano lo studio dell’analisi numerica.

Rappresentazione dei numeri sul calcolatore

Errori

Per introdurre in maniera più precisa il problema diamo delle semplici definizioni.

Sia a* un valore approssimato del numero reale a, allora si definisce:

errore assoluto = |a*-a|

errore relativo = |a*-a| / |a| se a e’ diverso da 0

Rappresentabilità di un numero

Non tutti i numeri possono essere rappresentati in un sistema aritmetico. Basti pensare ai numeri periodici. Infatti se x ha un numero di cifre significative maggiore della precisione del sistema aritmetico, è necessario approssimarlo con un numero fl(x), tale operazione è comunemente indicata come operazione di arrotondamento (rounding).

Quindi, nella risoluzione di un problema mediante calcolatore, gia nella fase di rappresentazione dei dati iniziali vengono introdotti degli errori causati dalla approssimazione dei dati con numeri macchina.

Errore di round-off

L’errore che si commette approssimando un numero reale x mediante fl(x) si dice errore di round-off, piu precisamente si dice:

errore assoluto di round-off

il numero | fl(x)-x |

e si dice errore relativo di round off il numero | fl(x)-x | / | x |

E’ importante notare che l’errore di round-off si genera sia quando un numero reale è rappresentato in F, cioè nel passaggio dalla rappresentazione esterna ad interno, sia nell’esecuzione di ogni operazione f.p. In particolare il risultato di un’operazione tra due numeri macchina non e’ in genere un numero macchina, e quindi il risultato dell’operazione deve essere arrotondato.

Amplificazione degli errori

Fino ad ora abbiamo visto che nella risoluzione computazionale di un problema, i dati sono affetti dall’errore di roundoff (sia di rappresentazione che di operazione). in genere ci si augura che, in un problema matematico, un errore relativo nei dati di un certo ordine di grandezza si traduca in un errore relativo dello stesso ordine nella soluzione. Infatti, l’errore relativo sul risultato può essere decisamente più grande degli errori relativi sui dati, in tal caso si ha quindi una amplificazione degli errori.

La questione di come gli errori sui dati di un problema si propagano sui risultati e’ chiaramente di fondamentale importanza per l’Analisi Numerica.

Lo stesso algoritmo, infatti, è una successione di operazioni e trasformazioni; il risultato dipende, quindi, da come la per tubazione, cioe’ i successivi errori, si amplificano durante la risoluzione dei singoli passi.

Problema: condizionamento

Per studiare in maniera più dettagliata il problema della perturbazione e amplificazione degli errori, dato un problema matematico dobbiamo distinguere il comportamento del PROBLEMA e il comportamento dell’ALGORITMO.

In genere si dice problema bencondizionato se le perturbazioni sui dati non influenzano eccessivamente i risultati (cioè se un errore relativo nei dati di un certo ordine di grandezza si traduce in un errore relativo dello stesso ordine nella soluzione).

Si dirà, invece, algoritmo stabile, un algoritmo nel quale la successione delle operazioni non amplificano eccessivamente gli errori di arrotondamento.

La distinzione tra il condizionamento di un problema e la stabilità di un algoritmo è importante perchè mentre per un problema ben condizionato è possibile, in genere, trovare algoritmi stabile, per un problema malcondizionato è opportuno, in genere, una sua riformulazione.

Conclusioni

In conclusione abbiamo visto come lavorando con un sistema aritmetico f. p. sia inevitabile commettere degli errori nella rappresentazione dei dati e che questi errori si propagano attraverso le operazioni in aritmetica macchina e pertanto dopo lo studio del condizionamento del problema e quello della stabilita’ dell’algoritmo risolutivo, e importante utilizzare delle tecniche di analisi della propagazione dell’errore di round-off.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93