« Forum anonimo (sperimentale)

Dubbio errore di approssimazione

2 replies
Last
Buongiorno,

all'esame mi sono trovato un esercizio in cui era richiesto di calcolare l'errore di approssimazione che si commetterebbe nel rappresentare il numero 17,65579 (vado a memoria ma sono abbastanza sicuro che il numero fosse proprio questo) avendo a disposizione solo 2 cifre dopo la virgola.

Avendo a disposizione solo 2 cifre decimali ho approssimato per eccesso il numero, ottenendo così 17,66, visto che di solito si approssimano per eccesso i numeri >= 5 (e visto che la terza cifra dopo la virgola è un 5) e per difetto invece i numeri < 5.

Ho calcolato poi l'errore facendo la sottrazione:

17,65579 - 17,66 = -0,00421

Siccome questo numero non era presente tra le risposte ho selezionato "nessuna delle precedenti è corretta".

Visto che sono abbastanza sicuro di aver fatto correttamente un altro esercizio (conversione da esadecimale a binario) e visto che il mio punteggio sulla parte di rappresentazione dell'informazione è 2, suppongo di aver sbagliato questo esercizio perciò vorrei sapere se l'approssimazione fatta è errata oppure ho sbagliato qualcos'altro in modo da non ripetere lo stesso errore qualora mi dovesse capitare nuovamente un esercizio del genere.

Ringrazio anticipatamente chiunque chiarirà questo mio dubbio.

2 replies
  1. Re: Dubbio errore di approssimazione
    Ciao, l'errore sta nel non convertire il numero in binario. Come sai, i bit dopo la virgola stanno a indicare 2^-1 e 2^-2, rispettivamente equivalenti a 0.5 e 0.25.

    Un metodo per arrivare alla soluzione è prendere la parte decimale 0.65579 e moltiplicarla per 2. Ogni volta che viene superata la virgola, potremo segnare il nostro 1, se invece il prodotto rimane minore di 0 segneremo 0.
    Quindi:
    0.65579 * 2 = 1.31158 --> 1 con riporto 0.31158
    0.31158 * 2 = 0.62316 --> 0 con riporto 0.62316
    0.62316 * 2 = 1.24632 --> 1 con riporto 0.24632

    E così via. Considerato che i bit a disposizione per la soluzione sono solo 2, prenderemo i primi due bit, ovvero 10.

    Abbiamo così 1*2^-1 + 0*2^-2 = 0.5 + 0 = 0.5.

    A questo punto 0.65579 - 0.5 = 0.15579 e questo è l'errore di approssimazione. 

    Corretto? In realtà non credo :)

    Questo metodo funziona quando i bit a disposizione per la parte decimale sono sufficienti a contenere tutti i prodotti successivi effettuati e questi ultimi terminano quando arriviamo a una situazione del genere:
    0.25* 2 = 0.5 --> 0 riporto 0.5
    0.5 * 2 = 1 --> 1 riporto 0

    Avendo a disposizione solo 2 bit non è detto che il metodo riportato sopra ci `avviccini il più possibile` al numero dato, infatti se poniamo la parte decimale a 11 avremo 1*2^-1 + 1*2^-2 = 0.5 + 0.25 = 0.75.
    A questo punto 0.65579 - 0.75 = -0.09421 e questo mi aspetto sia il vero errore di approssimazione. 

    Chiedo però aiuto ai colleghi per confermare quanto detto e spiegare se esiste un metodo che non generi problemi di questo tipo in caso di bit limitati.

    Grazie

    1 reply
  2. Re: Dubbio errore di approssimazione
    Innanzitutto ti ringrazio per la tua risposta. Ho però ancora diversi dubbi: stavo riguardando le slides "Rappresentazione numeri reali e altre informazioni" e nella pagina relativa ad errore assoluto ed errore relativo non si parla di conversione in binario.

    Sono andato anche a riguardare le relative esercitazioni e, nell'esercizio 21, viene fatto il calcolo approssimando (in quel caso per eccesso) al numero reale più vicino al numero da rappresentare. Riporto quanto scritto nella slide dell'esercitazione:

    "Il numero approssimante sarà il numero reale con una cifra decimale più vicino a 14,888 e quindi 14,9".

    Ora il caso che mi ero trovato all'esame è abbastanza borderline (avendo 17,655...) e il dubbio che avevo allora mi è rimasto: dovevo approssimare per eccesso o semplicemente "tagliare" il numero reale dopo la seconda cifra decimale, ottenendo quindi 17,65?

    Chiedo a qualche docente di venirci in soccorso e chiarire questo nostro dubbio