Rappresentazione floating dei numeri

è definito come Matlab di default lavora con la doppia precisione.


Rappresentando i numeri macchina sulla retta reale, esistono (barriera di underflow) e (barriera di overflow) tali che al di fuori di i numeri non siano rappresentabili. All'aumentare dei nueri, i numeri si diradano. Lo spacing nell'intervallo è .

Floating di un numero

Definizione 1.2

Supponiamo di avere tale che

Chiamo floating di , il numero in che associo a , cioè il numero sul calcolatore con cui voglio rappresentarlo.

 


Ci sono varie possibilità:

  1. Se , e in particolare se , si ha (numero troppo piccolo per essere rappresentato).
  2. Se invece , allora non viene rappresentato, ci troviamo nella bariera di overflow e viene dato un messaggio d'errore.
  3. Quando , e ha più cifre di mantissa di quelle che ho a disposizione, allora rappresento dove viene determinata in base al procedimento del rounding.

Procedura del rounding

Nel caso , il calcolatore applica la procedura del rounding:

  1. Se , si ha (rounding per difetto);
  2. Se , si ha (rounding per eccesso);
  3. Se , e si applica il rounding to even, cioè si pone se è pari, altrimenti . Il numero da rappresentare ha distanza uguale dai due estremi.


Esempio 1.3

Supponiamo di avere . Scrivere il floating dei seguenti numeri:

 
  1. sono spostata pià a destra dell'intervallo, quindi si approssima per eccesso.

Errore di rappresentazione

Dato un generico numero reale, lo si rappresenta sul calcolatore come , e ci si chiede di quanto è l'errore di rappresentazione.


Definizione 1.3

Lerrore assoluto è uguale a . Lerrore relativo è uguale a , con . Viene chiamato errore percentuale.

 


Esempio 1.4

Considero

(differiscono sulla quarta cifra decimale)

Considero poi

(l'errore assoluto differisce molto da quello precedente)
(l'errore relativo è uguale a prima).


L'errore assoluto valuta il numero e l'ordine di grandezza. L'errore relativo non considera l'ordine di grandezza dei numeri confrontati.

 


Teorema 1.2

Supponiamo di essere nell'intervallo , dove lo spacing è di , considero , di cui devo fare il floating. Allora valgono le due seguenti affermazioni:

  1. (l'errore assoluto () è minore di metà dello spacing)
  2. , (l'errore relativo è strettamente minore della round of unit).
 

(Dal teorema emerge che l'errore assoluto dipende anche dall'ordine di grandezza del numero (p), e aumenta in corrispondenza della grandezza del numero. L'errore relativo dipende solo dal numero di cifre di mantissa (t).


Dim. Dimostro il punto 2.

, allora
e siccome allora proseguendo con le disuguaglianze:
Dobbiamo però dimostrare la disuguaglianza stretta.

Osservazione 1.2

Supponiamo di essere in base 2 con la doppia precisione, l'errore relativo che commettiamo rappresentando un numero con il suo floating è di .

 



Nella disuguaglianza vale l'uguale nel caso in cui (errore assoluto pari a metà dello spacing). Allora , e tutte le cifre successive sono nulle. Approssimo al pari più vicino (rounding to even).

dove , ma allora , quindi
allora questo numero è strettamente maggiore di quindi la prima disuguaglianza nella catena sopra è stretta. L'errore di rappresentazione in aritmetica floating-point è sempre più piccolo della round of unit.


cvd


Definizione 1.4

Supponiamo che approssima il numero con , allora si dice che cifre della rappresentazione di sono esatte.

 



Se approssima in modo tale che le prime cifre coincidono, allora . Non vale il viceversa: non è vero che se l'errore è più piccolo della quantità , allora le prime cifre coincidono.


Esempio 1.5

Considero

Sono nel caso del rounding to even. .

 
 PrecedenteSuccessivo