programación y métodos numéricos errores de redondeo en...
TRANSCRIPT
![Page 1: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/1.jpg)
63Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Programación y Métodos NuméricosErrores de redondeo en la representación
de números reales: CODIFICACIÓN DE NÚMEROS REALES
Programación y Métodos NuméricosErrores de redondeo en la representación
de números reales: CODIFICACIÓN DE NÚMEROS REALES
Carlos Conde LCarlos Conde LáázarozaroArturo Hidalgo LArturo Hidalgo LóópezpezAlfredo LAlfredo Lóópez Benitopez Benito Febrero, 2007
![Page 2: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/2.jpg)
64Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Expresan los números en notación científica binaria pero:
2º) Utilizando mantisas con (s+1) bits1º) Asignando (t+1) bits para almacenar el exponente.
La condición 1ª implica que sólo se pueden representar números no nulos cuyo valor absoluto esté comprendido entre ciertas cotas.Las condiciones 1ª y 2ª implican que:
* Sólo existe un número finito de números.* Las mantisas de los números reales con más dígitos
decimales deben ser aproximadas por otras con s dígitos binarios decimales.
3º) Almacenando sólo la información significativa de la mantisa
Sistemas de codificación binarios en coma flotante normalizada
Sistemas de codificación binarios en coma flotante normalizada
![Page 3: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/3.jpg)
65Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Bit de signodel exponente
t bits para el valor absoluto del exponente
CONVENIO: 0 Signo +1 Signo -
Ejemplo: Con 7 bits se tienen las siguientes codificaciones de exponentes:
-18 = 1 42 = 00 1 0 0 1 0 1 0 1 0 1 0
-67 = No puede codificarse 93 = No puede codificarse
Codificación del exponente en (t+1) bitsCodificación del exponente en (t+1) bits
![Page 4: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/4.jpg)
66Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Mayor exponente que puede codificarse:
M = 0 1 1 1 .. 1 1.. .. = ( 2t –1 )10
t bitsMenor exponente que puede codificarse:
m = 1 1 1 1 .. 1 1.. .. = -( 2t –1 )10
t bitsOBSERVACIÓN: En los sistemas reales estas cotas son “ligeramente”
distintas al evitarse la duplicidad del código asignado al exponente nulo y normalizarse los exponentes.
Codificación del exponente en (t+1) bits: cotas
Codificación del exponente en (t+1) bits: cotas
![Page 5: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/5.jpg)
67Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Técnicas de aproximación de mantisas de la forma:1 2 s s 1d d ...d1 d. ....+±
por mantisas con s dígitos decimales:Truncado: 1 2 s s 1 1 2 sd d ...d d .... d d1. .1. ..d+± ≈ ±
Redondeo:1 2 s s 1
1 2 s s 1 1 2 ss 1
1. si 01. (
d d ...d dd d ...d d .... d
11.
si 0.0 0 .
d ...d)
d..1
+
++
+
± =⎧⎪± ≈ ±⎧ ⎫⎨⎨ ⎬+
=⎪⎩ ⎭⎩
“Suma binaria”NOTA: Algunos fabricantes de ordenadores incorporan también otras
técnicas
Aproximación de números reales en base 2 expresados en coma flotante normalizada
Aproximación de números reales en base 2 expresados en coma flotante normalizada
![Page 6: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/6.jpg)
68Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Redondeo a mantisas con 6 dígitos binarios decimales:
z = 1.0110111010....
7º Dígito decimal
1. 0 1 1 0 1 1+ 0. 0 0 0 0 0 1
0
1
0
1
1
0
1
0
1
0
0
0
1. = z*
z = 1.1111111010..... 2e
7º Dígito decimal
1. 1 1 1 1 1 1+ 0. 0 0 0 0 0 1
0
1
0
1
0
1
0
1
0
1
0
1
0.
= z*
1
1
.2e
.2e
.2e
0000001. .2e+1Ajuste de exponentes:
Aproximación de números reales en base 2 expresados en coma flotante normalizada
Aproximación de números reales en base 2 expresados en coma flotante normalizada
![Page 7: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/7.jpg)
69Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Los (s+1) bits disponibles para almacenar la mantisa se destinan a:• El primero para almacenar el signo (un 0 si es positivo yun 1 si es negativo).
• Los s bits siguientes para almacenar los s primeros dígitos binarios decimales de la mantisa.
El dígito entero de la mantisa no se almacena pues siemprees 1 (salvo para el número 0., que tiene una codificación especial).
Codificación de las mantisasCodificación de las mantisas
![Page 8: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/8.jpg)
70Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
(-13457.258)10 = -11010010010001.01000...
13101001001000101000...1. 2≡ − i
Exponente: +1101 Mantisa: - 1.101001001000101000...
0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1
Sistema con t = 7 bits para el exponente y s = 13 bits para mantisa
(redondeo)
Codificación de las mantisas: ejemploCodificación de las mantisas: ejemplo
![Page 9: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/9.jpg)
71Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
El conjunto de todos los números expresados en base 2 queexpresados en coma flotante tienen mantisas formadas pors dígitos decimales y exponentes acotados por entre losvalores enteros m y M se denomina conjunto de números máquina del sistema:
F((s+1), m, M, 2)
Bits dela mantisa
Menor exponentepermitido
Mayor exponentepermitido
Base de numeraciónutilizada
Inicial de Float
Los números máquina binariosLos números máquina binarios
![Page 10: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/10.jpg)
72Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
F(3, -2, 2, 2) { 2 2 2 20, 1. 2 , 1. 2 , 1. 200 01 1 , 1. 2 , 0 11− − − −≡ ± ± ± ±i i i i1 1 1 11. 2 , 1. 2 , 1. 200 ,01 1 1 20 11. ,− − − −± ± ± ±i i i i
0 0 0 0 1. 2 , 1. 2 , 00 01 1. 2 , 1.10 11 2 , ± ± ± ±i i i i1 1 1 11. 2 , 1. 2 , 1. 2 , 1. 200 01 10 1 ,1± ± ± ±i i i i
}2 2 2 2 1. 2 , 1. 2 ,00 01 10 11. 2 , 1. 21± ± ± ±i i i i
{ 0, + 2-2 , +(2-2 + 2-4) , +(2-2 + 2-3) , +(2-2 + 2-3 + 2-4) ,
+ 2-1 , +(2-1 + 2-3) , +(2-1 + 2-2) , +(2-1 + 2-2 + 2-3) ,
+ 20 , +(20 + 2-2) , +(20 + 2-1) , +(20 + 2-1 + 2-2) ,
+ 21 , +(21 + 2-1) , +(21 + 20) , +(21 + 20 + 2-1) , + 22 , +(22 + 20) , +(22 + 21) , +(22 + 21 + 20) }
≡
En base 10
EjemploEjemplo
![Page 11: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/11.jpg)
73Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sólo hay N = 41 números.
El mayor de ellos es C = 7.
El positivo menor no nulo es c =0.25.
No todos los números consecutivos distan lo mismo.
F(3, -2, 2, 2) ≡ { 0., +0.25 , +0.3125 , +0.375 ,
+0.4375, +0.5, + 0.625, + 0.75, + 0.875, +1.0, +1.25,
+1.5, +1.75, + 2.0, +2.5, +3.0, +3.5, + 4.0, +5.0, +6.0,
Ejemplo (cont.)Ejemplo (cont.)
+7.0 }
![Page 12: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/12.jpg)
74Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Los números máquina de mayor valor absoluto son más distantes entre sí
Distribución de los números de F(s+1, m, M, 2)Distribución de los números de F(s+1, m, M, 2)
![Page 13: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/13.jpg)
75Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
*) Número de números máquina de F(s+1, m, M, 2):(s 1)2 (M m )N 1 1+= − + +i
*) Mayor número máquina de F(s+1, m, M, 2):(s 1) M s(2 1 2C ) −+= − i
*) Menor número máquina positivo de F(s+1, m, M, 2):mc 2=
*) Siendo e el exponente de un número máquina positivode F(s+1,m,M,2), la distancia entre él y el siguienteen valor absoluto es: e sd 2 −=
Distribución del conjunto F(s+1, m, M, 2)Distribución del conjunto F(s+1, m, M, 2)
(Igual para negativos sustituyendo “siguiente” por “anterior”.)
![Page 14: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/14.jpg)
76Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sean:1
e2 s s 1d d ...d d ..z 1. 2.+= ± i (número que se aproxima)
1 2 sed d ...dz* 1. 2= ± i (número máquina de F(s+1, m, M, 2)
obtenido aproximando z por truncado)
Se verifica:e
zsz z * 2 −Δ = − ≤
sz
z z * 2Ez
−−= ≤ z 0∀ ≠
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante truncado
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante truncado
![Page 15: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/15.jpg)
77Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sean:1
e2 s s 1d d ...d d ..z 1. 2.+= ± i (número que se aproxima)
1 2 se'd' d' ...d'z* 1. 2= ± i (número máquina de F(s+1, m, M, 2)
obtenido aproximando z por redondeo)Se verifica:
1z
sez z * 2 − −= − ≤Δ
sz
1z z * 2z
E − −−= ≤ z 0∀ ≠
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante redondeo
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante redondeo
![Page 16: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/16.jpg)
78Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
De las propiedades anteriores se tiene que:z 0 :∀ ≠
−
− −
⎧−= ≤ = ⎨
⎩1z
s
s
2 aproximando por truncadoz z *z 2 aproximando por redondeo
uE
UNIDAD DE REDONDEO DE F(s+1, m, M, 2)Propiedad.
z 0∀ ≠ sea z zz * z z* (1 ) z
z−
= ⇔ = +δ δ i
Se verifica que: δ ≤z u
La unidad de redondeo de F(s+1, m, M, 2)La unidad de redondeo de F(s+1, m, M, 2)
![Page 17: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/17.jpg)
79Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
NO pueden aproximarse por un número máquina del sistemaF(F(s+1s+1, , mm, , MM, 2):, 2):
* Los números reales con valor absoluto superior o igual a:
OVERFLOW s s2
M
1
1
M
2 (truncando)(2 1) 2 (redondeando)
N+
+
− −
⎧= ⎨
−⎩ i
* Los números reales no nulos con valor absoluto inferior a:
UNDERFLO sW 2
m
ms 2
2 (truncando)(2 1) 2 (redondea )
nndo+ − −
⎧= ⎨
−⎩ i
Overflow y underflow en F(s+1, m, M, 2)Overflow y underflow en F(s+1, m, M, 2)
![Page 18: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/18.jpg)
80Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
UNDERFLO OVERFLOWW z Nn ≤ <
OVERFLOWSi z N≥ ERROR DE OVERFLOW
UNDERFLOWSi z n< ERROR DE UNDERFLOW
ASIMILACIÓN A 0.
Sólo pueden aproximarse por números máquina no nulos del
sistema F(s+1, m, M, 2) aquellos números reales z para los
que se verifique:
Overflow y underflow en F(s+1, m, M, 2) (cont.)
Overflow y underflow en F(s+1, m, M, 2) (cont.)
![Page 19: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/19.jpg)
81Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Exponente: 8 bits (uno para el signo)Mantisa: 24 bits (uno para el signo)• Mayor exponente:
+ (1·26 + 1·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·20) = 127
• Menor exponente: -127
• Número de números máquina:
224(127 – (-127) + 1) + 1 = 4278190081
• Mayor número máquina: (224-1)·2127-23 = 2128 - 2104≈ 3·1038
• Menor número máquina positivo: 2-127≈ 5·10-39
• Unidad de redondeo: Truncando u = 2-23 ≈ 1·10-7
Redondeando u = 2-24 ≈ 1·10-8
Ejemplo 1ºEjemplo 1º
![Page 20: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/20.jpg)
82Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Exponente: 11 bits (uno para el signo)Mantisa: 53 bits (uno para el signo)• Mayor exponente:
+ (1·29 + 1·28 + ...... + 1·22 + 1·21 + 1·20) = 1023
• Menor exponente: -1023
• Número de números máquina:253(1023 – (-1023) + 1) + 1 = 18437736874454810625 ≈
18.5·1018
• Mayor número máquina: (253-1)·21023-52 = 21024 - 2971≈ 1·10308
• Menor número máquina positivo: 2-1023 ≈ 1·10-308
• Unidad de redondeo: Truncando u = 2-52 ≈ 2.1·10-16
Redondeando u = 2-53 ≈ 1.1·10-16
Ejemplo 2ºEjemplo 2º
![Page 21: Programación y Métodos Numéricos Errores de redondeo en …ocw.upm.es/matematica-aplicada/programacion-y... · Errores de redondeo en la representación de números reales: CODIFICACIÓN](https://reader031.vdocuments.site/reader031/viewer/2022022019/5b99569e09d3f2dc2b8ba4f6/html5/thumbnails/21.jpg)
83Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas