Esercizi floating-point

Messaggioda Pasquale 90 » 24/04/2020, 19:27

Buonasera,
ho i seguenti numeri $a=6.393942e-3\,\b=6.393941e-3$
Faccio la sottrazione carta e penna esce $c=0.0000001e-2$, invece su matlab usando il formato long mi esce $c'= 0.633000259000000$.
Ovviamente non mi potevo aspettare il risultato vero in matlab, ma questo che è uscito non me lo spiego, cioè $a,b$ sono due numeri quasi uguali quindi facendo la sottrazione in matlab si ha il fenomeno della cancellazione numerica, quindi dovrei perdere delle cifre significative per questo si il precedente risultato ?

Grazie
Pasquale 90
Average Member
Average Member
 
Messaggio: 153 di 806
Iscritto il: 14/11/2019, 11:24

Re: Esercizi floating-point

Messaggioda feddy » 24/04/2020, 19:43

Se i due numeri sono vicini in modulo, allora si ha il fenomeno di cancellazione numerica. Tuttavia facendo quell'operazione su MatLab a me risulta $-9.999999994736442e-10$
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2675 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Esercizi floating-point

Messaggioda Pasquale 90 » 25/04/2020, 15:42

si hai ragione ho sbagliato a caricare i dati. comunque prendendo come numeri
$x=1.2345$
$y=1.2344$
precisione infinita
$x-y=0.0001=1e-5$
invece su matlab mi esce $9.999999999998899e-05$.
Cioè per commentare questo risultato procedo cosi,considero i due numeri in forma normalizzata
$x'=0.123450000000000e1$,
$y'=0.123440000000000e1$
ne faccio la sottrazione in macchina
$x'(-)y'=0.00010000000000=1e-5$
dove sbaglio
Pasquale 90
Average Member
Average Member
 
Messaggio: 154 di 806
Iscritto il: 14/11/2019, 11:24

Re: Esercizi floating-point

Messaggioda feddy » 25/04/2020, 16:11

Cosa intendi con precisione infinita?

Questo risultato si commenta usando la stima per l'errore relativo associato alla somma, che dovresti avere negli appunti.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2676 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Esercizi floating-point

Messaggioda Pasquale 90 » 25/04/2020, 16:25

feddy ha scritto:Cosa intendi con precisione infinita?.


carta e penna.

Quindi dovrei fare
$abs(1*10^(-5)-9.999999999998899*10^(-5))/abs(1*10^(-5))=8.999999999998899$
l'ordina di grandezza dell'errore relativo è dell'ordine dell'unità, quindi ci sono zero cifre corrette.

va bene ?
Pasquale 90
Average Member
Average Member
 
Messaggio: 155 di 806
Iscritto il: 14/11/2019, 11:24

Re: Esercizi floating-point

Messaggioda feddy » 25/04/2020, 16:35

Okay, da qui è chiaro che l'errore relativo è alto. Ma quello che intendevo io era quello che viene scritto a pag. 46 di queste slide: https://www.math.unipd.it/~alvise/CN_IN ... beamer.pdf

Quello che osservi tu è una conseguenza
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2677 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Esercizi floating-point

Messaggioda Pasquale 90 » 25/04/2020, 18:04

Cioè che l'operazione aritmetica di sottrazione in macchina è mal condiozionata.
Per questo si ha un errore relativo alto rispetto alla precisione di macchina. :roll: :roll:
Pasquale 90
Average Member
Average Member
 
Messaggio: 156 di 806
Iscritto il: 14/11/2019, 11:24

Re: Esercizi floating-point

Messaggioda feddy » 25/04/2020, 18:15

occhio però: è malcondizionata quando i due numeri sono vicini in modulo, altrimenti non è mica detto che ogni volta che si sottraggono due numeri si producono risultati errati
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2678 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Esercizi floating-point

Messaggioda Pasquale 90 » 09/05/2020, 18:12

Ciao feddy, riprendo di nuovo questo topic, ma i dubbi sorgono di volta in volta che ci si sporca le mani.

Riprendo i dati della scorsa volta, cioè
$a=6.393942e-3\,\ b=6.393941e-3$
la differenza in matlab è $a-b=9.999999994736442e-10$
invece a carta e penna è $1e-8$
Come detto la scorsa volta la sottrazione è mal condizionato quando si hanno operandi quasi uguali, come questi, per cui si ha tale risultato in matlab.
Ora mi chiedo ma perchè è cosi, mi spiego meglio, è possibile determinare a priori la differenza in aritmetica esatta dei numeri $a,b$ a carta e penna ?
Pasquale 90
Average Member
Average Member
 
Messaggio: 160 di 806
Iscritto il: 14/11/2019, 11:24

Re: Esercizi floating-point

Messaggioda feddy » 09/05/2020, 21:38

Scusa ma non ho capito cosa intendi con "è possibile determinare a priori la differenza in aritmetica esatta dei numeri a,b a carta e penna ?"

Mi pare che tu l'abbia già determinata...
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2687 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Prossimo

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite