Bibliografía de la Clase
- Numerical Linear Algebra. L.N. Trefethen. Chapter 3, Lecture 13: Floating Point Arithmetic
- What Every Computer Scientist Should Know About Floating Point Arithmetic [FloatP].
Recordemos primeramente la representación científica:
Ejemplo:
La representación de punto flotante tiene una base y una precisión . Si y , el número 0,1 es:
Si y , el número decimal 0.1 no puede ser representado exactamente, pero es aproximadamente:
Representacion de Números de Punto Flotante [FloatP]:
En general, un número de punto flotante será representado como:
donde es denominado el significando, mantisa o fracción que tiene dígitos, y es el exponente . Más precisamente:
Por lo tanto:
La representación punto flotante no es necesariamente única:
Si el primer dígito del significando o mantisa es distinto de cero (), se dice que la representación está normalizada representación única.
1
Ejercicio en clases 1
Ejercicio Propuesto
Las dos representaciones más usadas de representación de punto flotante están definidas en el estándar 754 de la IEEE:
Ejemplo: Presición Doble
Exponente
El exponente puede ser positivo o negativo, por lo tanto se utiliza la biased representation. En la presición simple, el bias es 127, y en la presición doble, el bias es 1023. Esto significa que si es el valor del exponente obtenido (obtenido de los 8 u 11 bits), el valor del exponente en la representación de punto flotante es (o ).
Ejercicio en clases 2
Considerar 1 bit para el signo, 4 bits para el exponente y 3 bits para la mantisa (normalizada).
Por lo tanto, la representación de punto flotante se puede expresar:
Nota
Se dice que la representación de punto flotante de un número está normalizada si el primer dígito de la mantisa es distinto de 0, por lo tanto, en el sistema binario es 1. En el estándar IEEE 754 no se almacena aquel valor, por ese motivo se suma 1 a la mantisa.
Ejemplo
Representación del número 23, usando el estándar IEEE 754 de presición simple: 32 bits, 1 bit para el signo, 8 bits para el exponente y 23 bits para la mantisa:
Se puede revisar acá.
Debido a la representación de punto flotante, existen espacios (gaps) entre los números, por ejemplo, en el estandar IEEE 754 de doble precisión, el intervalo [1,2] es representado por el subconjunto discreto:
El intervalo :
El espacio entre números adyacentes son (de cierta forma) nunca mayores que .
Parece despreciable la cifra, pero en algoritmos mal construídos se tornan inestables!
Sea presición. El número machine epsilon está definido por:
Este número corresponde a la mitad de la distancia entre 1 y el siguiente número punto flotante. En otras palabras, es tan grande como los espacios entre los números de punto flotante.
Propiedad 1
Sea el conjunto de los números de representación de punto flotante.
El estándar IEEE 754 para precisión doble y simple, especifica que el es y , respectivamente.
Sea una función que entrega la aproximación de punto flotante más cercana a un número real, para lo cual se tiene la siguiente desigualdad:
Es decir, la diferencia entre el numero real y su representación de punto flotante más cercana es siempre menor que , en términos relativos.
No sólo se representan los números reales, sino que además se realizan cálculos con ellos. En un computador los cálculos matemáticos se reducen a: .
- Matematicas: Operaciones en
- Computador: Operaciones en operaciones de punto flotante:
Un computador debe estar construido considerando el siguiente principio de diseño:
Propiedad 2
Sea números arbitrarios de punto flotante . Sea alguna de las operaciones , y sea la operación análoga en punto flotante
De la Prop. 1 y Prop. 2 se puede concluir que un computador tiene una simple y poderosa propiedad:
Axioma Fundamental de Aritmética de Punto Flotante
Para todo , existe con , tal que
References
[FloatP] | (1, 2) David Goldberg. What Every Computer Scientist Should Know About Floating Point Arithmetic. ACM Computing Surveys, 1991. |
[LargeN] | Wikipedia, Large Numbers |