Monitoraggio degli errori scientifici quando si lavora con numeri a virgola mobile

0

Sfondo

Odio il modo. Net / IEEE-754 gestisce l'uguaglianza dei numeri in virgola mobile (FPN) (cioè doppio, float). Richiede al programmatore di essere preveggente rispetto alla cronologia del numero ancora da determinare, in quanto il programmatore deve scegliere un valore "ragionevole" di epsilon dove spesso non è possibile determinare un tale valore (poiché il programmatore non può determinare in anticipo di tempo quante operazioni, quindi arrotondamenti, il numero sarà soggetto a).

Vorrei creare un FPN "migliore" all'interno di .Net. Alla creazione, si imposta il suo errore scientifico iniziale (o si accetta un valore predefinito, il valore predefinito è il minimo). Quando si eseguivano operazioni sul FPN, tali operazioni aggiornavano l'errore scientifico (per tenere conto dell'effetto dell'arrotondamento). Quando si verifica l'uguaglianza di due FPN, è possibile determinare se i loro intervalli si sovrappongono (e anche la probabilità che siano lo stesso numero).

Domanda

Il codice stesso è semplice, le mie domande sono:

  • In che modo le operazioni (+ - * / per iniziare) influiscono sull'errore scientifico di un FPN? Esistono delle formule per determinare questo errore scientifico?
  • Capisco che un'ulteriore complicazione è la distribuzione non uniforme degli FPN. Ciò può ovviamente essere spiegato ridimensionando l'errore in proporzione all'errore scientifico intrinseco del risultato; ma esiste una formula per determinare l'errore scientifico intrinseco presente in un dato FPN?
posta Mark 27.03.2013 - 08:06
fonte

2 risposte

6

È già stato fatto, vedi Intervallo aritmetico . Questo tipo di analisi degli errori in virgola mobile automatica fornisce un limite superiore affidabile sull'errore di arrotondamento accumulato. Forse il più grande svantaggio è il problema di dipendenza che può portare a correggere limiti di errore troppo prudenti.

    
risposta data 27.03.2013 - 11:39
fonte
0

Inizia leggendo il classico libro di Hamming Metodi numerici per scienziati e ingegneri . Si addentra in molti dettagli sulla natura dei numeri in virgola mobile e dei numeri nella scienza in generale. (Curiosità interessante: i numeri in virgola mobile non sono distribuiti uniformemente, e nemmeno le costanti fondamentali della fisica, ma le due distribuzioni sono simili.)

In qualsiasi problema computazionale, devi avere un'idea di ciò che costituisce una risposta "buona". Nella forma più semplice: quale valore di epsilon è appropriato? Ad esempio, per problemi con distanze misurate in unità astronomiche (1 UA = 93 milioni di miglia, circa), epsilon di 1 miglio corrisponde a 1E-8 relativo errore. A seconda di ciò che stai facendo, potrebbe essere o non essere sufficiente.

    
risposta data 29.03.2013 - 23:45
fonte

Leggi altre domande sui tag