ATTENTI AGLI ARROTONDAMENTI !

I numeri reali sul calcolatore vengono arrotondati alla quarta cifra dopo la virgola. Ad esempio, il numero razionale 1/7, la cui rappresentazione decimale è 0.142857, viene rappresentato con 0.1428, cioè con sole quattro cifre decimali. Tale numero, tuttavia, non coincide con la sua rappresentazione interna che utilizza ben 16 cifre decimali.

Lo stesso numero assume espressioni diverse se si eseguono opportune dichiarazioni di formato selezionabili con il comando File e Preferences: ad esempio per 1/7 ecco i principali formati di output, oltre al formato Short che di default arrotonda alla quarta cifra:

format long 0.14285714285714

format short e 1.4286e-001

format long e 1.428571428571429e-001

Generalmente gli errori di arrotondamento sono piccoli ma a volte possono avvere effetti indesiderati. Ecco un esempio significativo:

Sperimentalmente sono stati raccolti i seguenti dati inseriti in 2 vettori riga:

x=[24 26 28 31] y=[1.52 1.5 1.49 1.51]

Si vuole interpolarli con una parabola, cioè con un polinomio di secondo grado, mediante la funzione polifit la quale permette di determinare i coefficienti del polinomio interpolatore. Basterà scrivere le seguenti instruzioni:

x=[24 26 28 31];
y=[1.52 1.50 1.49 1.51];
p=polyfit(x,y,2)
xi=24: 0.1: 31;
yi=polyval(p,xi);
plot(xi,yi,x,y,'*')

Se è impostato il formato short MATLAB fornisce i seguenti valori dei coefficienti del polinomio:

0.0019 -0.1068 2.9822

Il relativo grafico dei dati e parabola interpolatrice è:


Si è tentati di scrivere l'equazione del polinomio interpolatore nel seguente modo:

Tuttavia, se si sostituisce nell'equazione della parabola, ad esempio, il valore x = 26 si ottiene y = 1.489 in evidente disaccordo con quanto indicato nel suo grafico!

E' successo che arrotondando alla quarta cifra decimale l'errore commesso è stato dell'ordine di:

In tal caso è necessario utilizzare il formato Long e riscrivere l'equazione con i coefficienti non arrotondati per avere un riscontro con quanto riportato dal grafico.