Re: Fortran e precisione nei calcoli
>
> Cosa intendi esattamente per "pesante approssimazione" ? il fatto che
> ottieni -0.2999999 invece di -0.3 ?
Esatto! Mi rendo conto che possa sembrare poco, ma alla fine l'effetto
si sente eccome!!!
Insomma, non � un calcolo difficile: 6.3 - 6.6= - 0.3 non -
0,2999999 ma non me lo fa....
> Un altro parametro fondamentale per poterti dare un suggerimento e' il
> numero di dati con cui hai a che fare.
Ho due serie da 150 misurazioni ciascuna, di cui devo calcolare media
aritmetica, scarto medio, scarto quadratico medio, istogramma degli
scarti, ecc...
> Il punto e' che con la precisione che stai usando (32 bit) non hai piu'
> di circa 7 cifre significative decimali esatte per ogni variabile e il
> numero di operazioni floating point influenza l' errore di round off finale.
> Non e' detto che sia necessario aumentare la precisione. Pero' ci
> vorrebe qualche dettaglio in piu'.
Eh, mi manca decisamente questa parte di teoria... L'idea che ho �
semplicemente che, aumentando la precisione ottengo, dimiuisco l'errore
finale, perch� lo sposto a frazioni pi� piccole di quelle che ottengo
ora. In realt�, se si potesse specificare un formato su cui lavorare
(probabilmente basterebbe approssimare con discrezione decimale gli
scarti, e tutto si sistema) sui valori di un singolo array, andrebbe "a
fagiuolo"...
> Il suggerimento di Giacomo e' il piu' portabile e sicuro. Anche se, in
> un sistema in cui il kind di default e' 4, 8 dara' quasi sicuramente la
> precisione "doppia" (64 bit, circa 15 cifre significative decimali esatte).
Ok, quindi semplicemente all'inizializzazione pongo:
REAL (KIND=8)::
Perfetto, grazie!
> Il REAL*8 NON e' Fortran 90 ma la versione IBM-style della doppia
> precisione del fortran 77. Un compilatore F90 potrebbe capirla ma se non
> vuoi tornare al fortran del passato, resta con un sano Kind (che ti
> semplifica la vita anche per le costanti).
>
In che senso per le costanti? I PARAMETER non li assegni tu all'inizio
quando inizializzi il tutto?
Infine (prometto!!) c'� qualche dispensa, anche in inglese, su cui poter
studiare un po' di teoria? Un pdf da scaricare su Fortran... Mi hanno
consigliato una dispensa di Liverpool University, ma non ho trovato
nulla di scaricabile... Solo una completa guida html...
Grazie mille per la cortesia,
HAL
_________________________
H A L
Received on Thu Apr 24 2003 - 20:56:27 CEST
This archive was generated by hypermail 2.3.0
: Sun Nov 24 2024 - 05:10:35 CET