aritmetica finita y an´ alisis de error´ - unioviedo.es · representacion de numer´ os: la...

45
Aritm ´ etica finita y an´ alisis de error Escuela de Ingenier´ ıa Inform´ atica de Oviedo (Dpto. de Matem ´ aticas-UniOvi) Computaci ´ on Num ´ erica Aritm ´ etica finita y an´ alisis de error 1 / 45

Upload: vutram

Post on 06-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Aritmetica finita y analisis de error

Escuela de Ingenierıa Informatica de Oviedo

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 1 / 45

Page 2: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Contenidos

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 2 / 45

Page 3: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Tratamiento matematico de un problema fısico

En este curso presentaremos los metodos numericos basicos queresuelven un conjunto de problemas matematicos clasicos.

Los ordenadores son una herramienta necesaria en el uso eficiente de losmetodos numericos.

Por lo tanto, veremos como los numeros, que pueden tener infinitos dıgitos,se almacenan en el ordenador, que es un dispositivo finito.

Esto nos lleva a tener en cuenta los errores, como definirlos y medirlos.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 3 / 45

Page 4: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 4 / 45

Page 5: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Almacenamiento de numeros

Los numeros se almacenan en los ordenadores en los siguientesformatos

EnteroPermite el almacenamiento exacto de

un conjunto de numeros enteros

En punto flotantePermite el almacenamiento exacto de

un conjunto de numeros enterosun conjunto de numeros no enteros

El formato usado mas habitualmente es formato IEEE 754

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 5 / 45

Page 6: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Representacion en punto flotante: decimal

La representacion en punto flotante en base 10 de un numero real x 6= 0 es

x = σ × x × 10e,

dondeσ = ±1, el signo,1 ≤ x < 10, la mantisa,e ∈ Z, el exponente

El numero de dıgitos en x es la precision de la representacion.

Ejemplo: Para la representacion exacta en punto flotante decimal podemosescribir x = 314.15 = 3.1415× 102, y entonces

σ = +1, x = 3.1415, e = 2.

que tiene una precision de 5 dıgitos.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 6 / 45

Page 7: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Representacion en punto flotante: binaria

La representacion en punto flotante en base 2 de un numero real x 6= 0 es

x = σ × x × 2e,

dondeσ = ±1, el signo,(1)2 ≤ x < (10)2, la mantisa,e ∈ Z, el exponente

Ejemplo: Si x = (10101.11001)2 = (1.010111001)2 × 24 entonces

σ = +1, x = (1.010111001)2, e = (4)10 = (100)2.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 7 / 45

Page 8: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Ejemplo

Para x = (101.001101)2 = (5.203125)10 tenemos

representacion decimal en punto flotante:

σ = +1, x = 5.203125, e = 0,

representacion binaria en punto flotante:

σ = (1)2, x = (1.0100)2, e = (2)10 = (10)2.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 8 / 45

Page 9: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Paso del sistema decimal a binario y viceversa

En el sistema decimal el numero 107.625 significa:

107.625 = 1 · 102 + 7 · 100 + 6 · 10−1 + 2 · 10−2 + 5 · 10−3.

Los ordenadores usan el sistema binario. Solo se almacenan 0 y 1. En elsistema binario, los numeros representan potencias de 2:

(107.625)10 = 26 + 25 + 23 + 21 + 20 + 2−1 + 2−3 = (1101011.101)2

Y el paso de binario a decimal es directo:

(1101011.101)2 = 26 + 25 + 23 + 21 + 20 + 2−1 + 2−3 = (107.625)10

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 9 / 45

Page 10: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Paso del sistema decimal a binario y viceversa

Decimal a binario:Parte entera: dividimos sucesivamente por 2 . Tomamos el ultimoconciente y los restos, empezando por el ultimo:

Cocientes 107 53 26 13 6 3 1Restos 1 1 0 1 0 1

Parte fraccionaria: multiplicamos por 2, restamos la parte entera yrepetimos hasta que la parte fraccionaria sea cero. Tomamos las partesenteras:

Decimal 0.625 0.25 0.5Entera 1 0 1

El resultado es:(107.625)10 = (1101011.101)2.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 10 / 45

Page 11: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Sistemas decimal y binario

Ejemplo: representacion de enteros con 4 bitsRepresentacion Enteros Enteros Enteros Enteros

binaria sin signo con signo con signo con signo (Expo.)(m = 4 bits) (signo en 1er bit) sesgo = 2m−1 sesgo = 2m−1 − 1

0000 0 +0 −8 Reservado0001 1 +1 −7 −60010 2 +2 −6 −50011 3 +3 −5 −40100 4 +4 −4 −30101 5 +5 −3 −20110 6 +6 −2 −10111 7 +7 −1 01000 8 −0 0 11001 9 −1 1 21010 10 −2 2 31011 11 −3 3 41100 12 −4 4 51101 13 −5 5 61110 14 −6 6 71111 15 −7 7 Reservado

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 11 / 45

Page 12: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Representacion de numeros: la norma IEEE 754

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 12 / 45

Page 13: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Representacion de numeros: la norma IEEE 754

La norma IEEE 754

IEEE significa Institute of Electrical and Electronics Engineers.El estandar IEEE 754 es el de la representacion en punto flotante de losnumeros en los ordenadores y es el usado por casi todos los procesadores.

Formatos basicos

Formatos binarios (b = 2) Formatos decimales (b = 10)parametro binary32 binary64 binary128 decimal64 decimal128

precision (p) 24 53 113 16 34emax +127 +1023 +16383 +384 +6144

emin = 1− emax

Ademas de los formatos basicos exiten los formatos de precision extendida yde precision extensible.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 13 / 45

Page 14: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Representacion de numeros: la norma IEEE 754

La norma IEEE 754: precision simple

signo exponente (8 bits) mantisa (23 bits)

PRECISIÓN SIMPLE (32 bits)

x = σ × (1.a1a2 . . . a23)× 2e

Utiliza 32 bits (4 bytes) distribuıdos:1 bit para el signo.8 bits para el exponente.23 bits para la mantisa.

Tiene una precision de 24 dıgitos binarios.El exponente toma valores en [−126,127] con sesgo 127.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 14 / 45

Page 15: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Representacion de numeros: la norma IEEE 754

La norma IEEE 754: precision doble

signo exponente (11 bits) mantisa (52 bits)PRECISIÓN DOBLE (64 bits)

x = σ × (1.a1a2 . . . a52)× 2e

Utiliza 64 bits (8 bytes) distribuıdos:1 bit para el signo.11 bits para el exponente.52 bits para la mantisa.

Tiene una precision de 53 dıgitos binarios. El exponente toma valores en[−1022,1023] con sesgo 1023.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 15 / 45

Page 16: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Representacion de numeros: la norma IEEE 754

Ejemplo. De base 10 a binario IEEE 754

Vamos a convertir 10.25 en base 10 a binario IEEE 754 en precision simple.Los pasos son:

1 Convertimos la parte entera a base 2: (10)10 = (1010)2.2 Convertimos la parte fraccionaria a base 2: (.25)10 = (.01)2.3 Los sumamos: 1010 + 0.01 = 1010.01.4 Lo escribimos en binario normalizado: 1.01001× 23.5 Convertimos el 3 anadiendole el sesgo correspondiente. En este caso

127. Por lo tanto tenemos 127 + 3 = 130, que convertimos a binario1000 0010.

6 Escribimos el numero en el orden (signo exponente mantisa)

0 1000 0010 0100 1000 0000 0000 0000 000

Fijarse que el bit escondido ”1” no esta representado.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 16 / 45

Page 17: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Valores especiales

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 17 / 45

Page 18: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Valores especiales

Valores especiales

Infinito. Aparece cuando se produce un overflow.

Valor signo exponente mantisa−∞ 1 11111111 00000000000000000000000+∞ 0 11111111 00000000000000000000000

NaN (Not a Number). Aparece cuando se realiza una operacion no valida (porejemplo,∞/∞).

Valor signo exponente mantisaSNaN 0 11111111 10000000000000001000000QNaN 1 11111111 00000010000000010000000

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 18 / 45

Page 19: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Valores especiales

Valores especiales

Cero. Como se asume que el bit escondido tiene valor 1, no es posiblerepresentar el cero con los valores normalizados.

Valor signo exponente mantisa−0 1 00000000 00000000000000000000000+0 0 00000000 00000000000000000000000

Numeros desnormalizados. El exponente contiene todo ceros. Se asumeque el bit escondido es cero y que el valor del exponente es el mınimoposible, es decir 00000001 (que equivale a −126 en precision sencilla).

signo exponente mantisa0 00000000 000000001110000000000001 00000000 00100001100000000100000

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 19 / 45

Page 20: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Valores especiales

Ejemplo: numero desnormalizado

signo exponente mantisa0 00000000 00010110000000000000000

El exponente es el mınimo de precision sencilla, −126, y su bit escondido es0.

(0.0001011) · 2−126

Este numero se corresponde con el numero en base 10

(2−4 + 2−6 + 2−7) · 2−126 ≈ 1.0102 · 10−39

Su precision es p = 20

Es menor que el Rmin = 2−126 ≈ 1.1755 · 10−38

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 20 / 45

Page 21: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 21 / 45

Page 22: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud en punto flotante

Queremos medir la exactitud del almacenamiento en punto flotante.

Las medidas habituales son:

El epsilon de la maquina: Es la diferencia entre 1 y el numero siguientex > 1 que se puede almacenar de forma exacta.

El entero mas grande: Es el entero mas grande M tal que todos losenteros x , donde 0 ≤ x ≤ M, se almacenan de forma exacta.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 22 / 45

Page 23: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

El epsilon de la maquina: precision simpleEl numero 1, en formato normalizado

σ × (1.a1a2 . . . a22a23)× 2e

en precision simple, serıa

+1× (1.00 . . . 00)× 20

el siguiente numero que se puede almacenar de forma exacta es

1 + ε = +1× (1.00 . . . 01)× 20

y por lo tanto ε esε = +1× (0.00 . . . 01)× 20

que lo si escribimos normalizado es

ε = +1× (1.00 . . . 00)× 2−23

es decir,ε = 2−23 ≈ 1.19× 10−7

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 23 / 45

Page 24: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

El epsilon de la maquina: precision dobleEl numero 1, en formato normalizado

σ × (1.a1a2 . . . a51a52)× 2e

en precision doble, serıa

+1× (1.00 . . . 00)× 20

el siguiente numero que se puede almacenar de forma exacta es

1 + ε = +1× (1.00 . . . 01)× 20

y por lo tanto ε esε = +1× (0.00 . . . 01)× 20

que si escribimos normalizado es

ε = +1× (1.00 . . . 00)× 2−52

es decir,ε = 2−52 ≈ 2.22× 10−16

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 24 / 45

Page 25: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud en punto flotante: el entero mas grande

Si n es el numero de dıgitos binarios en la mantisa, entonce, el entero masgrande es

M = 2n

porqueTodos los enteros x con

0 ≤ x ≤ (11 . . .︸︷︷︸n−1

1)2×2n−1 = 2n−1 +2n−2 +. . .+21 +20 =2n − 12− 1

= 2n−1,

se pueden almacenar de forma exacta.

x = (10 . . .︸︷︷︸n−1

0)2 × 2n = 2n se puede almacenar de forma exacta.

x = (10 . . .︸︷︷︸n−1

0)2 × 2n + 1 no se puede almacenar de forma exacta.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 25 / 45

Page 26: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

El entero mas grande: precision simple

Decimal Binario Mantisa Exp Representacion

almacenado 25 dıgitos 1.+23 bits

1 000. . .001 1.00. . .000 0 Exacta

2 000. . .010 1.00. . .000 1 Exacta

3 000. . .011 1.10. . .000 1 Exacta

4 000. . .100 1.00. . .000 2 Exacta...

......

......

16777215 011. . .111 1.11. . .111 23 Exacta

M = 224 → 16777216 100. . .000 1.00. . .0000 24 Exacta

16777216 100. . .001 1.00. . .0001 24 Redondeada

16777218 100. . .010 1.00. . .0010 24 Exacta

16777220 100. . .011 1.00. . .0011 24 Redondeada

16777220 100. . .100 1.00. . .0100 24 Exacta...

......

......

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 26 / 45

Page 27: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

El entero mas grande: precision doble

Decimal Binario Mantisa Exp Representacion

almacenado 54 dıgitos 1.+52 bits

1 000. . .001 1.00. . .000 0 Exacta

2 000. . .010 1.00. . .000 1 Exacta

3 000. . .011 1.10. . .000 1 Exacta

4 000. . .100 1.00. . .000 2 Exacta...

......

......

9007199254740991 011. . .111 1.11. . .111 52 Exacta

253 → 9007199254740992 100. . .000 1.00. . .0000 53 Exacta

9007199254740992 100. . .001 1.00. . .0001 53 Redondeada

9007199254740994 100. . .010 1.00. . .0010 53 Exacta

9007199254740996 100. . .011 1.00. . .0011 53 Redondeada

9007199254740996 100. . .100 1.00. . .0100 53 Exacta...

......

......

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 27 / 45

Page 28: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud en punto flotante: el entero mas grande

Precision simple IEEE:

M = 224 = 16777216,

y podemos almacenar los enteros con 6 dıgitos.

Precision doble IEEE:

M = 253 ≈ 9.0× 1015,

y podemos almacenar todos los enteros con 15 dıgitos y casi todos losenteros con 16 dıgitos.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 28 / 45

Page 29: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud IEEEEl mayor numero normalizado que puede representar en doble precision (envalor absoluto) sera, en representacion binaria

(±1) · (1.11 . . . 11) · 21023

En decimal este numero sera:

Rmax = ±(1 + 1 ·2−1 + 1 ·2−2 + 1 ·2−3 + · · ·+ 1 ·2−52) ·21023 ≈ ±1.7977 ·10308

El menor numero normalizado en doble precision que puede representarsera, en representacion binaria

(±1) · (1.00 . . . 00) · 2−1022

Por lo tanto, en decimal este numero sera:

Rmin = ±2−1022 ≈ ±2.2251 · 10−308

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 29 / 45

Page 30: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud IEEE

¿Que sucede si intentamos almacenar un numero mayor en valor absolutoque Rmax?

Error de overflow:

Un error de overflow se produce cuando intentamos usar un numerodemasiado grande.

En la mayor parte de los ordenadores se aborta la ejecucion.El formato IEEE puede darle soporte asignandole los valores simbolicos±∞.A menudo, se debe a errores de programacion, que deben sercorregidos.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 30 / 45

Page 31: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Exactitud

Exactitud IEEE

¿Y que sucede si intentamos almacenar un numero menor en valor absolutoque Rmin?

Error de underflow:

Se produce un error de underflow cuando intentamos almacenar un numeromenor que Rmin.

Desde la inclusion de los numeros desnormalizados, que se situan entre Rminy el cero, se utiliza el valor desnormalizado mas cercano y se pierdeprecision. Es lo que se llama un underflow gradual.

Si el numero es menor que el menor desnormalizado se sustituye porcero y la ejecucion continua.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 31 / 45

Page 32: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 32 / 45

Page 33: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Redondeo decimal

Escribamos un numero x con notacion en punto flotante en base 10 como

x = ±d0.d1d2 . . .× 10n = ±

( ∞∑k=0

dk 10−k

)× 10n,

donde d0 6= 0 y 0 ≤ dk ≤ 9, para k = 1,2, . . .

Si la mantisa tiene mas de p dıgitos decimales, es decir,

dk 6= 0 para algunos k > p − 1,

entonces x no tiene un representacion en punto flotante exacta con precisionp.

En esta situacion, se produce el redondeo.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 33 / 45

Page 34: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Redondeo decimalDos formas habituales de redondeo

x = ±d0.d1d2 . . .× 10n = ±

( ∞∑k=0

dk 10−k

)× 10n :

Redondeo a cero o truncado con p + 1 dıgitos:

x∗ = ±d0.d1d2 . . . dp × 10p,

Redondeo al (par) mas cercano con p dıgitos:

x∗ =

±d0.d1d2 . . . dp−1 × 10n si 0 ≤ dp ≤ 4,±(d0.d1d2 . . . dp−1 + 10−p+1)× 10n si 5 ≤ dp ≤ 9,al numero acabado en par mas cercano si dp = 5 y dp+k = 0.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 34 / 45

Page 35: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Ejemplos redondeo decimalEjemplo: Para x = 0.999953 y p = 4

Truncando x∗ = 0.9999.Redondeando x∗ = 1.000.

Ejemplo: Para x = 0.433309 y p = 3Truncando x∗ = 0.433.Redondeando x∗ = 0.433.

Ejemplo: Para x = 0.433500 y p = 3Truncando x∗ = 0.433.Redondeando x∗ = 0.434. (Hacia el no acabado en par mas cercano)

Ejemplo: Para x = 0.434500 y p = 3Truncando x∗ = 0.434.Redondeando x∗ = 0.434. (Hacia el no acabado en par mas cercano)

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 35 / 45

Page 36: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Redondeo binario

Escribamos un numero x en punto flotante en base dos como

x = ±(1.d1d2 . . .)2 × 2e = ±

(1 +

∞∑k=1

dk 2−k

)× 2e,

donde 0 ≤ dk ≤ (1)2, para k = 1,2, . . .

Si la mantisa tiene mas de p dıgitos binarios, es decir,

dk 6= 0 para algunos k > p − 1,

entonces x no tiene un representacion en punto flotante exacta con precisionp.

Otra vez, se produce redondeo.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 36 / 45

Page 37: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Redondeo binarioDos formas de redondear

x = ±(1.d1d2 . . .)2 × 2e = ±

(1 +

∞∑k=1

dk 2−k

)× 2e :

Redondeo a cero o truncado con p dıgitos:

x∗ = ±(1.d1d2 . . . dp−1)2 × 2e,

Redondeo al (par) mas cercano con p dıgitos:

x∗ =

±(1.d1d2 . . . dp−1)2 × 2e si dp = 0,±((1.d1d2 . . . dp−1)2 + 2−p+1)× 2e si dp = 1,al numero acabado en cero mas cercano si dp = 1 y dp+k = 0.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 37 / 45

Page 38: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Ejemplos redondeo binarioEjemplo: Para x = 1.1111 y p = 3

Truncando x∗ = 1.11.Redondeando x∗ = 10.0.

Ejemplo: Para x = 1.1101 y p = 3Truncando x∗ = 1.11.Redondeando x∗ = 1.11.

Ejemplo: Para x = 1.0010 y p = 3Truncando x∗ = 1.00.Redondeando x∗ = 1.00. (Hacia el no acabado en cero mas cercano)

Ejemplo: Para x = 1.0110 y p = 3Truncando x∗ = 1.01.Redondeando x∗ = 1.10. (Hacia el no acabado en cero mas cercano)

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 38 / 45

Page 39: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Comparacion entre truncado y redondeo enbinario

La representacion en punto flotante con precision p de x puede expresarsecomo

x∗ = x(1 + γ), donde γ =

{ [−2−p+1,0

]si truncamos,[

−2−p,2−p] si redondeamos.

Consecuencias:

El mayor error de truncamiento es el doble que el mayor error deredondeo.El error de truncamiento es siempre no positivo, mientras que el error deredondeo puede cambiar de signo.

Por lo tanto, lo errores se amplifican menos si usamos redondeo.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 39 / 45

Page 40: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Redondeo

Ejemplos

Si x = (1.1001101)2 = (1.6015625)10 lo aproximamos contruncamiento a 5 dıgitos binarios,

x∗ = (1.1001)2 = (1.5625)10

y entonces γ = −x − x∗

x= −0.0243902 . . . ∈

[−2−4,0

].

redondeo a 5 dıgitos binarios,

x∗ = (1.1010)2 = (1.625)10

y entonces γ = −x − x∗

x= 0.0146341 . . . ∈

[−2−5,2−5] .

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 40 / 45

Page 41: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Error

Contenido

1 Sistemas decimal y binario

2 Representacion de numeros: la norma IEEE 754

3 Valores especiales

4 Exactitud

5 Redondeo

6 Error

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 41 / 45

Page 42: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Error

Inestabilidad numerica

Errores de redondeo que se deben a que la aritmetica de la computacion esfinita

son pequenos en cada operacion, peropueden acumularse y propagarse si un algoritmo tiene muchasoperaciones o iteraciones, resultando en una diferencia grande entre lasolucion exacta y la solucion calculada numericamente.

Este efecto se conoce como inestabilidad numerica del algoritmo.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 42 / 45

Page 43: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Error

Ejemplo

Para la sucesion sk = 1 + 2 + . . .+ k , for k = 1,2, . . ., calcular

xk =1sk

+2sk

+ . . .+ksk,

cuyo resultado es

xk = 1 para todos los k = 1,2, . . .

Sin embargo, en precision simple obtenemos

k x∗k |xk − x∗k |101 1.000000 0.0103 0.999999 1.0× 10−7

106 0.9998996 1.004× 10−4

107 1.002663 2.663× 10−3

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 43 / 45

Page 44: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Error

Error absoluto y relativoHay dos medidas principales del error cometido cuando aproximamos unnumero x con x∗:

Error absoluto:ea = |x − x∗|.

Error relativo:er =

|x − x∗||x |

.

El error relativo es independiente de la escala y por tanto es mas significativoque el error absoluto, como podemos ver en el siguiente Ejemplo:

x x∗ ea er

0.3× 101 0.31× 101 0.1 0.333...× 10−1

0.3× 10−3 0.31× 10−3 0.1× 10−4 0.333...× 10−1

0.3× 104 0.31× 104 0.1× 103 0.333...× 10−1

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 44 / 45

Page 45: Aritmetica finita y an´ alisis de error´ - unioviedo.es · Representacion de numer´ os: la norma IEEE 754´ Ejemplo. De base 10 a binario IEEE 754 Vamos a convertir10:25en base10a

Error

Dıgitos significativosDecimos que x∗ aproxima a x con p dıgitos significativos si p es el mayorentero no negativo tal que el error relativo satisface

|x − x∗||x |

≤ 5× 10−p.

Ejemplos:x∗ = 124.45 aproxima x = 123.45 con p = 2 dıgitos significativos:

|x − x∗||x |

=1

123.45= 0.0081 ≤ 0.05 = 5× 10−2.

x∗ = 0.0012445 aproxima x = 0.0012345 con p = 2 dıgitos significativos:

|x − x∗||x |

=0.00001

0.0012345= 0.0081 ≤ 0.05 = 5× 10−2.

x∗ = 999.8 aproxima x = 1000 con p = 4 dıgitos significativos:

|x − x∗||x |

=0.2

1000= 0.0002 ≤ 0.0005 = 5× 10−4.

(Dpto. de Matematicas-UniOvi) Computacion Numerica Aritmetica finita y analisis de error 45 / 45