giovedì 2 aprile 2020

Il problema della perdita di significatività e la cancellazione catastrofica

Premessa

Abbiamo visto vari tipi di floating point :
1)il primo è stato single con 32 bit (8byte,1word)
2) poi abbiamo visto double, è di precisione doppia rispetto a single infatti è  a 64 bit (16 byte, 2 word).
 Questi  due tipi di floating point su su base 2.  Invece
3) decimal  utilizza 128 bit, e lavora diversamente dai primi due tipi. In quanto mentre i primi due lavorano su base 2 cioè il  sistema nativo del computer. Decimale lavora in base dieci ed è il sistema che usiamo nella vita di tutti i giorni. E' una floating point di dieci, utile per quando si fa riferimento agli importi monetari, ad esempio le transazioni bancarie. Cioè  nei calcoli finanziari. Siccome abbiamo visto che tramite queste sequenze di bit, noi riusciamo a rappresentare soltanto  un insieme finito di valori di un certo range. Da un numero minimo ad uno massimo.  Possiamo incorrere in  rounding error→  cioè accumulazione di errori di approssimazione e non sono evitabili perché sono insiti nel tipo di rappresentazione e  nel fatto che il numero delle rappresentazioni  possibili  è comunque finito. 

problemi che si possono verificare

 Con riferimento alla rappresentazione floating point, si possono verificare i seguenti problemi :
 se prendo due valori  molto vicini tra loro ad esempio:  A e B
e facciamo la sottrazione di questi due numeri quasi uguali. Tutte le cifre che esprimono la  precisione di questa osservazione  vengono trasformate in zero. Passiamo da numero con una certa precisione a numeri che  annullano questa precisione quindi c'è una perdita di significatività.






Che viene definita catastrophic cancellation  e non è l'effetto cumulativo di tanti errori di approssimazione. Ma  in un colpo solo abbiamo ottenuto una perdita catastrofica. Questo problema esce fuori nel calcolo della varianza di una variabile. Cioè quando scriviamo 




E si scompone la varianza come sottrazione di due numeri, il risultato è sbagliato e  non si ottiene assolutamente la varianza.  Questo è un esempio di cancellazione catastrofica.
Un altro esempio  di cancellazione catastrofica si può ottenere sommando due numeri A+B con A>>B o simmetricamente B<<A . Mi perdo la precisione del numero piccolo. 



Il problema diventa maggiore se ho una sequenza di  operazioni. Cioè sommo  numero grande con un numero piccolo con un numero grande con un numero piccolo ecc.


Questo porta ad perdita catastrofica di significatività.  Sono stati  inventati degli algoritmi che introducono dei termini di correzione, per fare in modo che  vegono preservate le cifre significative, che normalmente andrebbero perse. Uno di questi è l'algoritmo di Newmaier, per la media avevamo visto l'algoritmo di Knuth per evitare la perdita di significatività.



Nessun commento:

Posta un commento

applicazione13

- Svolgere l' Esercizio 4  indicato nel video 49 (processo aleatorio + ordini e calcolo PNL) - Completare l' Esercizio 4  aggiungen...