Numeri macchina

Messaggioda Xemitron » 23/08/2021, 13:29

Salve. non ho ben chiaro perché se in matlab faccio una sottrazione tipo 1e10 + 0.1 - 1e10 il risultato non è esattamente 0.1. C'entra la cancellazione numerica?
Xemitron
Starting Member
Starting Member
 
Messaggio: 7 di 30
Iscritto il: 15/01/2018, 16:20

Re: Numeri macchina

Messaggioda feddy » 23/08/2021, 17:47

Cosa succede se fai 1e10 + 2^(-1) - 1e10 ?
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2854 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Numeri macchina

Messaggioda Xemitron » 23/08/2021, 18:42

Beh, in questo caso il risultato è quello che mi aspetterei, cioè 2^(-1). Quindi il problema nel caso precedente è il fatto che 0.1 non è rappresentabile in binario?
Xemitron
Starting Member
Starting Member
 
Messaggio: 8 di 30
Iscritto il: 15/01/2018, 16:20

Re: Numeri macchina

Messaggioda feddy » 23/08/2021, 18:45

Hai colto il punto. Invece $2^k$, per $k$ in un opportuno range, lo è esattamente.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2855 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Numeri macchina

Messaggioda feddy » 23/08/2021, 18:47

Per quanto riguarda la cancellazione, dai un'occhiata qui alla Nota 1.24: https://www.math.unipd.it/~alvise/CN/TE ... errori.pdf
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2856 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Numeri macchina

Messaggioda Xemitron » 23/08/2021, 18:58

feddy ha scritto:Hai colto il punto. Invece $2^k$, per $k$ in un opportuno range, lo è esattamente.


Quindi l'approssimazione che fa il calcolatore di 0.1 rappresenta quella piccola perturbazione che modifica il risultato finale, essendo un problema mal condizionato? Ho detto giusto?
Xemitron
Starting Member
Starting Member
 
Messaggio: 9 di 30
Iscritto il: 15/01/2018, 16:20

Re: Numeri macchina

Messaggioda feddy » 23/08/2021, 19:28

Quell'approssimazione di 0.1 è dovuta al fatto che la sua rappresentazione binaria è infinita, ma noi abbiamo a disposizione soltanto un numero finito di cifre. Non parlerei di problema mal condizionato. Piuttosto parlerei solamente di rappresentazione floating point di 0.1, $\text{fl}(x)$
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2857 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite