You are on page 1of 22

UNI-FIM Mtodos Numricos

Teora de Errores y Aritmtica del Computador Pag. 1


Teora de Errores y Aritmtica del Computador

1.1 Introduccin al Clculo Numrico

El extendido uso del computador digital ha tenido un profundo efecto en la
Ingeniera y Ciencia, esto ha trado muchos beneficios. Con computadoras y
software apropiado podemos modelar y analizar complejos sistemas y problemas
fsicos. Sin embargo, el eficiente y preciso uso de los resultados numricos
obtenidos de programas de computador requiere considerable experiencia y
avanzados conocimientos para evitar desatinos. En este curso intentamos proveer de
algo de la experiencia y conocimientos necesarios para evitar tales dificultades.

Si se desea resolver un problema fsico B, lo primero que se suele hacer es traducirlo
al lenguaje matemtico para dar un problema matemtico A. Se estudia la existencia
y unicidad de la solucin u de este problema, pero en la mayor parte de los casos y
despus de probado esto, no se sabe cmo determinar la solucin de forma efectiva.
Por ello, se sustituye el problema matemtico A por un problema prximo a l, Ah,
en el que aparecer algn parmetro h que se va a hacer tender hacia un cierto valor
(normalmente 0). Se exige que este problema tenga solucin nica, uh, y se espera
que al tender h hacia el valor elegido, uh converja hacia u. Esquemticamente este
tratamiento tpico (pero no nico), es el siguiente:


De este planteamiento surgen algunos problemas interesantes:

a) Cul es la velocidad de convergencia de uh hacia u?
b) Problemas de estabilidad; es inevitable cometer errores en el clculo, debido a
los redondeos que efectan los computadores. Interesa que pequeos errores
cometidos en los clculos que conducen a uh hagan que el resultado no difiera
mucho de u;.
c) Coste del proceso. Cuntas operaciones deben realizarse? Cunto tiempo se
precisar para realizarlas?

1.2 Teora de Errores

En este captulo citaremos las diferentes fuentes bsicas de los errores, y las
nociones importantes de la teora de errores.

1.2.1 Fuentes bsicas de los errores

Casi siempre la medida de las magnitudes al igual que las soluciones
numricas a problemas reales, contienen errores que tienen diferentes
orgenes, que las podemos resumir en:

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 2
a) Error del modelo o error del problema
En los fenmenos de la naturaleza muchas veces efectuamos ciertas
hiptesis, es decir aceptamos determinadas condiciones que nos dar una
situacin aproximada del fenmeno estudiado, de esta manera podemos
plantear el comportamiento de dicho fenmeno por medio de un modelo
matemtico.

Por ejemplo en la cada libre de un cuerpo, si despreciamos la resistencia del
aire la distancia h recorrida despus de un tiempo t est modelado por la
frmula:
2
2
1
t g h = donde g es la gravedad

b) Error del mtodo
Cuando un problema planteado en forma precisa no puede resolverse en
forma exacta o es muy difcil de hallar la solucin, se frmula una
aproximacin del modelo, que ofrezca prcticamente los mismo resultados
(mtodo).

La vibracin libre de una membrana elstica circular est modelada por la
ecuacin:
2
2
2 2
2
2
1 1 1
t
u
c
u
r r
u
r
r r c
c
=
c
c
+
(

c
c
c
c
u

) , , ( t r u u u = satisface cierta condicin de contorno.
Est ecuacin puede aproximarse de manera adecuada (por ejemplo usando
diferencias finitas) y de esta forma conocer una solucin aproximada.

c) Error residual
Son los originados por las series infinitas, al considerar solo una parte finita.
Por ejemplo:
... ! 3 / 1 ! 2 / 1 2 + + + = e
! / 1 ... ! 3 / 1 ! 2 / 1 2 n e + + + = para cierto valor n.

d) Error inicial
Son los originados por los parmetros cuyos valores son conocidos
aproximadamente:
Por ejemplo: La constante de Planck
( ) seg erg h =
27
10 00027 . 0 62377 . 6 .

e) Errores de redondeo
Originados por la representacin finita de los nmeros, es el caso de las
computadoras (notacin de punto flotante).

Por ejemplo: 1666 . 0 6 / 1 = se redondea en un nmero finito de dgitos.

f) Error de operacin
Podemos distinguir dos casos:
Operacin (exacta) de nmeros aproximados:
Por ejemplo: 2083 . 3 1667 . 0 1416 . 3 6 / 1 = ~ t .
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 3
Operacin (aproximada) de nmeros exactos:
8 8 8
10 23 . 0 10 36 . 1 10 23 . 0 x x x ~

, el valor verdadero es:
9999999864 . 22999999

En la medicin de magnitudes, sea directamente en un experimento o
indirectamente mediante una relacin (frmula) aplicada a datos
experimentales, distinguimos dos tipos de errores: sistemtico y casual.

g) Error sistemtico
Son aquellos, que sin variar las condiciones del ensayo entran de igual modo
en cada resultado de las mediciones, pueden ser originados por:
Defecto del instrumento
Las condiciones del ambiente
La metodologa de la medicin
Precisin limitada del instrumento
Las particularidades del experimentador

h) Error Casual o Accidental (fortuito)

Son los que estn vinculados con los factores que sufren pequeas
variaciones (aleatorias) durante el experimento:

1.2.2 La estabilidad del problema

Significa que pequeos cambios en los datos producen pequeos cambios en la
solucin exacta del problema inicial. De los problemas que no verifican esta
propiedad, se dicen que estn mal condicionados.

1.2.3 Error absoluto, relativo y precisin

Consideremos A el valor exacto de la medida de cierta magnitud (en general
desconocida) y sea a un valor conocido que se llamar aproximacin de A.
Evidentemente la buena cualidad de la aproximacin es de acuerdo a cuan
prximo est a de A.

Definiciones:

a) Llamamos error absoluto del nmero aproximado a al valor:
a A
a
=
y todo nmero
a a
>
*
, se denominar cota del error absoluto.
b) Llamamos error relativo del nmero aproximado a al valor:
0 , = = A
A
a
a

o
y todo nmero
a a
o o >
*
, se denominar cota del error relativo.

c) Dado un 0 > c (pequeo) decimos que el valor a aproxima a A con una
precisin c si:
c s = a A
a

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 4

d) Sean A y a dos nmeros reales. Se dice que a es una aproximacin de
A con n cifras decimales exactas (o que A y a coinciden en n cifras
decimales), si n es el mayor entero no negativo tal que

n
a
x

s 10 5 . 0

Ejemplo:

Una aproximacin de A = t = 3.141592 con tres cifras decimales exactas
es 1415 . 3 = a , ya que

00005 . 0 10 5 . 0 ... 000092 . 0 1415 . 3
0005 . 0 10 5 . 0 ... 000092 . 0 1415 . 3
4
3
= > =
= < =

t
t

Sin embargo, el nmero 3.141 coincide con t en slo dos cifras decimales
exactas, ya que
005 . 0 10 5 . 0 ... 000592 . 0 141 . 3 0005 . 0 10 5 . 0
2 3
= < = < =

t

e) Sean A y a dos nmeros reales, con A=0. Se dice que a es una
aproximacin de A con n cifras decimales significativas exactas (o que A
y a coinciden en n cifras decimales significativas), si n es el mayor
entero no negativo tal que

n
a
x

s 10 5 o .

Ejemplo:

El nmero 124.45 coincide con 123.45 en dos cifras significativas, ya que

2 3
10 5 ... 0081 . 0
45 . 123
1
45 . 123
45 . 124 45 . 123
10 5

< = =

<
El nmero 251.75 coincide con 250.75 en tres cifras significativas, ya que

3 4
10 5 ... 0039 . 0
75 . 250
1
75 . 250
75 . 251 75 . 250
10 5

< = =

<

f) Terminacin por redondeo:
Representacin decimal 0. a
1
a
2
a
3
..a
t
a
t+1
0 a
i
9, a
1
0
Entonces se forma: 0.a
1
a
2
a
3
..a
t
si 0 a
t+1
4
0.a
1
a
2
a
3
..a
t
+
t
10 si a
t+1
5.

g) Terminacin por truncamiento:
Representacin decimal 0.a
1
a
2
a
3
..a
k
a
k+1
a
k+2
....
Entonces para k dgitos de la mantisa se forma 0.
1
a
2
a
3
..a
k-1
a
k
.

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 5
1.2.4 Propagacin del error de las funciones

Al resolver un problema utilizando mtodos numricos, en general el error ser
consecuencia de un cmulo de errores ocurridos en pasos sucesivos, se debe
estudiar la mecnica de propagacin de los mismos a lo largo del clculo.
Un mito comn es que las computadoras modernas trabajan con tal grado de
precisin que los usuarios no necesitan contemplar la posibilidad de resultados
inexactos. Esto se ve reforzado cuando vemos en la pantalla los resultados con
gran cantidad de cifras. Sin embargo, veremos a lo largo del curso que la falta de
cuidado en clculos aparentemente directos y triviales puede conducir a
resultados catastrficos.

REGLAS DE PROPAGACIN
Los errores se propagan de acuerdo a las reglas que se presentan a continuacin:

a) Suma: Propaga los errores absolutos

y x y x
+ ~
+

b) Producto y cociente ( si
x
o y
y
o son pequeos): propaga los errores relativos

y x y x
o o o + ~
.


y x y x
o o o + ~
/

c) Funciones de una variable: ( ) x f y =
x y
y ' ~
d) Funciones de varias variables: ( )
n
x x x f y , , ,
2 1
=
i
x
n
i
i
x
f
y

= c
c
~
1



1.2.5 Errores de punto flotante

ARITMTICA DE PUNTO FLOTANTE

Las operaciones de suma, resta, multiplicacin y divisin en el sistema de punto
flotante (F), se denota por y , , respectivamente. Estas operaciones
estn definidas por:
0 , 0 ) ( )), ( ) ( (
)) ( . ) ( (
)) ( ) ( (
)) ( ) ( (
= = =
=
=
+ =
y y fl y fl x fl fl y x
y fl x fl fl y x
y fl x fl fl y x
y fl x fl fl y x


Estas operaciones no son cerradas sobre F, pues en algunos casos se genera
underflow u overflow; ms an en otros casos producen una variedad de errores,
que se indican ms adelante. Esto nos lleva a situaciones inesperadas, por lo que
se recomienda siempre tener presente estas situaciones en el momento que se
programa o analizan los resultados numricos de algn software en particular.

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 6
Los errores cometidos al realizar operaciones aritmticas en el sistema de punto
flotante, los podemos tipificar segn los siguientes criterios:

1. Error de Redondeo: Ya se menciono que ste tipo de error es el obtenido por
el proceso de redondeo (exceso o defecto) de los nmeros reales en su
representacin por nmeros punto flotante de mquina.

2. Error Significativo: Este error ocurre con frecuencia cuando se restan
nmeros casi iguales o cuando se suman nmeros "casi iguales" en magnitud,
pero de signos contrarios. Tambin se presentan cuando se divide por un
divisor relativamente pequeo.

Ejemplo 1:
Sea un ordenador (hipottico) que trabaje con nmeros expresados en base 10,
con cuatro dgitos de precisin, y con aproximacin por redondeo.

a) La suma de dos nmeros
Sean 3 / 4 = x e 9 / 2 = y ; se pide calcular y x + . Evidentemente, si se
efecta un clculo exacto, se obtiene ... 5555 . 1 9 / 14 = = + y x con lo que
1
10 1556 . 0 ) ( = + y x fl
Sin embargo, los clculos del ordenador se haran todos en la
correspondiente aritmtica de punto flotante, es decir, como ... 3333 . 1 = x e
..., 2222 . 0 = y resulta
1
0 1
10 155 . 0 ) 5552 . 1 ( ) 2222 . 0 3333 . 1 ( )) ( ) ( (
y
10 2222 . 0 ) ( , 10 1333 . 0 ) (
= = + = +
= =
fl fl y fl x fl fl
y fl x fl

Se observa pos consiguiente que ) ( )) ( ) ( ( y x fl y fl x fl fl + = +


b) La resta de dos nmeros muy prximos entre s
Sean:

3720230572 . 0
3721478693 . 0
=
=
y
x

Se pide calcular y x . Evidentemente, si se efecta un clculo exacto, se
obtiene
0001248121 . 0 = y x
Si los clculos se realizan con precisin de 4 decimales:
0001 . 0 ) ( ) (
3720 . 0 ) (
3721 . 0 ) (
=
=
=
y fl x fl
y fl
x fl

Error relativo =
( ) ( )
0.1988
) ( ) (
=


y x
y fl x fl y x

Es decir, del orden del 19.88%, error relativo que es por tanto muy elevado

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 7
En consecuencia, hay que evitar que en el ordenador se produzcan
operaciones de sustraccin de sumandos casi iguales. Esto puede lograrse de
diversas maneras, y a continuacin exponemos un ejemplo

Ejemplo 2:
Al calcular: 1 1
2
+ = x y , cuando
10
10

= x , se obtiene 0 = y .
Se puede reescribir de otra manera:
( )
21
2
2
2
2
2
10 5
1 1
1 1
1 1
1 1

~
+ +
= + +
+ +
+
= x
x
x
x
x
x
y


1.3 Aritmtica del computador

1.3.1 Representacin de nmeros en el computador
Los computadores trabajan con aritmtica real usando un sistema denominado
de punto flotante. Suponen un nmero real que tiene la expansin binaria:
Ee
x m x 2 = , donde 2 1 < s m
y ( ) 1 0 .
2 3 2 1 0
o b b b b b m
i
= =
Cuando 1
0
= b , se dice que es un nmero normalizado.
Exponente externo (Ee), donde Ee=Ei-bias
bias=2
k-1
-1, con k= # de bits del Exponente interno (Ei)
Para almacenar un nmero en representacin de punto flotante, el computador
usa 3 campos:
Signo (S) Exponente Interno (Ei) Mantisa (M)

Signo (S): El signo del numero, 0=positivo, 1=negativo.
Exponente (Ei): Potencia de la base 2, mas adelante se explica con ms detalle
Mantisa (M): Dgitos de la parte decimal 1 0
3 2 1
o b b b b M
i
= = .





Dado que un nmero en punto flotante puede expresarse de distintas formas que
son equivalentes, es necesario establecer una nica representacin. Es por ello
que se trabaja con nmeros normalizados. Decimos que un nmero est
normalizado si el dgito a la izquierda del punto o coma est entre 0 y la base
(0 < dgito a la izquierda del punto < b).

En particular, decimos que un nmero binario est normalizado si el dgito a la
izquierda del punto es igual a 1

Ejemplo:
1.00 10
-1
normalizado
0.01 10
2
no normalizado

1.3.2 Distribucin de los datos en la recta numrica
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 8


- Si en los clculos se genera un resultado inferior al menor valor positivo que
tenga almacenamiento exacto en el computador se producir un
desbordamiento denominado Underflow. El menor valor positivo es un
valor no normalizado o subnormal (realminsub).
- Tambin existe un menor valor normalizado (realmin).
- El nmero positivo mas grande que se puede almacenar se denomina
realmax, si en los clculos se genera un resultado mayor que este valor
adoptara el valor inf, lo que indica un desbordamiento de rango.
- La precisin de la maquina (epsilon) segn la IEEE se define como la
distancia de 1 al siguiente numero que tenga almacenamiento exacto.
- Puesto que la cantidad de nmeros a almacenar es una cantidad finita, la
mayora de nmeros reales tendrn que ser aproximados a aquellos que
tienen una representacin exacta en el sistema de punto flotante empleado.
Esto origina las perdidas de precisin por redondeo.

1.3.3 Estndar IEEE-754 para representacin de Punto Flotante

Este estndar se desarroll para facilitar la portabilidad de los programas de un
procesadora otro y para alentar el desarrollo de programas numricos
sofisticados. Este estndar ha sido ampliamente adoptado y se utiliza
prcticamente en todos los procesadores y coprocesadores aritmticos actuales.
El estndar del IEEE define el formato para precisin simple de 32 bits y para
precisin doble de 64 bits.
Hasta la dcada de los 90 cada computador utilizaba su propio formato en punto
flotante, en 1985 se introduce el estndar IEEE-754 con la finalidad de
uniformizarlos.

1.3.4 Nmeros de simple y doble precisin

Precisin simple: (32 bits)
Signo (S)
1 bit
Exponente (E)
8 bits
Mantisa (M)
23 bits

Precisin doble: (64 bits)
Signo (S)
1 bit
Exponente (E)
11 bits
Mantisa (M)
52 bits
La doble precisin permite manejar mas cifras significativas y exponentes de
mayor rango que en simple precisin.
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 9

A continuacin se muestra una tabla de conversin muy importante:

Precisin simple (32 bits): Exponente Exceso 127( Ei)
Exponente interno(Ei) Mantisa Representa
-127 (combinacin binaria 0) 0 0
-127 (combinacin binaria 0)
{Notacin Subnormal}
0 =
( ) ( )
126
2 23 2 1
2 . . 0 1

m m m
S

{Notacin Subnormal}
[-126,127] (combinacin binaria [1, 254])
{Notacin Normal}
----
( ) ( )
( ) 127
2 23 2 1
2 8 2 1
2 . . 1 1

e e e S
m m m

{Notacin Normal}
128 (combinacin binaria 255) 0 inf
128 (combinacin binaria 255) 0 = NaN

Precisin doble (64 bits): Exponente Exceso 1023 (Ei)

Exponente Mantisa Representa
-1023 0 0
-1023 0 =
( ) ( )
1022
2 52 2 1
2 . . 0 1

m m m
S

[-1022,1023] ----
( ) ( )
( ) 1023
2 52 2 1
2 11 2 1
2 . . 1 1

e e e S
m m m


1024 0 inf
1024 0 = NaN
1.3.5 Consideraciones especiales

- Definicin del cero: puesto que el significando se supone almacenado en forma
normalizada, no es posible representar el cero (se supone siempre precedido de
un 1). Por esta razn se convino que el cero se representara con valores 0 en el
exponente y en la mantisa. Ejemplo:
0 00000000 00000000000000000000000 = +0
1 00000000 00000000000000000000000 = -0
Observe que en estas condiciones el bit de signo S an permite distinguir +0
de -0. Sin embargo el Estndar establece que al comparar ambos "ceros" el
resultado debe indicar que son iguales.
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 10
- Infinitos: se ha convenido que cuando todos los bits del exponente estn a 1 y
todos los de la mantisa a 0, el valor es +/- infinito (segn el valor S). Esta
distincin ha permitido al Estndar definir procedimientos para continuar las
operaciones despus que se ha alcanzado uno de estos valores (despus de un
overflow). Ejemplo:
0 11111111 00000000000000000000000 = +Infinito
1 11111111 00000000000000000000000 = -Infinito
- Valores no-normalizados: (denominados tambin "subnormales"). Se
identifican porque todos los bits del exponente son 0 pero la mantisa presenta
un valor distinto de cero (en caso contrario se tratara de un cero).

Ejemplo:
1 00000000 00100010001001010101010
- Valores no-numricos: Denominados NaN ("Not-a-number"). Se identifican
por un exponente con todos sus valores a 1, y una mantisa distinta de cero.
Ejemplo:
0 11111111 10000100000000000000000
1 11111111 00100010001001010101010



1.3.6 Sistemas de nmeros y conversiones

Partiremos entonces describiendo a un sistema de numeracin como un conjunto
de smbolos usados para representar informacin numrica. Tenga en cuenta que
el nmero de smbolos de este conjunto depende de la base del sistema de
numeracin.
Ahora s, nos permitimos darle a conocer los siguientes sistemas de numeracin:
Binario {0,1}
Decimal {0,1,2,3,4,5,6,7,8,9}
Octal {0,1,2,3,4,5,6,7}
Hexadecimal {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 11
- Un nmero en base q se denota como:
q k n n
b b b a a a a ) . (
2 1 0 1 1

donde q
toma valores desde 0 hasta q-1
- La conversin a decimales es, por definicin:



+ + + + +
+ + + + + =


k
k
n
n
n
n q k n n
q b q b q b
q a q a q a q a b b b a a a a
2
2
1
1
0
0
1
1
1
1 2 1 0 1 1
) . (

- El sistema natural de numeracin digital es el binario (base 2), utilizando
slo los dgitos 0 y 1.
Ejemplo:
Decimal:
2 1 0 1 2
10
10 5 10 2 10 3 10 2 10 1 ) 25 . 123 (

+ + + + =
Binario: 25 . 11 2 1 2 0 2 1 2 1 2 0 2 1 ) 01 . 1011 (
2 1 0 1 2 3
2
= + + + + + =



- La conversin de base decimal a base q es:
Conversin de la parte entera:
q q n n q n n
a q a a a a a a a ) ( ) ( ) (
0 1 1 0 1 1
+ =


Al dividir un nmero entero entre q el resto es el dgito menos significativo
del nmero en base q. Dividiendo sucesivamente (hasta llegar al cociente 0)
obtenemos los sucesivos dgitos del nmero en base q.

Conversin de la parte fraccionaria:

q k q q k
b b b q b b b ) (. ) ( ) (.
2 1 2 1
+ =
La parte entera del resultado de multiplicar nuestro nmero por q es el
primer dgito tras el punto decimal. Reteniendo la parte fraccionaria que
resulta en cada paso y repitiendo sucesivamente el proceso, vamos
obteniendo el resto de cifras tras el punto.

Ejemplo:
Convertir (15)
10
en base 2
Solucin:

Ejemplo:
Escribamos (26.1)
10
en base 2
Solucin:
Parte entera: Dividiendo sucesivamente, tenemos que:
1 0 2 1 ; 1 1 2 3 ; 0 3 2 6 ; 1 6 2 13 ; 0 13 2 26 + = + = + = + = + =
Leyendo de izquierda a derecha los nmeros subrayados:
(26)
10
= (11010)
2

Parte fraccionaria: Multiplicando sucesivamente por dos y separando la parte
fraccionaria:

=
= = = = =
2 2 . 0
; 2 . 1 2 6 . 0 ; 6 . 1 2 8 . 0 ; 8 . 0 2 4 . 0 ; 4 . 0 2 2 . 0 ; 2 . 0 2 1 . 0

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 12

Leyendo de izquierda a derecha tenemos los dgitos de la parte fraccionaria
(subrayados) luego (0.1)
10
= (0.00011)
2
.
Donde las cifras subrayadas son las cifras peridicas.

Por lo tanto: (26)
10
= (11010.00011)
2

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 13
1.3.7 Ejercicios resueltos

1. Representar segn el estndar IEEE de punto flotante precisin simple para los
siguiente valores:
a) 7
b) 21

Solucin:
(a)
Convertimos el nmero a binario: 7
10
= 111
2

Normalizamos el nmero:
2
2 2
10 11 . 1
Calculamos el exponente con exceso 127 para precisin simple
2+127=129
10
= 1000 0001
2
El nmero 7
10
en el estndar IEEE es representado como:

0 10000001 11000000000000000000000

(b)

2 10
4
2 2 2 10
10000011 131 127 4 : exponente
10 0101 . 1 10101 21
= = +
= =


0 10000011 01010000000000000000000

2. Convertir 0.5
10
a binario y hallar su representacin en IEEE precisin simple

Solucin:
Convertimos el nmero a binario:
2 10
1 . 0 5 . 0 ; 0 . 0 2 0 . 0 ; 0 . 1 2 5 . 0 = = =
Normalizamos el nmero:
1
2 2 10
10 0 . 1 5 . 0

=
Calculamos el exponente con exceso 127 para precisin simple
-1+127=126
10
= 01111110
El nmero 0.5
10
en el estndar IEEE es representado como:

0 01111110 00000000000000000000000


3. Cual es el valor decimal de: 1 01111100 11000000000000000000000?

Solucin:
El bit de signo es 1: Numero negativo
El exponente contiene 01111100 = 124
La mantisa es 0.1100. = 0.75

El valor es: ( ) ( ) ( ) 21875 . 0 2 75 . 0 1 1
127 124
= +

x x





4. Convertir 3.75 a binario y hallar su representacin en IEEE precisin simple
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 14

Solucin:

Convertimos el nmero a binario:
2 10
11 . 11 75 . 3 =
Normalizamos el nmero:
1
2 10
2 111 . 1 75 . 3 =
Calculamos el exponente con exceso 127 para precisin simple
1+127=128
10
= 1000 0000
2
El nmero 3.75
10
en el estndar IEEE es representado como:

0 1000 0000 11100000000000000000000

5. Cual es la representacin en simple precisin de 347.625?

Solucin:

Convertir a binario: 347.625 = 101011011.101
Normalizar el numero (mover el punto decimal hasta que haya un solo 1 a la
izquierda) :
101011011.101=1.01011011101x2
8
Mantisa: 01011011101
Calculamos el exponente con exceso 127 para precisin simple
8 + 127 = 135
10
= 10000111
2

El numero es positivo: bit de signo 0

0 10000111 01011011101000000000000

6. Si suponemos una representacin en punto flotante como a continuacin se detalla,
donde v indica el valor del nmero representado, determinar:

a) La representacin del 1,
b) El mnimo nmero no nulo normalizado representable en valor absoluto,
c) El mnimo nmero representable en valor absoluto (distinto de 0), y
d) El mximo nmero representable en valor absoluto.

Signo(1 bit) Exponente (8 bits) Mantisa (32 bits)
S E f
126
127
2 * . 0 * ) 1 ( 0
2 * . 1 * ) 1 ( 255 0

= =
= < <
f v e
f v e
s
e s

Solucin

a) Representacin del 1

0 01111111 00.0

v=1.0*2
127-127


b) Mnimo nmero no nulo normalizado
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 15

0 00000001 00.0

v=1.0*2
1-127

c) Mnimo nmero representable no nulo

0 00000000 0001

v=0.0.1*2
-126

d) Mximo nmero representable en valor absoluto

0 11111110 1 1 1.111

v=1.1.1*2
254-127

7. Sea un sistema binario de punto flotante de 16 bits:

s e
1
e
2
e
3
e
4
e
5
m
1
m
2
m
3
m
4
m
5
m
6
m
7
m
8
m
9
m
10


Donde los nmeros normalizados son de la forma:
( )
15
2
5 4 3 2 1
2
10 3 2 1
. 1 1

=
|
.
|

\
|
e e e e e
m m m m
s
x
Adems:
00000
2
< (e
1
e
2
e
3
e
4
e
5)2
<11111
2

Muestre la representacin en punto flotante y los 16 bits del:

a) Numero 1
b) El numero 1+eps
c) Mayor valor positivo normalizado
d) Menor valor positivo normalizado
e) El numero: 475.65625

Solucin

a)
( )
15
2
01111 0
2 0000000000 . 1 1

x

0 01111 0000000000

b)
( )
15
2
01111 0
2 0000000001 . 1 1

x

0 01111 0000000001




UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 16
c)
( )
15
2
11110 0
2 1111111111 . 1 1

x

0 11110 1111111111

d)
( )
15
2
00001 0
2 0000000000 . 1 1

x

0 00001 0000000000

e)
475.65625=111011011.10101
2
=1.1101101110x2
8

(e
1
e
2
e
3
e
4
e
5)2-15=8
(e
1
e
2
e
3
e
4
e
5)2=23=10111 2

0 10111 1101101110


1.3.8 Ejercicios propuestos

1. Convertir 0.3
10
a binario y hallar su representacin en IEEE precisin
simple.
2. Cual es el nmero siguiente a 143.1 que tiene representacin exacta en
simple precisin?
3. Qu nmero decimal representa el siguiente patrn de bits en IEEE
precisin simple?
0 00001100 01000000000000000000000

4. Determine para los sistemas de simple y doble precisin:
- El menor valor positivo normalizado
- El menor valor positivo no normalizado
- El mayor valor positivo
- El epsiln de la maquina

UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 17
1.4 Puntos flotantes en MATLAB

A continuacin reproducimos un interesantsimo artculo de Cleve Moler
http://www.mathworks.com/company/newsletters/news_notes/pdf/Fall96Cleve.pdf
Uno de los creadores del MATLAB ( vs. Traducida Por R.M.G.J.):

Puntos Flotantes

Si vemos cuidadosamente las definiciones de las principales operaciones aritmticas como
la suma y la multiplicacin, rpidamente encontraremos la abstraccin matemtica conocida
como los nmeros reales. Pero el cmputo efectivo con nmeros reales no es muy prctico
porque ello implica lmites e infinitos. En cambio, MATLAB y muchos otros ambientes de
computacin tcnica usan aritmtica de punto flotante, lo cual implica un conjunto finito de
nmeros con precisin finita. Esto conduce a fenmenos tales como errores de redondeo,
underflow y overflow. La mayor parte de las veces, MATLAB puede ser usado
efectivamente sin preocuparse por estos detalles, pero algunas veces, es conveniente
conocer algo acerca de las propiedades y limitaciones de los numero de punto flotante.
Hace veinte aos la situacin era ms complicada de lo que es actualmente. Cada
computadora tena su propio sistema numrico de punto flotante. Algunos eran binarios;
otros eran decimales. Incluso haba una computadora rusa que utilizaba aritmtica ternaria.
Entre las computadoras binarias, algunas usaban 2 como base; otras utilizaban 8 o 16. Y
cada una tena una precisin diferente.

En 1985, el IEEE Standards Board y la American National Standards Institute adoptaron la
norma ANSI/IEEE Standard 754-1985 para la aritmtica binaria de punto flotante. Esto fue
la culminacin de casi una dcada de trabajo de un grupo de 92 personas, matemticos,
cientficos de computadoras e ingenieros provenientes de Universidades y compaas
fabricantes de computadoras y microprocesadores.

Todas las computadoras diseadas en los ltimos 15 aos usan la aritmtica flotante de la
IEEE. Esto no significa que todas obtienen exactamente los mismos resultados, porque hay
cierta flexibilidad dentro del estndar. Pero si que tendremos un modelo independiente de la
mquina de cmo la aritmtica de punto flotante se comporta.
MATLAB utiliza el formato de doble precisin de la IEEE. Tambin hay un formato de
simple precisin el cual ahorra espacio pero no es mucho ms rpido en las mquinas
modernas. Y, hay un formato de precisin extendida, el cual es opcional y por consiguiente
es una de las razones para la ausencia de uniformidad entre diferentes mquinas.
Muchos nmeros de punto flotante estn normalizados. Esto significa que ellos pueden ser
expresados como:

x = ( 1 + f ) 2
e


donde f es la fraccin o mantisa y e es el exponente. La fraccin debe satisfacer:

0 s f < 1

y debe ser representable en binario usando a lo ms 52 bits. En otras palabras 2
52
f debe ser
un entero en el intervalo:

0 s2
52
f < 2
53


El exponente debe ser un entero en el intervalo:
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 18
-1022 s e s 1023

El que f sea finito es una limitacin sobre la precisin. El que e sea finito es una limitacin
sobre el rango. Los nmeros que no cumplen estas limitaciones deben ser aproximados por
otros que s:

Los nmeros de punto flotante de doble precisin pueden se almacenados en una extensin
de 64 bits, con 52 bits para f, 11 bits para e y 01 bit para el signo del nmero. El signo de e
es acomodado almacenando e+1023, el cual esta entre 1 y 2
11
2. Los dos valores extremos
para el campo del exponente, 0 y 2
11
1, estn reservados para nmeros de punto flotante
excepcionales, los cuales describiremos posteriormente:



La figura anterior muestra la distribucin de los nmeros positivos en un sistema ficticio de
punto flotante con solo 03 bits para f y para eentre 2
e
y 2
e+1
los nmeros estn igualmente
espaciados con un incremento de 2
e-3
.Cuando e crece, el espaciamiento crece. El
espaciamiento de los nmeros entre 1 y 2 en nuestro sistema es 2
-3
o 1/8. En el sistema de
IEEE, el espaciamiento es 2
-52
.MATLAB denota a esta cantidad eps, el cual es el epsiln
de la mquina.

Eps=2
^
(-52)

Antes del estndar de la IEEE, diferentes mquinas tenan diferentes de eps.

El valor decimal aproximado de eps es: 2.2204 e
-16
. Tanto eps/2 o eps pueden ser llamados
el nivel de redondeo. El mximo error relativo incurrido cuando el resultado de una
operacin aritmtica simple es redondeado al ms cercano nmero de punto flotante es
eps/2. El mximo espaciamiento relativo entre nmeros es eps. En cualquier caso, se
puede decir que el nivel de redondeo es alrededor de 16 dgitos decimales.
Un ejemplo muy importante ocurre con la simple asignacin en MATLAB
t=0.1
El valor almacenado en t no es exactamente 0.1 porque expresar la fraccin decimal 1/10 en
binario requiere una serie infinita:

+ + + + + + + + + =
12 11 10 9 8 7 6 5 4
2 / 1 2 / 0 2 / 0 2 / 1 2 / 1 2 / 0 2 / 0 2 / 1 2 / 1 10 / 1

Despus del primer trmino, la secuencia de coeficientes 1,0,0,1 se repite indefinidamente.
El nmero de puntos flotantes ms cercano a 0.1 es obtenido redondeando esta serie a 53
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 19
trminos incluyendo el redondeo de los cuatro ltimos coeficientes al binario 1010.
Agrupando los trminos resultantes de cuatro cada vez se expresa la aproximacin como
una serie de base 16 o hexadecimal. Luego el valor resultante para t es:

( )
4 3 12 3 2
2 . 16 / 10 16 / 9 16 / 9 16 / 9 16 / 9 1

+ + + + + = t


El comando de MATLAB
format hex
Ocasiona que t se imprima como

a fb 99 9999999999 3

Los primeros tres caracteres 3fb, proporcionan la representacin hexadecimal del exponente
alterado, e+1023, donde e es 4. Los otros 13 caracteres son la representacin hexadecimal
de la fraccin f .
Luego el valor almacenado en t es muy cercano, pero no exactamente igual, a 0.1. Esta
distincin es ocasionalmente importante. Por ejemplo, la cantidad:
0.3/0.1
No es exactamente igual a 3 porque el numerador actual es un poco menor que 0.3 y el
denominador actual es un poco mayor que 0.1.
Diez pasos de longitud t no son precisamente lo mismo que un paso de longitud 1.
MATLAB es cuidadoso para arreglar que el ltimo elemento del vector:

0:0.1:1

es exactamente igual a 1, pero si Ud. forma este vector por si mismo por incrementos
adicionales de 0.1, Ud. no llegara a 1 exactamente.
Otro ejemplo es previsto por el cdigo MATLAB siguiente:

a = 4/3
b = a 1
c = b + b + b
e = 1 c

Un clculo exacto nos llevara a que debe ser cero. Por el punto flotante el valor de e
calculado no es cero. Se desprende que el valor de redondeo ocurre en la primera sentencia.
El valor almacenado en a no es exactamente 4/3, excepto en la computadora trinaria rusa. El
valor almacenado en b es cercano a 1/3, pero su ltimo bit es cero. El valor almacenado en c
no es exactamente igual a 1, porque las sumas son hechas con algn error. Luego el valor
almacenado en e no es cero. En realidad, e es igual a eps. Antes del estndar IEEE, este
cogido era usado como una forma fcil para estimar los errores de redondeo en varias
computadoras.

El nivel de redondeo eps es algunas veces llamado punto flotante cero, pero esto es un
nombre inapropiado. Existen muchos nmeros de punto flotante ms pequeos que el eps.
El ms pequeo nmero positivo de punto flotante normalizado tiene f=0 y e=-1022. El
mayor numero de punto flotante tiene un f es un poco menor que uno y e=1023. MATLAB
llama a estos nmeros realmin y realmax respectivamente. Estos nmeros juntos con eps,
caracterizan al sistema estndar.


UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 20


Nombre Binario Decimal
eps
realmin
realmax
52
2


1022
2


( )
1023
2 * 2 eps
2.2204e-16
2.2251e-308
1.7977e+308


Cundo un clculo trata de producir un valor mayor que realmax, esto se llama overflow. El
resultado es un valor excepcional de punto flotante llamado Inf, o infinito. Esto es
representado tomando f=0 y e=1024 y satisface relaciones como 1/inf=0 e inf+inf=inf.

Cuando algn calculo trata de producir un valor menor que mineral, esto se llama
underflow. Esto envuelve uno de los aspectos opcionales y controversiales del estndar
IEEE. Muchas, pero no todas, las maquinas permiten nmeros excepcionales denormal o
subnormal de punto flotante en el intervalo entre realmin y eps*realmin. El ms pequeo
nmero subnormal positivo es el alrededor 0.494e-
323
. Cualquier resultado menor que este
numero es asignado como cero. En mquinas sin subnormales, todo resultado menor que
realmin es asignado como cero. Los nmeros subnormales caen en el caso que se puede
ver en nuestro sistema ficticio entre cero y el ms pequeo numero positivo. Ellos proveen
un modelo elegante para manejar el underflow, pero su importancia prctica para el estilo
de computacin de MATLAB es muy raro. Cuando un clculo trata de producir un valor
que es indefinido en el sistema de nmeros reales, el resultado es un valor excepcional
conocido como Not-a-Number, o NaN. Ejemplos incluyen 0/0 y Inf Inf.

MATLAB usa el sistema de punto flotante para manejar los enteros. Matemticamente, los
nmeros 3 y 3.0 son los mismos, pero en muchos lenguajes de programacin usan
diferentes representaciones para los dos. MATLAB no distingue entre ambos. Nos gusta
usar el trmino flint para describir un nmero flotante cuyo valor es un entero. Las
operaciones del punto flotante sobre flints no introducen errores de redondeo, desde que los
resultados no son tan grandes. La suma, la resta y la multiplicacin de flints produce el
resultado flint exacto, si este no es mayor que 2
53
. La divisin y la raz cuadrada que
involucran flints tambin producen un flint cuando el resultado es un entero. Por ejemplo,
sqrt(363/3) produce 11, sin error de redondeo.
Como un ejemplo de cmo el error de redondeo afecta en el clculo de las matrices,
considere el sistema lineal de dos ecuaciones con dos incgnitas:

3 . 3 3 . 0 3
11 10
2 1
2 1
= +
= +
x x
x x


La solucin obvia es x
1
=1, y x
2
=1. Pero las sentencias de MATLAB

A=[ 10 1 ; 3 0.3 ]
b=[11 3.3]
x=A\b

produce:

x=
-0.5000
16.0000 {Segn el artculo,
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 21
pero en la vs 7.0 del Matlab esto produce x
1
=NaN y x
2
=NaN}

Porque? Bueno, las ecuaciones son singulares. La segunda ecuacin es justamente 0.3
veces que la primera. Pero la representacin en punto flotante de la matriz A no es
exactamente singular porque A(2,2) no es exactamente 0.3.

La eliminacin Gaussiana transforma las ecuaciones al sistema triangular superior
U*x=c


Donde
U(2,2) = 0.3-3*(0.1)
= -5.5551e-17
y
c(2) = 3.3 33*(0.1)
= -4.4409e
-16

MATLAB detecta el pequeo valor de U(2,2) e imprime un mensaje de advertencia que la
matriz es cercana a la singular, Entonces calcula la relacin de los dos errores de redondeo
X(2) = c(2)/U(2,2)
= 16
Este valor es substituido en la primera ecuacin para dar
X(1) = (11 - x(2))/10
= - 0.5
Las ecuaciones singulares son consistentes. Hay un nmero infinito de soluciones. Los
detalles del error de redondeo determinan cual solucin particular ser calculada.

Nuestro ejemplo final grafica un polinomio de sptimo grado:

x=0.988:.0001:1.012;
y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1;
plot(x,y)



Pero el grfico resultante no se parece nada a un polinomio. No es suave. Estamos viendo el
error de redondeo en accin. El factor de escala del eje Y es muy pequeo, 10
-14
. Los
0.985 0.99 0.995 1 1.005 1.01 1.015
-5
-4
-3
-2
-1
0
1
2
3
4
5
x 10
-14
UNI-FIM Mtodos Numricos
Teora de Errores y Aritmtica del Computador Pag. 22
pequeos valores de y son calculados tomando sumas y diferencias de nmeros tan grandes
como 35x 1.012
4
. Existe una severa cancelacin por diferencia. El ejemplo fue ideado
usando Toolbox Simblic para expandir (x 1)
7
y cuidadosamente elegido el rango del eje
x para que sea cercano a x=1. Si los valores de y son calculados en cambio por:
Y= (x 1).
^
7;
Entonces una grafica suave (pero muy plana) es obtenida.




0.985 0.99 0.995 1 1.005 1.01 1.015
-4
-3
-2
-1
0
1
2
3
4
x 10
-14

You might also like