Discussioni su Analisi Numerica e Ricerca Operativa

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Dubbio sul Numero di condizionamento

13/03/2022, 13:01

Buongiorno. Sto inizando lo studio dell'analisi numerica per un corso universitario e mi è sorto subito un dubbio.
Si tratta di calcolare il numero di condizionamento(relativo) per il problema della somma tra due numeri. facendo i dovuti calcoli si trova che tale numero che indico con $k$ è $k = (abs(a)+abs(b))/(abs(a+b)$. Fin qui tutto bene. Da ciò che ho capito il numero di condionamento indica "l'alterazione" del risultato della somma dovuto ad un errore di misurazione nei dati a e b. Ma se tale errore non è presente, per esempio se $a=3$ e $b=4$ il numeor di condizionamento è 1 e quindi la somma è esatta. Però ho letto che se i numeri sono quasi identici in valore assoluto o addiritura uguali, se si sottraggono un dall'altro si verifica il problema della cancellazione, difatti k diventerebbe un numero infinito, essendoci una dizione per zero. Ma se a fano faccio 4-4, ottengo zero, e ancora se penso al 4 memorizzato in 16 bit, facendo in binario 100-100 ottengo 0 in binario. Ciò che non capisco è perchè si verifica l'errore di cancellazione nonostante la sottrazione si possa fare con precisione, ed inoltre come si concilia con questo il numero di condizionamento? Vi ringrazio in anticipo!
Ultima modifica di feddy il 17/03/2022, 16:59, modificato 1 volta in totale.
Motivazione: Modificato titolo

Re: Numeoro di condizionamento dubbio

13/03/2022, 16:44

Il problema nasce dal fatto che i numeri vanno rappresentati in modo finito. E' chiaro che se fosse possibile rappresentarli esattamente non ci sarebbero problemi. Un esempio magari può aiutare:

supponi di avere $a = 0.73415776$ e $b = 0.73402350$ e che la macchina su cui lavori ti permette di lavorare con $5$ cifre dopo la virgola. Segue che la rappresenzione floating point di $a$ e $b$ sono:
$\text{fl}(a)=0-73415$ $\text{fl}(b)=0.73402$.

Dunque $a-b = 0.00013426$, ma $\text{fl}(a) - \text{fl}(b) = 0.00014$. Se calcoli l'errore relativo commesso in questo caso ottieni un errore del $4%$.

Re: Numeoro di condizionamento dubbio

13/03/2022, 16:57

Se cerchi sul Quarteroni - Matematica Numerica, nel primo capitolo c'è sicuramente qualche esempio classico. Voglio sottolineare che la sottrazione è mal condizionata per due numeri *quasi* uguali e questo implica la perdita di accuratezza nel caso in cui questi due numeri sono rappresentati in aritmetica floating point.

Se guardi sempre sul Quarteroni, alla fine del primo capitolo ci sono degli esercizi che possono esserti utili, come ad esempio calcolare il numero di condizionamento di diversi problemi. Se non ti tornano puoi provare a chiederli in questa sezione.

Re: Numeoro di condizionamento dubbio

13/03/2022, 17:21

Certo, capisco da ciò che avete scritto che c'è il problema se i numeri sono quasi uguali. Ma se sono uguali, non dovrebbero esserci problemi, eppure il numero di condizionamento, in base alla formula, sarebbe enorme e non 1

Re: Numeoro di condizionamento dubbio

15/03/2022, 14:20

Se sono uguali e non ci sono errori di arrotondamento, allora non ha senso parlare di numbero di condizionamento. $K$ serve per capire, detto veramente semplicisticamente e male, come si propaga l'errore. Ma se i tuoi conti sono in aritmetica esatta non ha senso parlarne. Nota infatti che tutti gli esempi assumono di lavorare con architetture che lavorano con un numero **finito** di cifre dopo la virgola.

Re: Numeoro di condizionamento dubbio

15/03/2022, 16:31

Perfetto, ora è chiaro!

Re: Numeoro di condizionamento dubbio

15/03/2022, 16:33

Ottimo :)
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.