programación y métodos numéricos errores de redondeo en...

21
63 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Programación y Métodos Numéricos Errores de redondeo en la representación de números reales: CODIFICACIÓN DE NÚMEROS REALES Programación y Métodos Numéricos Errores de redondeo en la representación de números reales: CODIFICACIÓN DE NÚMEROS REALES Carlos Conde L Carlos Conde L á á zaro zaro Arturo Hidalgo L Arturo Hidalgo L ó ó pez pez Alfredo L Alfredo L ó ó pez Benito pez Benito Febrero, 2007

Upload: duongque

Post on 13-Sep-2018

222 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

83Departamento de Matemática Aplicada y Métodos Informáticos

Universidad Politécnica de Madrid Ingeniería de Minas