Remove ads
metodo di rappresentazione dei numeri reali usato in informatica Da Wikipedia, l'enciclopedia libera
Il termine numero in virgola mobile (in inglese floating point) in analisi numerica indica il metodo di rappresentazione approssimata dei numeri reali e di elaborazione dei dati usato dai processori per compiere operazioni matematiche.
Si contrappone all'aritmetica intera e a quella in virgola fissa (in inglese fixed-point). In informatica viene usata solitamente in base 2 e in questo caso può essere considerata l'analogo binario della notazione scientifica in base 10.
L'uso di operazioni aritmetiche in virgola mobile è oggi il metodo più diffuso per la gestione di numeri reali e della loro approssimazione razionale nella memoria dei computer.
Un numero in virgola mobile è costituito, nella sua forma più semplice, da due parti:
In alcuni casi, ad esempio nello standard IEEE 754, si ha un ulteriore campo: il segno ; ma ciò verrà trattato specificamente nella voce relativa.
Un generico numero reale può così essere rappresentato come (si indica con le lettere maiuscole il significato aritmetico dei campi):
Questo metodo di scrittura permette di rappresentare un amplissimo insieme numerico all'interno di un determinato numero di cifre, cosa che la virgola fissa non concede. Un numero è caratterizzato dal valore , che costituisce la base della notazione in cui è scritto il numero, e la quantità di cifre presenti nella mantissa, detta precisione. La mantissa di un numero scritto con questo metodo si presenta quindi nella forma ±d.ddd...ddd (una quantità di cifre d comprese tra 0 e ). Se la prima cifra della mantissa è diversa da zero, si dice che la rappresentazione è normalizzata. (Se viene usato il campo , la mantissa deve essere positiva, e questo bit ne determina il segno).
L'insieme dei numeri in virgola mobile include i valori , (più o meno infinito) e NaN (not a number, usato per definire i risultati di operazioni impossibili o non valide).
Nel linguaggio C, la rappresentazione in virgola mobile di un numero razionale float o double deriva dalla rappresentazione scientifica. Nella rappresentazione scientifica un numero è prodotto in due parti: la seconda, detta fattore di scala, è una potenza di 10, l'altra parte, detta parte frazionaria, è un numero tale che, moltiplicato per il fattore di scala, restituisce il numero che vuole rappresentare. Esistono dunque vari modi di rappresentare uno stesso numero, per esempio:
le quattro notazioni sono equivalenti.
Viene però utilizzata la rappresentazione normalizzata: in essa, si impone che la parte frazionaria sia sempre minore di 1 e la cifra più significativa sia sempre diversa da 0. Quindi, nell'esempio sopra considerato, la notazione corretta è solo la seconda:
La rappresentazione in virgola mobile è dunque la rappresentazione scientifica normalizzata con l'utilizzo del sistema binario; dunque il fattore di scala è una potenza di 2. La parte frazionaria viene detta mantissa mentre l'esponente della potenza di due è detto esponente. Il numero razionale è dunque così rappresentato:
in cui mantissa ed esponente possono avere segno + o segno −.
Questa aritmetica presenta due fondamentali differenze dall'aritmetica reale:
In definitiva, l'ordine in cui vengono eseguite più operazioni in virgola mobile può variarne il risultato. Questo è importante per l'analisi numerica, in quanto due formule matematicamente equivalenti possono dare risultati diversi, uno anche sensibilmente più accurato dell'altro. Per esempio, nella maggior parte delle applicazioni in virgola mobile, dà come risultato , mentre dà .
In generale, questo tipo di numeri si comporta in modo molto simile ai numeri reali. Tuttavia ciò porta spesso i programmatori a non considerare l'importanza di un'adeguata analisi numerica sui risultati ottenuti. Ci sono molte incongruenze tra il comportamento dei numeri in virgola mobile in base 2, impiegati nell'informatica, e quello dei numeri reali, anche in casi molto semplici (ad esempio la frazione 0,1 che non può essere rappresentata in maniera esatta da nessun sistema binario in virgola mobile). Per questo motivo, ad esempio, il formato non è impiegato in campo finanziario.
Le cause principali di errore nel calcolo in virgola mobile sono:
La virgola mobile appare più appropriata quando si richiede una certa precisione relativa al valore. Quando è richiesta una precisione assoluta, la virgola fissa sembra una scelta migliore.
Riguardo all'errore di precisione che provoca l'utilizzo della virgola mobile, innanzitutto notiamo che se x è il numero rappresentato, cioè
allora si avrà
e quindi, se x è il valore da rappresentare e il relativo valore in notazione virgola mobile con mantissa di cifre, allora l'errore assoluto sarà:
com'è intuitivo pensare, mentre invece l'errore relativo, che tiene conto della grandezza del numero in esame sarà:
quest'ultima maggiorazione è facilmente ricavabile dalla formula dell'errore assoluto: infatti, siccome allora e quindi:
In particolare, l'errore relativo, anche se variabile, è sempre al di sotto del valore trovato: quest'ultimo, non dipende dal numero rappresentato (infatti non dipende da , a differenza dell'errore assoluto) e per questo motivo viene anche detto precisione macchina.
partendo dall'esempio mostrato in figura:
dove sign, exponent e fraction vengono letti come numeri interi positivi.
quindi:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.