Calcolo numerico/Operazioni aritmetiche con il calcolatore
Non è detto che i risultati delle operazioni tra numeri macchina siano ancora dei numeri macchina. Ci sono dei bit di guardia che permettono di rappresentare l'operazione in maniera quasi esatta, e poi si converte il risultato in numero macchina.
Somma
Per eseguire la somma algebrica :
- rappresentiamo e con i loro floating, cioè ,
- dopo aver sommato facciamo il floating del risultato
cioè
L'errore relativo , e si pone . non un infinitesimo.
Al primo ordine, si ha
Considerando l'errore relativo al primo ordine:
e in base al teorema sulla round of unit
Distinguiamo due casi.
- Se i due numeri hanno segno concorde, allora e sono frazioni proprie, e sono minori o uguali ad 1. Allora l'errore relativo è maggiorato al primo ordine da . L'operazione è "stabile", e non dipende dai dati.
- Nel caso di segno discorde, l'errore dipende dai dati, e non è sempre "stabile", perché può capitare il fenomeno della cancellazione numerica.
Esempio 1.6
Supponiamo . Consideriamo
In aritmetica esatta
Per il calcolatore
Non c'è nessuna cifra esatta.
La somma è fra due numeri quasi uguali in valore assoluto e con segno opposto: si ha un errore molto elevato dovuto all'approssimazione. Questo fenomeno viene chiamato cancellazione numerica.
L'errore relativo totale è fatto al primo ordine da tre termini:
- , errore locale generato nell'operazione;
- errore relativo al dato moltiplicato per un coefficiente , ed è ;
- errore relativo al dato , moltiplicato per
Allora danno l'errore di rappresentazione sui dati, mentre , detti coefficienti di amplificazione.
L'errore totale al primo ordine è
(coefficiente lungo il ramo moltiplicato per errore)
Esercizio 1.1
Se l'operazione si scrive come allora
Verificare che questo è vero per i risultati ottenuti per la somma, e dimostrarlo nel caso di moltiplicazione e divisione.
Nel caso della somma:
quindi
Nel caso della moltiplicazione ricavo il risultato con i due procedimenti:
Procedimento 1: viene eseguita dal calcolatore come
e considerando che e otteniamo:
e al primo ordine otteniamo:
e l'errore relativo è:
Procedimento 2:
quindi
Derivazione dei coefficienti di amplificazione
Vogliiamo calcolare . Ipotizziamo che sia sufficientemente regolare, e che non ci sia errore nel calcolo del valore di , ma solo nella rappresentazione dei dati.
Chiamiamo , e ne consideriamo il floating, cioè .
Caso 1:
Considerando , moltiplichiamo numeratore e denominatore per :
Caso 2: generico
Divisione
Sappiamo che
Quindi
Considerando l'errore relativo:
e si ottiene lo stesso risultato della moltiplicazione, cioè l'operazione di divisione non dipende dai dati.
e ancora .