SEMINARIO DE ANALISIS NUMÉRICO*,
ALGORITMOS QUE REVELAN CARACTERISTICAS INTERNAS DE UNA COMPUTADORA
DIGITAL **,
Como es sabido, las máquinas computadoras digitales cuentan con cierta capacidad para
almacenar información. Esta capacidad es finita y varía dependiendo de la máquina, de
modo que cuando se trata de almacenar información numérica surge el problema de
representar adecuadamente a los números reales.
La forma en que se representan los números reales es mediante los llamados
números de punto flotantes, que se definen por las siguientes características:
1. Un signo (+ ó -),
2. Una mantisa con t dígitos,
3. Una base β,
4. Un exponente е.
Dado que el número de dígitos en la mantisa es finito ciertos números reales no
pueden ser representados exactamente dentro de la computadora y esto propicia un
error, tanto en la representación como en el proceso de realizar operaciones aritméticas.
Dependiendo de cada máquina este error puede ser de alguno de dos tipos:
a) Por redondeo,
b) Por truncamiento,
La finalidad de este trabajo es dar a conocer algunos algoritmos que revelan estas
características, y se pretende que dichos algoritmos puedan ser utilizados en cualquier
computadora digital.
* Trabajo presentado en el Seminario del Grupo de Análisis Numérico del Departamento
de Matemáticas.
** Entregado el 27 de Abril de 1977.
*** Becario del Departamento de Matemáticas de la Facultad de Ciencias
Específicamente se tratará de determinar:
a) t, el número de dígitos en la mantisa;
b) β, la base del sistema;
c) El tipo de error se introduce:
c1) Redondeo
c2) Truncamiento
M. Malcolm (*1) propone un algoritmo general que puede ser ensayado en
cualquier máquina y uno especial para los casos en que la base es 2, 4, 8, 10 o 16. W. M.
Gentleman descubre ciertas deficiencias en el algoritmo de Malcolm y propone una
solución (*2).
Un sistema numérico de punto flotante, como ya se dijo, es aquel en el que sus
elementos están caracterizados por una mantisa de t dígitos, una base β y un exponente
е, con las siguientes restricciones:
t, entero positivo mayor o igual a 1;
β, entero positivo mayor que 1;
е, tal que:
m ≤ е ≤ M, en donde m ≤ 0 y M ¿ t
Cada número de punto flotante se representa como
± . d1d2d3……..dt . β е ,
en donde 0 ≤ di ≤ β – 1 ( i = 1, 2, 3, ……., t)
En particular, si se toma d1 ≠ 0 la forma
± . d1d2d3……..dt . β е
es llamada forma normalizada de representación.
Todos los números que se almacenan en la memoria de una computadora se
representan en la forma normalizada, con excepción del cero que se representa como
. 000 . . . 0 . β m
El resultado de una operación aritmética en punto flotante adquiere la forma
normalizada o es cero, y es aquí en donde se introduce un error, que es inevitable en
cualquier máquina, surge el concepto de precisión de la máquina o épsilon de la máquina,
que es el número positivo ԑ más pequeño tal que
1 ԑ ¿1,
en donde denota la operación suma en el sistema de punto flotante.
Como parte de este trabajo se hará ver en qué forma puede calcularse dicha ԑ.
Antes de concretarnos al estudio del algoritmo, es conveniente familiarizarnos con
un sistema de punto flotante (*3) .
En efecto, hay varias cosas que puede uno preguntarse sobre un sistema numérico
de punto flotante particular. Dado que es finito, ¿ Cuántos elementos tiene?, ¿ Cuáles
son?, ¿ En qué forma están relacionados entre sí?.
Para responder a estas preguntas, consideremos un sistema numérico de punto
flotante con las siguientes características:
t, dígitos en la mantisa;
β, la base del sistema;
е, el exponente acotado según:
m la cota inferior para е ,
M la cota superior.
Un elemento de este sistema, escrito en la forma normalizada es del tipo siguiente:
. d1d2d3……..dt . β
е
Es fácil notar que el número de posibilidades en la mantisa se encuentra a partir
del hecho de que cada uno de los t dígitos puede tomar alguno de β valores, a saber 0,
1, . . . , β – 1 , con excepción del primero, ya que una condición que se tiene es que d1 ≠
0 , por lo tanto el número de configuraciones posibles en la mantisa viene dado por :
(β – 1) . β . β . β . . . . β = t
O bien
(β – 1) β t−1
Por cada configuración en la mantisa se tiene un exponente е que puede ser desde
m hasta M inclusive, es decir que hay un total de
M–m+1
Posibilidades para el exponente.
De esta manera, se tienen
(M – m + 1) (β – 1) β t−1
números positivos, por lo tanto, si consideramos que por cada positivo hay un
correspondiente negativo y tomamos en cuenta el cero, que hasta el momento se ha
excluido, se tiene un total de
2 (M – m + 1) (β – 1) β t−1 + 1
Elementos en el sistema numérico considerado.
El siguiente punto de interés consiste en reconocer al primer elemento a la
derecha del cero, es decir, encontrar aquél número del sistema cuyo valor absoluto sea el
más pequeño.
Es fácil ver que tal número sería
. 1000 . . . 0 . β
m
= t
O sea
m−1
β
Una vez que hemos obtenido este primer elemento podemos localizar al siguiente,
m−1
y al siguiente, etc. En efecto, si consideramos al número β en forma normalizada
. 1000 . . . 0 . β
m
,
el siguiente sería
. 1000 . . . 01 . β
m
= t,
luego seguiría
. 1000 . . . 02 . β
m
,
etc. , hasta llegar al número
. (β – 1) (β – 1) . . . (β – 1) . β
m
= t