Quindi quando eseguiamo un algoritmo su un calcolatore, si ha una generazione e propagazione di errori.
Per esaminare la generazione degli errori inerenti bisognare parlare di rappresentazione in base di un numero. Dato un intero $\beta>1$ (detto base della rappresentazione), un nnumero $x \in \mathbb{R}, x \neq 0$, si può scrivere/esprimere in modo univoco nella forma:
$x=segno(x)[d_1\beta^{-1}+d_2\beta^{-2}+...]\beta^p=\pm\beta^p\sum\limits_{i=1}^{+\infty}d_i\beta^{-1}$
- $x=segno(x)=\begin{cases}1, & \mbox{if } x>0\\-1, & \mbox{if } x<0\end{cases}$
- $p \in \mathbb{Z}$ detto caratteristica (o esponente) della rappresentazione di $x$.
- $d_i \in \mathbb{Z}, i=1,2,...$, sono dette cifre della rappresentazione di $x$ e verificano le condizioni
- $0 \leq d_i \leq \beta - 1, i=1,2,...$
- $d_1 \neq 0$ e $d_i$ non sono mai definitivamente uguali a $\beta-1$
Notazione posizionale.$x=\pm(.d_1d_2...)\beta^p$ $d_1 \neq 0 \rightarrow$ notazione normalizzata.
La normalizzazione oltre ad essere necessaria per l'unicità, si rivela vantaggiosa quando si rappresenta un numero solo con un numero finito di cifre.
Esempio:
$x=frac{1}{7000}$ può essere rappresentato in $\beta=10$ nei due modi seguenti:
- $x_1=(.142857142857...)10^{-3}$ ovvero in rappresentazione normalizzata
- $x_2=(.000142857142857...)$ rappresentazione non normalizzata.
per un numero massimo di $t=12$ cifre di mantissa
- $x_1=(.142857142857...)10^{-3}$
- $x_2=(.000142857142...)$
$\Rightarrow x_1$ è una rappresentazione di $x$ migliore di $x_2$ perché guadagno 3 numeri di mantissa. Ovvero fornisce un'approssimazione migliore di $x$ rispetto ad $x_2$, perché l'informazione che in $x_2$ è contenuta negli zeri viene spostata all'esponente.
Nessun commento:
Posta un commento