ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de...
Transcript of ICI3140 Métodos Numéricoszeus.inf.ucv.cl/~hallende/material/errores.pdf · Hasta la década de...
ICI3140 Métodos NuméricosProfesor : Dr. Héctor Allende-Cid
e-mail : [email protected]
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
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
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]
Exactitud vs Precisión.
ii
ii
tt
tvtv
t
v
dt
dv
−
−=
∆
∆≅
+
+
1
1 )()(
Forma numérica
)()()()(1
2
1 iiid
ii tttvm
cgtvtv −
−+=
++
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.
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 −= _
Errores
� “Problemas” con el error absoluto
� Error relativo fraccional verdadero:
� Error relativo también puede ser multiplicado por 100%
valorverdadero
ónaproximacivalorverdadero
_
_ −
%100_
_×
−=
valorverdadero
ónaproximacivalorverdaderoTε
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”?
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
ε
ε
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
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.
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).
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
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.
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
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
ICI3140 – Dr. Héctor Allende 18
Decimal � Binario
� Ejemplo:
217.34375 � 11011001.01011
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
ICI3140 – Dr. Héctor Allende 20
Binario � Decimal
� Ejercicio
� 23.4325 a binario
� 10101.01010 a decimal
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
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
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
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
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
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
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)
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
¿Cómo lo hace JULIA?
� http://julia.readthedocs.org/en/latest/manual/integers-and-
floating-point-numbers/
Métodos NuméricosProfesor : Dr. Héctor Allende-Cid
e-mail : [email protected]