18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. RAPPRESENTAZIONE DEI NUMERI NEL CALCOLATORE<br />

Se scriviamo il numero in virgola mobile normalizzata, le cifre significative sono date dalle cifre della<br />

parte frazionaria. La bontà delle cifre va <strong>di</strong>minuendo procedendo da sinistra verso destra e questo può portare<br />

ad una per<strong>di</strong>ta <strong>di</strong> cifre significative, come possiamo vedere stu<strong>di</strong>ando la propagazione <strong>degli</strong> errori nelle<br />

operazioni elementari.<br />

Supponiamo che i numeri su cui lavoriamo siano affetti da errore (<strong>di</strong> arrotondamento), mentre le operazioni<br />

siano eseguite in modo esatto. In<strong>di</strong>chiamo con il simbolo o una qualunque delle operazioni elementari<br />

{×,/,+,−} e in<strong>di</strong>chiamo con f l(x) il numero x rappresentato in floating point e arrotondato, quin<strong>di</strong><br />

f l(x) = x(1 + e x ) dove e x è l’errore <strong>di</strong> arrotondamento.<br />

Allora f l(x o y) = f l(x)o f l (y) = x(1 + e x )o y(1 + e y ).<br />

G Moltiplicazione 3 x(1 + e x ) × y(1 + e y ) = (x × y)(1 + e x )(1 + e y ) ≈ (x × y)(1 + e x + e y )<br />

Quin<strong>di</strong> l’errore nel prodotto è dato da e x y = e x + e y<br />

G Divisione (con y ≠ 0) 4 x(1 + e x )<br />

y(1 + e y ) = x y (1 + e x)(1 − e y + e 2 y + ...) ≈ x y (1 + e x − e y )<br />

Si ha e x/y = e x − e y : gli errori si accumulano ad<strong>di</strong>tivamente<br />

G Ad<strong>di</strong>zione (e, analogamente, Sottrazione)<br />

L’errore è e x+y =<br />

x(1 + e x ) + y(1 + e y ) = x + y + xe x + ye y = (x + y)(1 + x<br />

x + y e x +<br />

y<br />

x + y e y )<br />

x<br />

x + y e x +<br />

y<br />

x + y e y , una combinazione lineare che <strong>di</strong>pende da x e y.<br />

– x y > 0 =⇒ |e x+y | ≤ |e x | + |e y |<br />

– x y < 0 =⇒ |x|<br />

|x + y| e |y|<br />

possono essere molto gran<strong>di</strong> e, in tal caso, ci sarà un’amplificazione<br />

|x + y|<br />

notevole dell’errore. Si ha il fenomeno <strong>di</strong> cancellazione se non si fa attenzione al numero <strong>di</strong> cifre<br />

significative dei numeri che vengono sommati.<br />

Sulla cancellazione<br />

Supponiamo <strong>di</strong> avere due numeri molto vicini tra loro, in cui le prime p + 2 cifre della parte frazionaria<br />

sono buone mentre le altre sono corrotte. Inoltre, le prime p cifre siano le stesse per entrambi i numeri<br />

(usiamo i simboli v v v v v e w w w w w w per esprimere le cifre corrotte):<br />

f l(x) = 1.d −1 d −2 ...d −p b −(p+1) b −(p+2) v v v v × 2 e<br />

f l(y) = 1.d −1 d −2 ...d −p b ′ −(p+1) b′ −(p+2) w w w w × 2e<br />

Quando an<strong>di</strong>amo a fare la sottrazione le prime p cifre buone si annullano. Da p + 2 cifre buone, ne abbiamo<br />

ora solo 2 e tutte le altre sono quelle corrotte. Con la normalizzazione il risultato <strong>di</strong>venta del tipo (ora qqqqq<br />

sono le cifre corrotte):<br />

f l(x − y) = 1.b −1 ′′ b′′ −2qqqqqq × 2e<br />

Ricor<strong>di</strong>amo, infine, che in aritmetica <strong>di</strong> macchina non valgono più la proprietà <strong>di</strong>stributiva o associativa<br />

del prodotto.<br />

3 Nei calcoli sono trascurabili le potenze maggiori o uguali a due per e x e e y<br />

4 1<br />

Possiamo scrivere = (1 − e y + e 2 y<br />

1 + e + ...) come risultato della formula polinomiale <strong>di</strong> Taylor della funzione f (e 1<br />

y ) = <strong>di</strong><br />

y 1 + e y<br />

centro 0.<br />

28

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!