Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos
Denir la expresion general de un numero en una base de numeracion.
Comentar las bases de numeracion mas utilizadas.
Detallar como se almacenan los numeros enteros y reales en un ordenador.
Introducir los conceptos de over
ow y under
ow.
Presentar los tipos de errores en calculo numerico: errores de redondeo, errores de
truncamiento y errores inherentes.
Discutir la nocion de cifras signicativas correctas.
Estudiar la propagacion del error en las operaciones aritmeticas elementales y en
una secuencia de operaciones.
4.1 Introduccion
En este captulo se presentaran dos conceptos basicos que apareceran posteriormente en la
mayora de las aplicaciones de los metodos numericos.
El primero es la representacion de un numero en el ordenador. Para ello se estudiara como el
ordenador almacena los numeros enteros y los numeros reales. La caracterstica mas importante
es que siempre se utiliza un numero nito de dgitos para su representacion. Por tanto, resulta
imposible almacenar numeros como = 3:141592653589793238462643 : : : exactamente me-
diante una cantidad nita de cifras. Esta restriccion implica el concepto de error de redondeo,
es decir, el error que se comete al almacenar un numero mediante una cadena nita de dgitos,
cuando para almacenarlo exactamente se precisan muchos mas (o innitos).
El segundo es el concepto de algoritmo. Como se comenta mas adelante, un algoritmo
debe estar formado por un numero nito de instrucciones. Sin embargo, existen procesos que
requieren un numero innito de pasos. Por ejemplo, el calculo exacto de la exponencial de un
numero mediante la serie de Taylor requiere innitos sumandos
Es evidente que resulta imposible calcularlos todos. Por tanto, solo se sumaran unos cuantos
terminos y, consecuentemente, solo se obtendra una aproximacion a la exponencial. El error
que se comete en los calculos al truncar el proceso innito se denomina error de truncamiento.
Por ultimo, en este captulo se analiza como estos errores in
uyen en los calculos posteriores.
Es decir, se estudia la propagacion de los errores en los metodos numericos.
4.2 Numero
Antes de presentar como se almacenan los numeros en el ordenador es necesario repasar
algunos conceptos basicos. El primero es la representacion de un numero en una base de nu-
meracion. Para representar cualquier cantidad en una cierta base de numeracion n, se precisan
n dgitos diferentes (en general: 0; 1; 2; : : : ; n ; 1). En la tabla 4.1 se muestran las bases de
numeracion mas utilizadas en el ambito de los ordenadores.
La representacion general de un numero en una cierta base de numeracion n, si se designa
por di el dgito situado en la i{esima posicion, esta denida por la siguiente expresion
dp dp-1: : : d2 d1 d0 : d-1 d-2 d-3 : : : d-(q-1) d-q n =
dp np + dp-1 np-1 + : : : d2 n2 + d1 n1 + d0 n0 + (4:1)
d-1 -1n + d-2 n-2 + d-3 n-3 : : : d-(q-1) n-(q-1) + d-q n-q
As por ejemplo, los numeros (745.863)10 y (101.011)2 signican respectivamente
745.863 = 7 102 + 4 101 + 5 100 + 8 10-1 + 6 10-2 + 3 10-3
10
y
101.011 = 1 22 + 0 21 + 1 20 + 0 2-1 + 1 2-2 + 1 2-3
2
BASES DE NUMERACIO N
La forma concreta de almacenar los numeros depende ligeramente del tipo de ordenador y
del lenguaje de programacion utilizado, pero siempre se almacenan en el sistema binario (base
dos). Aunque la expresion 4.1 permite representar tanto numeros enteros (parte fraccionaria
nula) como reales, ambos tipos de numeros de almacenan de forma distinta en el ordenador.
En estas condiciones, el numero entero maximo (en valor absoluto) que se puede almacenar
se obtiene para dS-2 = = d1 = d0 = 1 (vease la gura 4.2)
y su valor es
As pues, utilizando S posiciones pueden guardarse todos los enteros comprendidos entre
;(2S-1 ; 1) y 2S-1 ; 1. En particular, el numero entero no nulo mas proximo a cero que puede
almacenarse es logicamente 1 (vease la gura 4.3):
Nm{n = 1 20 = 1 (4:3)
A partir de la expresion 4.2 es facil comprobar que para una variable INTEGER*2 de FOR-
TRAN (S = 16 posiciones para almacenar el numero entero), el numero maximo (en valor
absoluto) es 32 767. As mismo, para las variables INTEGER*4 (S = 32 posiciones) el numero
maximo (en valor absoluto) es 2 147 483 647. Es importante remarcar que estas limitaciones
en la capacidad de almacenar numeros esta asociada a la utilizacion de una aritmetica nita.
Todos los ordenadores almacenan los numeros reales en base dos y en coma
otante. La
diferencia entre un tipo de ordenador y otro reside, por una parte, en el numero de dgitos (bits
en el sistema binario) que se reserva para la mantisa y el exponente y por otra, en el orden en
que estos se almacenan. En cualquier caso, se puede suponer que el ordenador almacena los
numeros reales en:
Base dos.
Coma
otante.
Con M posiciones para la mantisa (una de ellas, para el signo de la mantisa).
Con E posiciones para el exponente (una de ellas, para el signo del exponente).
Este tipo de almacenamiento se representa gracamente en la gura 4.4. Puede observarse que
se reservan dos posiciones para los signos (el de la mantisa y el del exponente).
Teniendo en cuenta la expresion 4.1 y la representacion en coma
otante, el valor del numero
real es
:d-1 d-2 d-3 : : : d-(M-1) 2(dE-2 ::: d2 d1 d0 ) = 2
2
+ d-2 2-2 + : : : + d-(M-1) 2-(M-1) 2(dE-2 2
E-2 + ::: + d 21 + d 20 )
d-1 2-1 1 0
Mediante esta representacion, el numero real mayor (en valor absoluto) que se puede almacenar
se obtiene a partir de la mantisa maxima y el exponente maximo (vease la gura 4.5):
1 2E-2 + ::: + 1 21 + 1 20
N
max = 1 2-1 + 1 2-2 + : : : + 1 2-(M-1) 2
= 1 1 + 12 + : : : + 12
2 (M-1) E;
2 2 ;1
( 1)
(4:4)
2
(M;1)
= 21 1 ;1 ;(1=(12)=2) 2 2 ;1 = 1 ; 2(1;M) 2 2 ;1
E;
E; ; ( 1) ( 1)
Por otro lado, el numero real no nulo mas proximo a cero que puede almacenarse se obtiene
para la mantisa mnima y el maximo exponente con signo negativo, como muestra la gura 4.6:
y su valor es
; 12E-2 + ::: + 122 + 121 + 120
Nm{n = 1 2-1 2
(4:5)
E; E;
= 2;1 2; 2 ;1 = 2; 2
( 1) ( 1)
un error que se denomina over
ow. Del mismo modo, cuando se intenta almacenar un numero
menor que el mnimo (gura 4.6) se produce un error llamado under
ow. Lo que sucede
exactamente en ambos casos, as como el posible mensaje de error, depende del ordenador y
del compilador utilizado. De todos modos, debe ser el programador quien tome las medidas
oportunas a n de evitar estos problemas.
Problema 4.1:
En el lenguaje de programacion C existe un tipo de variable llamado unsigned
integer que se caracteriza, basicamente, por ser una variable entera de 16 bits o
32 bits (dependiendo del procesador de que se disponga) que solo puede tomar
valores positivos (no se reserva una posicion para el signo). Se pide:
a) Determinar para cada caso de unsigned integer (16 bits o 32 bits) cual es el
mayor numero entero y el entero mas proximo a cero (ambos en valor absoluto)
que se puede almacenar.
b) >Que tipo de variable permite almacenar un numero mayor en valor absoluto:
un unsigned integer de 16 bits, uno de 32 bits (lenguaje C) o un INTEGER*4
en lenguaje FORTRAN?
c) >Cual de los tres tipos de variables enteras mencionadas en el apartado b
permite almacenar el numero k = 3125587976? >Cual de los tres anteriores
tipos de variable enteras permite almacenar el numero ?
4.3 Algoritmo
Un algoritmo es un sistema organizado para resolver un problema, formado por una serie
nita de instrucciones que solo se pueden interpretar unvocamente y que se realizan secuen-
cialmente.