DETERMINAZIONE DEL MACHEPS IN DOPPIA PRECISIONE

Contenuto

Script per la determinazione del Macheps in doppia precisione

%----------------------------------------------------
%  Calcoli di Processo dell'Ingegneria Chimica
%  Davide Manca
%   5-Oct-2003 16:46:24
%  19-Nov-2004 16:32:56
%----------------------------------------------------

Testo del problema

Il macheps nel linguaggio dell'analisi numerica e in quello programmativo
è il più piccolo numero che sommato a 1 produce un nuovo numero maggiore di 1.
Ovvero: 1. + macheps > 1.
In Analisi Classica, relativamente a questo argomento, non possiamo parlare
prettamente di numero bensì di quantità tendente a zero: epsi.
Secondo le nozioni topologiche dell'analisi classica, preso un intorno epsi di 1,
piccolo a piacere, in tale intervallo cadono infiniti numeri reali (infiniti irrazionali ed
infiniti razionali).
Viceversa, l'Analisi Numerica a calcolatore, mostra come la capacità di risoluzione e
descrizione dei numeri da parte di un calcolatore, in virgola mobile, sia assolutamente
finita e limitata.
Realizzare un programma in Matlab per la determinazione del macheps in singola ed in doppia precisione.

Inizializzazione dell'ambiente

clear
clc
format long

Calcolo del Macheps in Doppia Precisione (default)

somma = 0.;
epsi = 1.;

while somma ~= 1;
   epsi = epsi / 2.;
   somma = 1. + epsi;
end
epsi = 2. * epsi;    %  Fondamentale
disp('macheps numerico = ')
disp(epsi)
macheps numerico = 
    2.220446049250313e-016

Confronto con il Macheps secondo il formato previsto per i processori IEEE a 32 bit

epsi2 = 2^-52;       %  Nel processore IEEE in doppia precisione il numero di cifre della mantissa è pari a 52
disp('macheps IEEE in doppia precisione = ')
disp(epsi2)
disp('Errore assoluto = ')
disp(abs(epsi-epsi2))
macheps IEEE in doppia precisione = 
    2.220446049250313e-016

Errore assoluto = 
     0