Sunteți pe pagina 1din 6

EL BIT FANTASMA EN MATLAB Y JAVA

Por: Univ. Jorge Enrique Callisaya Sanchez, María Alejandra Mamani Cordero, Juan
Gabriel Churata Paco, Giovanny Freddy Quiroz Loza
Carrera de Informática
Facultad de Ciencias puras y naturales
Universidad mayor de San Andrés
La Paz - Bolivia
Correspondencia: sanchezenrique580@gmail.com, alesisima719@gmail.com, jeandarkmaknae@gmail.com,
xperiacell97@gmail.com.

Resumen

La precisión y exactitud en los errores de punto flotante es muy importante saber calcularlo y
usarlo en el ámbito computacional, pero su mala aplicación suele ocasionar grandes desastres
en el área científica, en esta investigación se dirigirá estrictamente al área informática.

Tras la indagación de los métodos y metodologías de las computadoras para llegar a una
cantidad precisa de dígitos para nuestros números que tienen punto flotante, nuestra misión
será saber a dónde van los decimales perdidos, como usarlos, representarlos y saber manejarlos.

Los resultados a los que llegamos son una serie de interesantes conclusiones. Ya que cosas tan
pequeñas como una milésima de decimal pueden provocar un error enorme que muchas veces
lleva a la pérdida económica, de información, de vidas.

Con todo esto esperamos informar y concientizar a la población de desarrolladores en general,


para que empleen el manejo correcto de los números de punto flotante. Las consecuencias que
provocan su mal uso y por último dar a conocer dónde quedan estos números.

Palabras clave: Punto flotante; error de redondeo; sistema de números; punto fijo; patrones de
bits; precisión arbitraria.

Abstract

The precision and accuracy of floating point errors is very important to know how to calculate
it and use it in the computational field, but its bad application usually causes major disasters
in the scientific area, in this research it will be strictly directed to the computer area.

After investigating the methods and methodologies of computers to arrive at an accurate


number of digits for our floating point numbers, our mission will be to know where the lost
decimals go, how to use them, represent them and know how to handle them.

The results we reach are a series of interesting conclusions. Since things as small as a
thousandth of a decimal can cause a huge error that often leads to economic loss, information
and lives.

With all this we hope to inform and raise awareness among the population of developers in
general, so that they can use the correct handling of floating point numbers. The consequences
that cause its misuse and finally to reveal where these numbers are.
Keywords: Floating point; rounding error; number system; fixed point, bit patterns; arbitrary
precision.

Introducción Dado que un número real se la puede


representar de la siguiente forma:
En la década de los 90’s (1985) donde fue 𝑚 ∗ 𝑏𝑒
comprendido el estándar binario de Donde “m” es la mantisa, “b” es la base del
aritmética de punto flotante, algo no quedo sistema numérico que se va a utilizar y “e”
claro del todo en el ámbito de la informática. es el exponente.

Con esto los problemas de cálculos La cual se la puede representar en el


numéricos de redondeo, en el punto flotante computador de la siguiente forma (Figura
que ocurren a menudo, causando grandes 1).
tragedias tanto físicas como monetarias.

Mencionamos algunos de esos desastres a


continuación, esto para entender la gravedad Figura 1. Grafica extraída del Internet
del asunto: Misiles que pierden sus “http://slideplayer.es/slide/145100/”
objetivos. Mal funcionamiento de las naves
espaciales (NASA), Sistemas que pierden el Tras leer artículos varios acerca de las
control. tragedias provocadas por la mala
implementación de la teoría de errores y su
Con todo esto nos basaremos en la manejo, además de artículos relacionados
arquitectura de los ordenadores, los acerca del uso de estos errores.
algoritmos y diferentes métodos usados para
encontrar soluciones para los errores. Se puso en práctica, el uso, cálculo y
desviación que un error puede sufrir en su
Muchos argumentan que el ámbito humano implementación en desarrollo de
no es parte de un error, pero es más que programas.
comprobado que nosotros somos los
causantes de estos errores. Esta práctica se aplica a cómo la
computadora hace tratamiento de estos
errores, como los almacena y trabaja con
Métodos ellos.

Puesto que Matlab y la mayoría de los otros Se puso en práctica los métodos usados en
entornos de computación técnica usan el el artículo “Donde se fueron los decimales”
punto flotante, que implica un conjunto de de los autores Chuck Allison. En los cuales
números con una precisión casi exacta. Esto se describe lo siguiente:
conduce a los fenómenos de redondeo, corte
y desbordamiento. El concepto de sistemas numéricos,
sistemas de precisión arbitraria, espacio de
sistema de punto flotante.
Además, los errores en cálculos y medidas JAVA
se pueden caracterizar con respecto a sus
cálculos de redondeo, truncamiento, etc. el
redondeo se refiere reducir el número de
cifras manteniendo un valor similar al
original. El Truncamiento numérico se
refiere a reducir el número de dígitos a la
derecha el separador decimal descartando
los menos significativos.

Esta definición es mejor entendida por la


siguiente gráfica (Figura 2):

Figura 3.1 Gráfica extraída de una captura de un


computador.
MATLAB

Figura 2. Grafica extraída del Internet


“tandeformacion.es/esblogdelasdudas” Figura 3.2 Gráfica extraída de una captura de un
computador
Los errores numéricos surgen del uso de Este algoritmo nos reveló que existe un
aproximaciones para representar funciones, error al querer representar una de las dos
fórmulas, operaciones, y cantidades soluciones reales de la ecuación, haciendo
matemáticas exactas. Éstas incluyen los otro análisis en la solución de la segunda
errores de truncamiento que resultan del
solución se obtiene el siguiente algoritmo en
empleo de aproximaciones como un
procedimiento matemático exacto, y los la gráfica (figura 4.1 y figura 4.2).
errores de redondeo que se producen cuando JAVA
se usan números que tienen un límite de
cifras significativas para representar
números aproximados en el computador.

En la siguiente gráfica (figura 3.1 y figura


3.2) se muestra un algoritmo en JAVA y en
MATLAB sobre la clásica fórmula para la
solución de una ecuación cuadrática.
Figura 4.1 Gráfica extraída de una captura de un
computador. 𝑉𝑉 = 𝑉𝐴 + 𝐸
MATLAB
Dónde: VV es el Valor Verdadero
VA es el Valor Aproximado
E es el error
𝐸
𝐸𝑟 =
𝑉𝑉
Dónde: Er es el Error relativo
E es el Error verdadero
VV es el Valor Verdadero

Figura 4.2 Gráfica extraída de una captura de un 𝐸𝑝 = 𝐸𝑟 ∗ 100%


computador.
Dónde: Ep es el Error porcentual
Esta forma nos acerca un poco más al Er es el Error relativo
resultado verdadero.
Hasta este punto definimos los errores y
Otro ejemplo se tiene en el algoritmo de la
dimos las fórmulas necesarias, esto con el
serie de Taylor para exponenciales que se motivo de saber cómo operan estos en
mostrará en la siguiente gráfica (figura 5). nuestra computadora ya que esta trabaja con
el sistema numérico binario.

Entonces no ayudará bastante definir los


números de punto flotante y su
representación en la máquina, sobre el
número mínimo (Underflow) y el número
máximo (Overflow).

Se puede explicar mejor con la siguiente


gráfica (Figura 6):

Figura 5. Gráfica extraída de una captura de un


computador.

Este algoritmo es muy útil al colocar valores


positivos pero a la hora de colocar valores
negativos, empieza a surgir valores que se
alejan del valor verdadero.

Una vez entendidos estos conceptos y


ejemplos procedemos a la definición e
implementación de los errores y sus Figura 6. En la gráfica se señala que el Underflow es
respectivas fórmulas matemáticas. el error del límite del número más pequeño entre el
cero y el uno, y el Overflow es error de
desbordamiento que se da al tener números muy
Fórmula del error: grandes que no puede representar el computador.
Para lo cual se toma el primer bit de la
La notación científica es usada en mantisa se multiplica por dos el cual se
los microprocesadores con la cual se pueden eleva a la potencia al exponente para luego
representar números ser sumados con los demás bits de la
racionales extremadamente grandes y mantisa operados de la misma forma. Tras
pequeños de una manera muy eficiente y hacer los cálculos pertinentes hallamos que
compacta, y con la que se pueden realizar el número más pequeño que se almacena es
operaciones aritméticas. El estándar para la el marcado en la casilla verde oscura, el cual
representación en coma flotante es el IEEE es el 0,0625.
754.
Si el número que queremos almacenar es
Una representación gráfica es la siguiente más pequeño que el hallado entonces lo que
(Figura 7): se provoca es el ya conocido error de
Underflow que no puede ser manejado por
nuestra máquina experimental.

Los mismos pasos se aplican a la forma para


Figura 7. Gráfica extraída del texto “Métodos hallar el número más grande que puede
numéricos para ingenieros” almacenar nuestra máquina supuesta de 7
bits como se observa en la segunda casilla
Todo esto fue aplicado en una hoja de de color verde oscuro dicho número es el 7.
cálculo de Excel para simular una máquina
que almacena nuestros números de punto Este número es el límite superior de
flotante en 7 bits. En la (figura 8) se almacenamiento de nuestra máquina
representa dicho ejemplo. experimental de 7 bits si nosotros
manipulamos números como el 8 e incluso
el 7.00000001 provocamos un error
denominado Overflow que es un error de
desbordamiento.

¿Qué pasa con los números con mayor


cantidad de cifras significativas?, pues es
sencillo los número con más decimales o
Figura 8. Gráfica extraída de una captura de pantalla.
cifras significativas se redondean usando
métodos conocidos y establecidos por la
En esta grafica podemos observar que la
IEEE. Lo cual nos conlleva a un pequeño
casilla azul es el bit que representa el signo error denominado error de redondeo, esto
del número, la casilla de verde claro son el afectará directamente en la exactitud y
signo del exponente, las casillas de color precisión de nuestra máquina experimental.
amarillo son los bits que sirven para
almacenar el exponente convertido a base Esto nos lleva a tocar el tema de
propagación de errores que se da en el
dos, y por último las casillas de color
siguiente caso. Cuando las variables son los
naranja son los bits que usa la mantisa. valores de mediciones experimentales
tienen incertidumbre debido a la medición
El siguiente paso es saber cuál es el número de limitaciones.
más pequeño que se puede almacenar en
nuestra computadora supuesta. Vemos como es la propagación de errores en
funciones de una sola variable. Para la cual
se tiene un Error estimado el cual es una
aproximación al Error Verdadero pero Conclusiones
mucho ojo esta estimación es sólo una
aproximación. Además de eso tenemos el Gracias a la estandarización que dio la IEEE
conjunto o ámbito en el que se da dicha podemos llevar de mejor manera el uso de la
propagación, matemáticamente esto se sistematización de los puntos flotantes y sus
conoce como dominio de una función. errores. Este trabajo enseña a los estudiantes
y profesionales de la rama de Informática
Entonces se podemos deducir que el Error acerca de su correcto uso.
estimado es una simple aproximación que Para un trabajo altamente profesional y serio
gráficamente es una tangente que toca a la debemos informarnos sobre cómo funciona
curva del Error verdadero en un solo punto. cada software en el ámbito de su manejo de
punto flotante y sus respectivos errores.
Resultados
Hacer los cálculos de manejo de punto
Por todo lo visto en la aplicación los flotante no es nada difícil hoy en día gracias
resultados fueron mencionando poco a poco a internet y aún más sencillo los errores con
en las figuras y desarrollo. el sin fin de información del tema.

Invertir un poco de tiempo que muchas


Discusión veces al hablar de error, punto flotante y su
manejo, creemos que será una labor larga y
Muchas veces las personas estamos tortuosa. Simplemente llega a ser un estudio
conscientes de lo que representa un de dos a tres días que llegaran a salvar por
pequeñísimo error en nuestra área de mucho, errores a gran escala, que se dan por
estudio. Además de toda la teoría y no poner en práctica dichos estudios.
aplicación mostrada aquí. Tenemos que si o
si poner en discusión el error humano. Ya Agradecimientos
que al estar informados con artículos como
este o libros dedicados especialmente al Agradecer a la Lic. Brígida Carvajal por motivar
tema. Simplemente decidimos hacer caso a realizar este artículo, también a los autores de
omiso y no dar la pertinencia y estudios cada uno de los libros que consultamos para
necesarios al ámbito de errores. Lo que lograr dicha investigación.
conlleva irónicamente a que tengamos
errores en todo el desarrollo de nuestro Referencias
trabajo, esto es una total irresponsabilidad Allison C. Where did all my decimals go?
de nuestra parte, ya que ponemos en riesgo Utah Village State College.
no solo nuestro profesionalismo, si no la
seguridad de nuestra empresa, cliente o Chapra S. & Canale R. (2000). Métodos
inclusive las vidas de las personas citamos numéricos para ingenieros. McGraw-Hill
el caso del transbordador espacial Interamericana.
Challenger que tuvo trágicas consecuencias
Cleve Moler .IEEE Standard unifies
sobre sus tripulantes.
arithmetic model-Floating points.
Ahora que es más fácil entender cómo
Presentado: Universidad Mayor de San
funciona el manejo de números de punto
Andrés, 15 de Marzo de 2018.
flotante es responsabilidad de cada uno
saber si tomar la decisión justa y necesaria
de hacer los cálculos pertinentes.