ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de...

30
ICI3140 Métodos Numéricos Profesor : Dr. Héctor Allende-Cid e-mail : [email protected]

Transcript of ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de...

Page 1: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 Métodos NuméricosProfesor : Dr. Héctor Allende-Cid

e-mail : [email protected]

Page 2: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Aprendizaje esperado

� Entender las diferencias entre “exactitud” y “precisión”.

� Aprender a cuantificar el error.

� Aprender como la estimación del error puede ser usada

para decidir cuando termina un cálculo iterativo.

� Entender como los errores de redondeo ocurren debido a

la limitada habilidad de los computadores digitales de

representar números.

� Entender porque los números de punto flotante tienen

limitaciones en su rango y precisión.

ICI3140 – Dr. Héctor Allende 2

Page 3: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Aprendizaje esperado

� Reconocer que ocurren errores de truncamiento cuando

formulaciones matemáticas exactas son representadas

por aproximaciones.

� Conocer como usar series de Taylor para estimar errores

de truncamiento.

� Reconocer que los esfuerzos para minimizar errores de

truncamiento pueden aumentar los errores de redondeo.

ICI3140 – Dr. Héctor Allende 3

Page 4: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Exactitud vs Precisión.

2v

m

cg

dt

dv d−=

v: velocidad vertical [m/s]

t: tiempo [s]

g: aceleración de gravedad

c_d: coeficiente de arrastre

agrupado

m: masa del saltador

De acuerdo al

modelo físico

= t

m

gc

c

gmtv d

d

tanh)(Solución analítica m=68.1 [kg]

g=9.81[m/s^2]

c_d=0.25[kg/m]

Page 5: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Exactitud vs Precisión.

ii

ii

tt

tvtv

t

v

dt

dv

−=

∆≅

+

+

1

1 )()(

Forma numérica

)()()()(1

2

1 iiid

ii tttvm

cgtvtv −

−+=

++

Page 6: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Exactitud vs Precisión

� Exactitud: Que tan cercana es el valor computado o

medido al valor verdadero

� Precisión: Que tan cercanas son los valores computados

o medidos entre sí.

(+) precisión (+) exactitud

(-) precisión (-) exactitud

(+) precisión (-) exactitud

(-) precisión (+) exactitud

Ejercicio: Asigne los casos

correspondientes.

Page 7: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Errores

� Surge entre la diferencia entre una aproximación y el

valor real.

� Verdadero valor = aproximación + error

� Se denomina error verdadero.

� Error absoluto

ónaproximacivalorverdaderoET −= _

ónaproximacivalorverdaderoET −= _

Page 8: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Errores

� “Problemas” con el error absoluto

� Error relativo fraccional verdadero:

� Error relativo también puede ser multiplicado por 100%

valorverdadero

ónaproximacivalorverdadero

_

_ −

%100_

−=

valorverdadero

ónaproximacivalorverdaderoTε

Page 9: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Errores

� Se mide el largo de un puente (9999 [cm]) y un perno (9

[cm])

� Los verdaderos valores según los planos deberían ser

10000 [cm] y 10 [cm]

� ¿En qué caso el error es “más terrible”?

Page 10: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Errores

� ¿Qué pasa cuando no se tiene una solución analítica o no

existe un valor real?

� Error aproximado

%100_

__

%100_

×−

=

×=

actualónaproximaci

anteriorónaproximaciactualónaproximaci

ónaproximaci

aproximadoerror

a

a

ε

ε

Page 11: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Error de Truncamiento

� Cuando se obtiene una aproximación a un verdadero

valor:

∑∞

=

=

0 !k

kx

k

xe

∑∞

=

+

+

−=

0

12

)!12(

)1()(

n

nn

xn

xsen

∑∞

=

−=

0

2

)!2(

)1()cos(

n

nn

xn

x

Page 12: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Errores de redondeo

� Limitaciones de como un computador puede representar

un número.

� Se puede deber a 2 razones:

� Computadores digitales tiene una magnitud y limites de precisión para representar números.

� Ciertas manipulaciones numéricas son muy sensibles a errores de redondeo. Se puede deber a razones “matemáticas” o como se realizan las operaciones aritméticas en el computador.

Page 13: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 13

Representación de Números en un Computador

� Los computadores digitales son los principales medios

de cálculo en análisis numérico.

� La mayoría de los computadores representan los números

en forma de enteros o de punto flotante.

� La mayoría de los computadores usan números binarios

(base 2) para representar los números, algunas veces se

utiliza el sistema octal (base 8) o el hexadecimal (base 16).

Page 14: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 14

Números Binarios

� Son números que están compuestos por 2 dígitos: {0,1}.

� Ejemplo: 0101012 ---> 2110

� Representación de un número decimal en binario:

� Ejemplo:

18.5=1 × 24+0 × 23+0 × 22+1 × 21+0 × 20+1 × 2-1

10010.1

x = ±±±± (ααααn2n+ ααααn-12n-1+……+ αααα02

0+ αααα-12-1+ αααα-22

-2+...)

ααααi = 0 o 1

Page 15: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 15

Entero � Binario

� Sea D un número entero en base 10, para transformarlo

a base 2:

� 1. Dividir el número por 2

� 2. Dividir la parte entera del resultado por 2

� 3. Repetir 2 hasta que el resultado sea 1.

� 4. Unir los digitos obtenido en el resto de cada division partiendo

desde la última división hasta la primera.

� 5. El número binario es la unión de los dígitos.

Page 16: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 16

Decimal � Binario

� Ejemplo: 217

217 : 2 = 108 : 2 = 54 : 2 = 27 : 2 = 13 : 2 = 6 : 2 =3 : 2 = 1

1 0 0 1 1 0 1

11011001

Page 17: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 17

Decimal � Binario

� Ejemplo: 0.34375

34375 * 2 = 0 68750

68750 * 2 = 1 37500

37500 * 2 = 0 75000

75000 * 2 = 1 50000

50000 * 2 = 1 00000

0.01011

Page 18: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 18

Decimal � Binario

� Ejemplo:

217.34375 � 11011001.01011

Page 19: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 19

Binario � Decimal

� Ejemplo:

11011001.01011

1×27 + 1 ×26 + 0 ×25 + 1 ×24 + 1 ×23 + 0 ×22 + 0 ×21

+ 1 ×20 + 0 ×2-1 + 1 ×2-2 + 0 ×2-3 + 1 ×2-4 + 1 ×2-5 =

128 + 64 + 16 + 8 + 1 + 0.25 + 0.0625 + 0.03125 =

217.34375

Page 20: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 20

Binario � Decimal

� Ejercicio

� 23.4325 a binario

� 10101.01010 a decimal

Page 21: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 21

Representación Punto Fijo

� La representación de un número viene dada por:

� Ejemplo:

n=10 n1=4 n2=6 � 30.421 0030 421000

0.0437 0000 043700

x = b1b2...bn1.a1a2…..an2

n2n1

n = n1 + n2

Page 22: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 22

� Los números reales pueden ser representados de la forma:

� Ejemplo:

30.421 � 0.30421 × 102

Representación Punto Flotante

x = a ×××× 10b

x = a ×××× 2b

Con |a|<1, b entero

Page 23: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 23

Punto Flotante Normalizado

� Notación científica normalizada (base 10):

� Notación en punto flotante normalizada (base 2):

x = ±0.a1a2a3……..an 10e

mantisasigno base

exponente

x = ±0.a1a2a3……..an 2e

mantisasigno base

exponente

Page 24: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 24

Representación en Punto Flotante

� Un mismo número puede tener varias representaciones

(0.110x25 = 110x22=0.0110x26).

� Los números suelen estar normalizados.

Un número está normalizado en base dos si tiene la forma:

2xxx1. xxxxxxxx

2xxx0.1 xxxxxxxx Tiene siempre un 1 a la izquierda:

Se puede almacenar en forma implícita

Page 25: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 25

Formato de punto flotante de 32 bits

� El rango de valores representable por cada uno de los

campos es:

� Exponente (8 bits): -128…+127

� Mantisa (23 bits normalizados 1.M): Los valores binariosrepresentables oscilan entre 1.00…0 y 1.11…1

mantisaexponentesig.

1 bit 8 bits 23 bits

32 bits (4 bytes)

http://www.exploringbinary.com/binary-converter/

http://kipirvine.com/asm/workbook/floating_tut.htm

Page 26: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 26

Formato de punto flotante de 32 bits

� Overflow y Underflow

� La cantidad de números representables es 232. El espacio de representación no es

� uniforme: Mayor densidad cerca del cero.

� Precisión: Depende del número de bits en la mantisa.� Con 32 bits es imposible distinguir entre dos números que se diferencien en 2-23≈10-7

-n 0 n 2n 4n

Page 27: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 27

Estándard IEEE 754

� Hasta la década de los 90 cada computador utilizaba su propio formato enpunto flotante (número de bits para exponente y mantisa, como se realizaba redondeo, acciones tomadas en condiciones excepcionales).� En algunas máquinas (Crays, IBM System 370) era necesario utilizar ciertos

trucos para obtener resultados correctos.

� Era imposible escribir programas portables que produjesen los mismosresultados en máquinas diferentes.

� John Palmer (Intel) promueve la creación de un estándar para puntoflotante (1976) antes de comenzar el diseño del coprocesador matemáticodel i8086/8 y del i432. Primeras reuniones comenzaron en 1977.

� El primer borrador fue elaborado por Willian Kahan (Intel), Jerome Coonen(Berkeley) y Harold Stone (Berkeley): documento K-C-S. Inspirado en el trabajo de Kahan en el IBM 7094 (1968)

� Proceso de estandarización bastante lento. El estándar no fue introducidohasta 1985.

� El i8087 (coprocesador) fue la primera implementación comercialimportante (1981).

� El i486 fue el primer µ-Procesador que implementaba el estándar (1989)

Page 28: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

ICI3140 – Dr. Héctor Allende 28

Estándard IEEE 754

� Características del Estándar:� Signo explícito

� Representación del exponente en exceso

� Mantisa normalizada con un 1 implícito (1.M)

� Representaciones

� Codificaciones con significado especial:� Cero (e=0, m=0): número no normalizado que representa al cero.

� Infinito: representan cualquier valor de la región de overflow. El estándarespecifica la aritmética con el infinito.

15 de exponente, 112 de mantisa128 bits (16 bytes) Precisión cuádruple

>=15 de exponente, >=63 de mantisa>=80 bitsPrecisión doble extendida

11 de exponente, 52 de mantisa64 bits (8 bytes) Precisión doble

>=11 de exponente, >=31 mantisa>=43 bitsPrecisión simple extendida

8 de exponente, 23 de mantisa32 bits (4 bytes) Precisión simple

CaracterísticaNº BitsNombre

Page 29: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

¿Cómo lo hace JULIA?

� http://julia.readthedocs.org/en/latest/manual/integers-and-

floating-point-numbers/

Page 30: ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de los 90 cada computador utilizaba su propio formato en punto flotante (número de bits

Métodos NuméricosProfesor : Dr. Héctor Allende-Cid

e-mail : [email protected]