Vous êtes sur la page 1sur 14

Encabezado: ERRORES DE PUNTO FLOTANTE

Errores de Punto Flotante del IEEE


Jimmy Dos Santos Almeyda Atncar
Universidad Nacional de Ingeniera

Notas del Autor


Escuela Profesional de Ingeniera Metalrgica
MA 195: Mtodos Numricos
Jorge G. Ayala Mina, Ing.
Abril 06, 2016

ERRORES DE PUNTO FLOTANTE

2
DEDICATORIA

A mi madre,
que es y ser el origen de todas mis virtudes.
A mi padre y hermanos,
que me han apoyado en todo momento
A Katherine,
que es hoy una razn ms para seguir adelante.

ERRORES DE PUNTO FLOTANTE

ERRORES DE PUNTO FLOTANTE DEL IEEE


TABLA DE CONTENIDO

RESUMEN
INTRODUCCIN
Problema de Investigacin

6
7

Planteamiento del Problema

Formulacin del Problema

Objetivos

Objetivo General

Objetivos Especficos

Marco Conceptual

Sistemas de Numeracin Binario y Decimal

Transformacin de Nmeros fraccionarios decimales a binarios

Errores de Punto Flotante


Complicaciones de punto flotante

11
11

CONCLUSIONES

13

REFERENCIAS

14

ERRORES DE PUNTO FLOTANTE

LISTA DE FIGURAS
Figura 1. Cdigo a correr, se espera que el valor de A en txt1 sea 1 ........................................ 11
Figura 2. Se ve que el valor resultante es 1.00054 y no 1 ............................................................. 12
Figura 3. Se espera que txt1 diga igual ......................................................................................... 12
Figura 4. Txt1 dice diferente ......................................................................................................... 12

ERRORES DE PUNTO FLOTANTE

5
RESUMEN

Dentro del estudio que le compete al curso de Mtodos Numricos, se encuentra la comprensin
de las pequeas dificultades que puede representar la diferencia entre los sistemas de numeracin
que habitualmente usamos y entendemos de forma directa (sistema de numeracin decimal) y el
que usan los lenguajes de programacin como MATLAB (sistema de numeracin binaria). Es
aqu que surge la existencia aparentemente sin cabida de errores de clculo, es operaciones
sencillas tan sencillas como la suma de una serie de nmeros fraccionarios decimales. Por tal
motivo, el presente informe tiene el objetivo principal de dar la explicacin a la aparicin de los
errores mencionados y cmo hacerles frente.

ERRORES DE PUNTO FLOTANTE

INTRODUCCIN
Hoy en da, la programacin es una herramienta bsica para cualquier estudiante de
ingeniera, permitindonos as generar programas que se ajusten a nuestros problemas
especficos, dentro de la gran gama de programas que nos permiten la programacin, se
encuentra el programa MATLAB, que al igual que cualquier otro programa, su sistema de
numeracin natural es el binario. Como sabemos, nosotros estamos acostumbrados a calcular en
nuestro da a da con el sistema de numeracin decimal, por tal motivo a la hora de programar
ingresamos nuestros datos en este sistema, cabe resaltar entonces que el programa acepta los
datos en ese sistema, sin embargo para poder trabajar con ellos, previamente debe hacer una
conversin al sistema numrico binario con el cual trabaja y luego hacer una conversin final al
sistema decimal para mostrarnos los resultados.
Estamos tan habituados al uso de los programas, que no nos cuestionamos si el proceso interno
de cambio de sistema numrico puede presentar alguna dificultad que afecte los resultados que
nos entrega, sin embargo este proceso de cambio de sistema numrico presenta dificultades de
exactitud cuando los nmeros decimales a tratar son fraccionarios, y es esta dificultad en la cual
se basa el presente informe.

ERRORES DE PUNTO FLOTANTE

Problema de Investigacin
Planteamiento del Problema

Dentro del uso programadores para algunas operaciones aritmticas muy sencillas, cuando
estas son repetidas una gran cantidad de veces, se presentan errores inesperados de clculo, Este
problema se presenta cuando los nmero es cuestin para el clculo son fracciones de nmeros
decimales. Revisando teora de sistemas numricos, nos encontramos que algunos nmeros
fraccionarios exactos en el sistema numrico decimal, no encuentran un equivalente exacto en el
sistema numrico binario, considerando la precisin de los puntos flotantes en programacin,
puede que estas sean las razones que al reiterar operaciones sucesivamente, errores generados
por el cambio de sistema numrico, repercuta en la precisin de los resultados esperados.
Entonces se espera que al trabajar con nmeros fraccionarios del sistema numrico decimal se
presenten pequeos errores de exactitud por el cambio de sistema numrico (entre el decimal y el
binario). Por lo que se necesita entender detalladamente el problema mencionado para saber
cmo hacerle frente cuando se presenten.

Formulacin del Problema

Cul es la causa de error en un punto flotante?

ERRORES DE PUNTO FLOTANTE

Objetivos
Objetivo General
Conocer las razones de los problemas de punto flotante
Objetivos Especficos
Conocer los Problemas de cambio de sistema numrico.

Marco Conceptual
Sistemas de Numeracin Binario y Decimal
Normalmente, contamos cosas en base 10. La base es completamente arbitraria. La
nica razn por lo que personas lo han utilizado tradicionalmente es que tenemos diez
dedos, que han hecho tiles herramientas de recuento.
El nmero 532.25 en decimal (base 10) significa lo siguiente:

(5 * 10^2) + (3 * 10^1) + (2 * 10^0) + (2 * 10^-1) + (5 * 10^-2)


500
_________
=

532.25

30

2/10

5/100

ERRORES DE PUNTO FLOTANTE

En el sistema de numeracin binario (base 2), cada columna representa una potencia
de 2 en lugar de 10. Por ejemplo, el nmero 101.01 significa lo siguiente:

(1 * 2^2) + (0 * 2^1) + (1 * 2^0) + (0 * 2^-1) + (1 * 2^-2)


4

1/4

_________
=

5.25

Decimal

Transformacin de Nmeros fraccionarios decimales a binarios


Mtodo de la Suma de Pesos. El mtodo de la suma de pesos se puede aplicar a nmeros
decimales fraccionarios. Por ejemplo:
0,625 = 0,5 + 0,125 = 2-1 + 2-3 = 0,101
Lo que indica que en la posicin 2-1 hay un 1, en la posicin 2-2 un 0 y en la posicin 2-3
un 1.
Mtodo de la Multiplicacin Sucesiva por 2.
Los nmeros decimales fraccionarios pueden convertirse en nmeros binarios mediante la
multiplicacin sucesiva por 2.
Por ejemplo, para convertir a binario el nmero decimal fraccionario 0,3125, empezamos
multiplicando por 2, y despus se multiplica cada parte fraccional resultante del producto
por 2, hasta que el producto fraccionario sea cero o hasta que se alcance el nmero
deseado de posiciones decimales.
Los dgitos acarreados, o acarreos, generados por las multiplicaciones dan lugar al
nmero binario.

ERRORES DE PUNTO FLOTANTE

10

Como bien se menciona en el mtodo, este termina cuando la parte fraccional sea
completamente cero, por lo que si esta nunca llega a ser cero, el numeral binario no
podra ser calculado exactamente (por ejemplo el nmero decimal 0.00001), y por ende
solo se podra tener una aproximacin deseada, la cual para nuestro caso depender de la
precisin que le designemos a nuestra variable en la programacin.

ERRORES DE PUNTO FLOTANTE

11

Errores de Punto Flotante


Complicaciones de punto flotante
Cada entero decimal puede representarse exactamente por un entero binario; Sin embargo,
esto no es cierto para los nmeros fraccionarios. De hecho, cada nmero irracional en base 10
tambin ser irracional en cualquier sistema con una base menor a 10.
Para los binarios, en particular, los nmeros fraccionarios slo pueden representarse de la
forma p/q, donde q es un entero potencia de 2, que se puede expresar exactamente, con un
nmero finito de bits.
Fracciones de decimales incluso comunes, como el 0.0001 decimal, no se pueden representar
exactamente en binario (0.0001 es una fraccin binaria extensible con un perodo de 104 bits).
Esto se explica en un ejemplo sencillo, como el siguiente en el programa Visual Basic 6.0:

Figura 1. Cdigo a correr, se espera que el valor de A en txt1 sea 1

ERRORES DE PUNTO FLOTANTE

12

Figura 2. Se ve que el valor resultante es 1.00054 y no 1

Por la misma razn, siempre debe tener mucho cuidado al realizar comparaciones con los
nmeros reales. En el ejemplo siguiente se muestra un error de programacin comn:

Figura 3. Se espera que txt1 diga igual

Figura 4. Txt1 dice diferente

Esto se debe a que 69.82 no se puede representar exactamente en binario, que hace que el
valor que resulta de la asignacin a ser LIGERAMENTE distintos (en binario) que el valor que
se genera a partir de la expresin. En la prctica, deber codificar siempre estas comparaciones
de tal manera que se permita la cierta tolerancia.

ERRORES DE PUNTO FLOTANTE

13

CONCLUSIONES
El error que se genera en los puntos flotantes, es debido al cambio de sistema numrico
necesario que hacen los programas internamente.

Una manera de reducir este error es aumentado la precisin de la variable en cuestin,


para el caso de visual basic 6.0, trabajar con variable en double y no en single.

ERRORES DE PUNTO FLOTANTE

14

REFERENCIAS
http://es.slideshare.net/EvelynRuiZambrano/transformar-decimal-fraccionario-a-binariooctal-y

http://puntoflotante.org/formats/fp/

https://support.microsoft.com/es-pe/kb/42980

Vous aimerez peut-être aussi