Vai al contenuto

Calcolo numerico/Operazioni aritmetiche con il calcolatore

Wikibooks, manuali e libri di testo liberi.
Indice del libro

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.

Per eseguire la somma algebrica :

  1. rappresentiamo e con i loro floating, cioè ,
  2. 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.

  1. 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.
  2. Nel caso di segno discorde, l'errore dipende dai dati, e non è sempre "stabile", perché può capitare il fenomeno della cancellazione numerica.

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:

  1. , errore locale generato nell'operazione;
  2. errore relativo al dato moltiplicato per un coefficiente , ed è ;
  3. 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

[modifica | modifica sorgente]

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

[modifica | modifica sorgente]

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

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 .