next up previous
Next: Equazioni differenziali Up: La rappresentazione dei numeri Previous: Determinare i parametri di

Gli errori

Utilizzando un calcolatore per risolvere problemi matematici si va inevitabilmente incontro ad una serie di errori.

L'errore inerente è dovuto al fatto che i dati di input (numeri reali) vengono memorizzati come numeri di macchina. Questo errore di rappresentazione può provocare errori anche molto ampi nel risultato, in quanto si sta a tutti gli effetti risolvendo un problema diverso. La grandezza dell'errore è tanto maggiore quanto più il problema è malcondizionato: un problema si dice tale se la sua soluzione è molto sensibile ai dati in input, e piccole variazioni di questi ultimi provocano grandi variazioni della soluzione. Esempi sono i sistemi lineari quasi singolari e l'equazione differenziale descritta in seguito.

L'errore algoritmico è provocato dai singoli passi del nostro programma: poiché ogni operazione viene svolta in precisione finita, nel risultato di ciascuna è presente un piccolo errore (dell'ordine della precisione di macchina). In certi casi però questo errore può diventare considerevole. Un algoritmo si dice stabile se evita operazioni che possono generare errori grandi (ad esempio sottrazioni che possono portare a cancellazioni). Ad esempio vedere il calcolo delle radici dell'equazione di secondo grado.

Utilizzando packages come MuPAD, o Mathematica, che lavorano con precisione arbitraria nella rappresentazione dei numeri reali, si possono virtualmente eliminare i due tipi di errore precedenti.

L'errore analitico, infine, è presente se il nostro algoritmo, quand'anche lavorasse su numeri reali, calcolerebbe ad ogni modo una soluzione approssimata del problema: ad esempio se, per calcolare $\sum_{i=1}^\infty a_i$, l'algoritmo ne calcola una somma parziale. Esempi sono gli algoritmi per approssimare $\pi $, e tutti i tipi di algoritmi iterativi. Altri algoritmi invece, come la fattorizzazione di Gauss, non hanno errore analitico, quindi calcorerebbero la soluzione esatta se potessero lavorare in aritmetica esatta.

La presenza di questi diversi tipi di errore va tenuta presente sempre, perché può causare problemi anche in semplici somme. Vedere ad esempio il sorgente somma.c.

Problemi dovuti ad instabilità numerica compaiono anche in applicazioni che potrebbero sembrare distanti dall'analisi numerica. Ad esempio nella computer graphics si fanno molti calcoli per stabilire se e dove un raggio di luce interseca una determinata superficie: se la superficie è piana, si tratta di un sistema lineare; altrimenti di una equazione non lineare. In entrambi i casi risolvere male il problema numerico sottostante può causare vistosi errori nell'immagine ottenuta.



 
next up previous
Next: Equazioni differenziali Up: La rappresentazione dei numeri Previous: Determinare i parametri di
Daniele Finocchiaro
1998-11-13