next up previous contents index
Next: 2. Norme Up: 1.4 Propagazione degli errori Previous: 1.4 Propagazione degli errori   Indice   Indice analitico

1.4.1 Errori nelle operazioni aritmetiche di base

Somma

$\displaystyle \tilde{z}$ $\textstyle =$ $\displaystyle \tilde{x}+\tilde{y}=x(1+\varepsilon_x)+y(1+\varepsilon_y)=$  
  $\textstyle =$ $\displaystyle x+y+x\varepsilon_x + y\varepsilon_y = z + x\varepsilon_x + y\varepsilon_y$  

quindi
$\displaystyle \left\vert\frac{\tilde{z}-z}{z}\right\vert$ $\textstyle =$ $\displaystyle \left\vert\frac{x\varepsilon_x + y\varepsilon_y}{x+y}\right\vert= %
\vert\varepsilon_z\vert$  
$\displaystyle \vert\varepsilon_z\vert$ $\textstyle \le$ $\displaystyle \left(\frac{\vert x\vert}{\vert x+y\vert}+ \frac{\vert y\vert}{\vert x+y\vert}\right)\max (\vert\varepsilon_x\vert,\vert\varepsilon_y\vert)$  

Nel caso in cui $x$ e $y$ siano discordi e vicini fra loro otteniamo un grosso errore e si presenta il fenomeno detto di cancellazione.
Ad esempio: $\sqrt{x+1} - \sqrt{x}$ non è facile da trattare senza errori e quindi risulta piú conveniente trattarlo come:

\begin{displaymath}
\frac{(x+1)-x}{\sqrt{x+1} + \sqrt{x}}=\frac{1}{\sqrt{x+1} + \sqrt{x}}
\end{displaymath}

la quale introduce un errore piú piccolo nel risultato.
Prodotto

$\displaystyle \tilde{z}$ $\textstyle =$ $\displaystyle \tilde{x}\cdot \tilde{y}=x \cdot %
y(1+\varepsilon_x)(1+\varepsilon_y)=$  
  $\textstyle =$ $\displaystyle xy(1+\varepsilon_x + \varepsilon_y +\varepsilon_x \varepsilon_y)$  

quindi

\begin{displaymath}
\left\vert\frac{\tilde{z}-z}{z}\right\vert=\left\vert\varep...
...n_x + \varepsilon_y + \varepsilon_x \varepsilon_y\right\vert
\end{displaymath}

Quoziente

$\displaystyle \tilde{z}$ $\textstyle =$ $\displaystyle \tilde{x}/\tilde{y}=\frac{x}{y} %
\frac{(1+\varepsilon_x)}{(1+\varepsilon_y)}=$  
  $\textstyle =$ $\displaystyle z(1+\varepsilon_x)\cdot \frac{1}{(1+\varepsilon_y)}$  

quindi

\begin{displaymath}
\left\vert\frac{\tilde{z}-z}{z}\right\vert= \frac{\varepsilon_x - \varepsilon_y}{1+\varepsilon_y}
\end{displaymath}


Tabella 1.1: Errori nelle principali operazioni aritmetiche
Operazione Err. Assoluto Err. Relativo
$x+y$ $\left\vert x\varepsilon_x + y\varepsilon_y \right\vert$ $\left\vert\stackrel{}{\frac{x}{x+y}\varepsilon_x + %
\frac{y}{x+y}\varepsilon_y}\right\vert$
$x-y$ $\left\vert x\varepsilon_x - y\varepsilon_y \right\vert$ $\left\vert\stackrel{}{\frac{x}{x-y}\varepsilon_x - %
\frac{y}{x-y}\varepsilon_y}\right\vert$
$x \cdot y$ $\left\vert xy\varepsilon_x + xy\varepsilon_y\right\vert$ $\left\vert\varepsilon_x + \varepsilon_y\right\vert$
$x / y $ $\left\vert\frac{x}{y(1+\varepsilon_x)}\stackrel{}{(\varepsilon_x - %
\varepsilon_y)}\right\vert$ $\left\vert\frac{\varepsilon_x - \varepsilon_y}{1+\varepsilon_y}\right\vert$


Analizzando la tabella 1.1 si pu? notare come tutte le operazioni di macchina risentono della grandezza dei fattori nel calcolo dell'errore assoluto, cosa che non accade quando consideriamo l'errore relativo. La somma e la sottrazione possono rendere grande l'errore relativo nel caso in cui i due termini dell'operazione siano molto vicini in valore assoluto. Infatti puó accadere che i denominatori che compaiono nei coefficienti di amplificazione dell'errore relativo siano molto piccoli in valore assoluto (fenomeno della cancellazione). La moltiplicazione non amplifica l'errore relativo e comporta un errore assoluto che dipende dall'ordine di grandezza dei fattori; anche la divisione non produce amplificazione per quanto riguarda l'errore relativo, mentre l'errore assoluto diminuisce se aumenta (in valore assoluto) il divisore.

$$ Esempio 1.8   Calcoliamo le radici del polinomio $x^2 - 4x +\alpha$.
Esse sono date da $x_{1,2}=2\pm \sqrt{4-\alpha}$. Consideriamo la radice $x=2+\sqrt{4-\alpha}$, per essa vale

\begin{displaymath}
x(\alpha)=2+\sqrt{4-\alpha}
\end{displaymath}

quindi se $\alpha=4$ allora $x(\alpha)=2$.
Introduciamo una perturbazione su questo dato tale che $\alpha \rightarrow \tilde{\alpha}=4-10^{-6}$. Avremo allora $x(\tilde{\alpha})=2+\sqrt{4-4+10^{-6}}=2+10^{-3}$
Segue che

$\displaystyle \varepsilon_{\alpha}$ $\textstyle =$ $\displaystyle \frac{\tilde{\alpha}-\alpha}{\alpha}=-\frac{10^{-6}}{4}=-0.25 \cdot 10^{-6}$  
$\displaystyle \varepsilon_{x(\alpha)}$ $\textstyle =$ $\displaystyle \frac{x(\tilde{\alpha})-x(\alpha)}{x(\alpha)}=\frac{10^{-3}}{2}=0.5 \cdot 10^{-3}$  

Quindi la perturbazione si è amplificata di un fattore nell'ordine di $10^{3}$

In tutto l'elaborato cercheremo di affrontare il problema della propagazione degli errori nei suoi due aspetti fondamentali: il condizionamento del problema e la stabilitá1.3 degli algoritmi utilizzati. In realtá si usa il termine di condizionamento del problema quando possiamo supporre di operare in artimetica esatta e vogliamo vedere come la perturbazione sui dati si ripercuota sui risultati. L' esempio precedente manifesta chiaramente questa situazione: al variare del parametro \bgroup\color{darkgreen}$\alpha$\egroup mutava il risultato.
D'altra parte non possiamo sempre solo teorizzare i problemi, ma dobbiamo usare algoritmi di macchina che possono introdurre amplificazioni negli errori. Abbiamo visto infatti negli esempi, come cambiando semplicemente l'ordine dei fattori di una somma, i risultati ottenuti non sono gli stessi.

next up previous contents index
Next: 2. Norme Up: 1.4 Propagazione degli errori Previous: 1.4 Propagazione degli errori   Indice   Indice analitico
2005-02-09