You are on page 1of 15

Errores

Motivacin y Errores

Mtodos Numricos

Prof. Juan Pablo Concha y Eduardo Uribe


Conferencia 2

Errores

Conferencia 2

Errores
Errores humanos.
Errores de redondeo
Errores relativos y absolutos

Errores

Errores de Programacin I (Sencillos)


Errores de sintaxis.
Violacin de las reglas de un lenguaje de programacin.
Solucionado hoy en da con deteccin automtica.
Errores de enlace
Mala coordinacin al utilizar los distintos mdulos de un programa.
Se detecta en general en la fase de enlace.
Errores en la fase de ejecucin
Mal manejo del espacio de memoria o del traspaso de datos,
etc.
Usualmente el programa avisa sobre la existencia de un error.

Errores

Errores de Programacin II (No tan sencillos)

Errores lgicos
Fallas en la lgica de ejecucin del programa.
Ocurre normalmente sin que se note. El programa trabaja
aparentemente bien, pero los resultados son incorrectos.
Eliminacin de errores
Depuracin: Aislar errores, utilizar herramientas de ayuda.
Prueba: Probar partes separadamente.Utilizar ejemplos
con salida conocida.

Errores

Representacin de nmeros enteros


Nmeros enteros positivos
Base decimal:
72662 = 7 104 + 2 103 + 6 102 + 6 101 + 2 100
Base binaria:
10110 = 1 24 + 1 22 + 1 21 = 16 + 4 + 2 = 22
Ejemplo
Qu rango de enteros pueden representarse con 8 dgitos en
base 2?
Se guarda un dgito para el signo. El mayor valor es:
26 + 25 + 24 + 23 + 22 + 21 + 20 = 27 1 = 127

Errores

Representacin de punto flotante


Decimales positivos
Base decimal:
7.2662 = 7 100 + 2 101 + 6 102 + 6 103 + 2 104
Base binaria:
10.110 = 1 21 + 1 21 + 1 22 = 2 +

1 1
+ = 2.75
2 4

Punto flotante (normalizado)


m be donde: m: Mantisa, b: base, e: exponente.
Normalizado: b1 m 1.
1
= 0.0263 = 0.00263 101 = 2.63 102 = 0.263 101
38

Errores

Ejemplo
Fijando base b = 2.
Cules son los nmeros extremos positivos que pueden representarse como punto flotante normalizado usando 7 dgitos:
Dgitos: 1 signo, 3 exponente (con signo) y 3 mantisa.
Mayor positivo (overflow):
0011111 = 0_0_11_111 = (21 + 22 + 23 ) (22

1 +20

)=7

Menor positivo (underflow):


0111100 = 0_1_11_100 = (21 ) (2(2

1 +20 )

) = 24 =

1
16

Errores

Aproximando hacia puntos flotante


Nmero arbitrario en base decimal
x = 0.d1 d2 . . . dk dk +1 dk +2 . . . 10n , 1 d1 9, 0 dk 9
Cmo aproximarlo por un punto flotante tomando una mantisa
de k dgitos?
Cortando
fl(x) = 0.d1 d2 . . . dk 10n
Ejemplo: k = 5
fl() = fl(0.314159265 . . . 101 ) = 0.31415 101

Errores

Aproximando hacia puntos flotantes


Nmero arbitrario en base decimal
x = 0.d1 d2 . . . dk dk +1 dk +2 . . . 10n , 1 d1 9, 0 dk 9
Cmo aproximarlo por un punto flotante tomando una mantisa
de tamao k ?
Redondeando
Antes de cortar, sumar 5 10n(k +1) a la mantisa.
Ejemplo: k = 5
fl() = fl(0.314159265 . . . 101 )
= fl((0.314159265 . . . + 0.000005) 101 )
= 0.31416 101

Errores

Aproximando hacia puntos flotantes


Ejemplos (Redondeo)
Supongamos que:
La base b = 10.
La mantisa tiene 4 dgitos.
El exponente tiene tres dgitos (sin contar el signo)
fl(0.31794 10110 ) = 0.3179 10110
fl(0.99997 1099 ) = 0.1000 10100
fl(0.012345 1099 ) = 0.1235 10100
fl(0.54321 10110 ) = 0.5432 10110

Errores

Definicin
Si p es una aproximacin de p, el error absoluto es
Ea (p ) = |p p |,
y el error relativo (cuando p 6= 0) es
Er (p ) =

|p p |
|p|

Observacin
El error relativo tiene en cuenta la magnitud de la cantidad a
aproximar.

Errores

Ejemplos
Si p = 0.3 101 y p = 0.31 101 , entonces:
Ea (p ) = |(0.31 0.3) 101 | = 0.1
Er (p ) =

0.1
101
= 0.3
0.3 101

Si p = 0.3 103 y p = 0.31 103 , entonces:


Ea (p ) = |(0.31 0.3) 103 | = 0.1 104
Er (p ) =

0.1 104
101
= 0.3
0.3 103

Si p = 0.3 104 y p = 0.31 104 , entonces:


Ea (p ) = |(0.31 0.3) 104 | = 0.1 103
Er (p ) =

0.1 103
101
= 0.3
0.3 104

Errores

Error del punto flotante


Error relativo de fl(x)
Si fl(x) se calcula para una mantisa de k dgitos:
Para errores con corte:
Er (fl(x)) =

|x fl(x)|
10k +1
|x|

Para errores con redondeo:


Er (fl(x)) =

|x fl(x)|
0.5 10k +1
|x|

En base binaria (redondeo):


Er (fl(x)) =

|x fl(x)|
2k
|x|

Errores

Cifras significativas

Definicin
Se dice que x aproxima a x hasta t cifras significativas, si t es
el mayor nmero entero no negativo que satisface
Er (x ) =

|x x |
5 10t
|x|

Ejemplo
Cotas para cuatro cifras significativas.
x
0.1
1000 10000

max |x x | 0.00005 0.5


5

Errores

Ejercicios
1

Realice un cambio de base segn corresponda.


5.7510
0.110

0.1010112
1.011010012

Halle el error absoluto E(x) y el error relativo Er (x) y determine el nmero de


cifras significativas de la aproximacin.
x = 2.71828182, x = 2.7182
x = 98350, x = 98000
x = 0.000068, x = 0.00006

Considere una codificacin de 20 bits con los siguientes parmetros: 1 bit signo,
1 bit signo exponente, 7 bits exponente y 11 bits para la mantisa. De acuerdo a
esta codificacin determine:
1
El nmero real representado segn: 01101010111110001111
2 La codificacin del nmero real: 56.715
3 El nmero real mximo y ms cercano a cero
4 La codificacin del siguiente nmero real: 0.975421

You might also like