Download Diapositiva 1
Document related concepts
Transcript
Computación y Cálculo Numérico Unidad III – ERRORES UNIDAD III: ERRORES Hemos desarrollado: • Sistemas numéricos: decimal, binario y hexadecimal. • Representación interna de datos: números y caracteres. Presentaremos hoy: • Nociones básicas de errores. Licenciatura en Física – Departamento de Física - ECEN Turner, P.A. Computación y Cálculo Numérico Turner, P.A. En esta UNIDAD comenzamos a introducirnos en los: Unidad III – ERRORES MÉTODOS NUMÉRICOS Situación REAL NO SIEMPRE se requiere una RESPUESTA EXACTA MODELO MATEMÁTICO para describir y analizar APROXIMACIÓN SOLUCIÓN ANALÍTICA: Puede NO tener Puede ser DIFÍCIL o COSTOSA (objetivos) MÉTODOS NUMÉRICOS Una SOLUCIÓN APROXIMADA al PROBLEMA ORIGINAL Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. OBJETIVO MÉTODO NUMÉRICO Unidad III – ERRORES Resolver problemas numéricos COMPLEJOS utilizando operaciones aritméticas SIMPLES. RECORDEMOS ALGORITMO Conjunto FINITO de reglas o instrucciones bien definidas, tal que, siguiéndolas paso a paso se obtiene la solución a un dado problema. DIREMOS MÉTODO NUMÉRICO Es un ALGORITMO diseñado para dar respuesta NUMÉRICA problema con una PRECISIÓN prescripta. CÁLCULO NUMÉRICO EVALÚA los MÉTODOS NUMÉRICOS OBJETIVO diseñados. Licenciatura en Física – Departamento de Física - ECEN a un Computación y Cálculo Numérico Turner, P.A. DIREMOS Unidad III – ERRORES El CÁLCULO de un dado MÉTODO NUMÉRICO dará NÚMEROS que se APROXIMAN a los que se obtendrían aplicando la SOLUCIÓN ANALÍTICA de un problema, en el caso que existiera. Si el cálculo aproxima a la solución “exacta”: NOS PREGUNTAMOS ¿Qué tan PRECISOS (próximos a la solución “exacta”) son los resultados? O ¿Qué tanto ERROR se ha introducido? Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. NOCIONES BÁSICAS DE ERRORES Unidad III – ERRORES TRATAMIENTO INFORMACIÓN ENTRADA INFORMACIÓN DATOS ERROR RESUMIMOS PROCESO INFORMACIÓN SALIDA INFORMACIÓN MÉTODO NUMÉRICO ERROR RESULTADOS FUENTES DE ERROR • Distintos ERRORES en cada ETAPA. • Los ERRORES se PROPAGAN dando el ERROR TOTAL. ¿Cómo MEDIMOS el ERROR? Licenciatura en Física – Departamento de Física - ECEN ERROR Computación y Cálculo Numérico Turner, P.A. MAGNITUD DEL ERROR CUANTIFICAMOS el ERROR: Unidad III – ERRORES Siendo VA una aproximación de VV, y VV el valor real, entonces: ERROR ABSOLUTO e = | VA – VV | ERROR RELATIVO ABSOLUTO eR = | ( VA – VV ) / VV | con la condición VV ≠ 0 ERROR PORCENTUAL ABSOLUTO eP = 100.| ( VA – VV ) / VV |(%) con la condición VV ≠ 0 Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. CIFRAS SIGNIFICATIVAS MEDIR la CONFIABILIDAD de un VALOR NUMÉRICO Unidad III – ERRORES Siendo VA una aproximación de VV (de la definición de ERROR RELATIVO) Si d es el mayor número natural tal que | ( VA – VV ) / VV | < 10-d/2 VA es una aproximación a VV con d CIFRAS SIGNIFICATIVAS EJEMPLOS • VA = 3.14 y VV = 3.141592 |(VA – VV)/VV| = 0.000507 < 10-2/2 VA es una aproximación a VV con 2 cifras significativas. • VA = 999 996 y VV = 1 000 000 |(VA – VV)/VV| = 0.000004 < 10-5/2 VA es una aproximación a VV con 5 cifras significativas. • VA = 0.000012 y VV = 0.000009 |(VA – VV)/VV| = 0.25 < 10-0/2 VA es una aproximación a VV con 0 cifras significativas. Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Unidad III – ERRORES FUENTES DE ERROR ERRORES en el CÁLCULO al implementar en MÁQUINA el MÉTODO. Es decir: Tiempo ALGORITMO MÉTODO PROCESO COMPUTACIONAL NUMÉRICO Espacio INTENCIONALMENTE al usar un ALGORITMO COMPUTACIONAL Introducimos restricciones: TIEMPO FINITO (ALGORITMO) ESPACIO FINITO (COMPUTADORA) RIGUROSAMENTE: FINITO no alcanza. FINITO debe entenderse como RAZONABLE. ERRORES • ERROR DE TRUNCAMIENTO (tiempo). • ERROR DE REDONDEO (espacio). Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. FUENTES DE ERROR EN EL ALGORITMO COMPUTACIONAL Unidad III – ERRORES ERROR DE TRUNCAMIENTO SURGEN debido a la limitación en TIEMPO. Debemos realizar un número finito de acciones. EJEMPLOS: • Evaluar funciones con la Serie de Taylor. • Proceso iterativo convergente. • Evaluar por intervalos. TRUNCAR Faltará evaluar (ERROR) términos, iteraciones o intervalos TRUNCADOS. NO PODEMOS IMPLEMENTAR EL LÍMITE ANALÍTICO Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. FUENTES DE ERROR EN EL ALGORITMO COMPUTACIONAL Unidad III – ERRORES ERROR DE REDONDEO SURGEN debido a la limitación en ESPACIO (la memoria ocupa espacio). Los números reales se representan por una INFINIDAD de dígitos. En MÁQUINA sólo podemos tener un representación FINITA. X = ± 0, d1 d2 d3 …. dm x 10n , 1≤d1≤9 y 0≤di≤9 d1 d2 d3 …. dm: mantisa n: exponente Trabajamos con: fl(x) = ± 0, d1 d2 d3 …. dk x 10n Tenemos almacenado un REDONDEO del número real que difiere (ERROR) del número real. Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. REDONDEO TRUNCADO Unidad III – ERRORES El redondeo truncado consiste en truncar el resultado de una operación al número de cifras significativas que se estén utilizando. Por ejemplo sí redondeamos 7/9 a 4 cifras significativas tenemos 0.7777 REDONDEO SIMÉTRICO El redondeo simétrico consiste en aumentar en uno la última cifra retenida si la primera cifra descartada está entre 5 y 9, o dejarla igual si la primera cifra descartada está entre 0 y 4. Ejemplo: 1/3 + 2/3 = 1, su resolución mediante la calculadora puede llevarnos a un resultado diferente. Si realizamos la suma empleando únicamente 4 cifras significativas se obtiene 0.3333 + 0.6666 = 0.9999 (redondeo truncado) 0.3333 + 0.6667 = 1.000 (redondeo simétrico) Licenciatura en Física – Departamento de Física - ECEN Errores Computación y Cálculo Numérico Turner, P.A. ERROR NUMÉRICO TOTAL Unidad III – ERRORES ERROR NUMÉRICO TOTAL ERROR DE TRUNCAMIENTO ERROR DE REDONDEO Error de truncamiento Agregando términos, iteraciones o disminuyendo el intervalo. Significa número de operaciones Error de redondeo DISMINUIR UNA COMPONENTE DE ERROR CONDUCE A UN INCREMENTO EN LA OTRA Licenciatura en Física – Departamento de Física - ECEN Unidad III – ERRORES Computación y Cálculo Numérico Turner, P.A. There are 10 2 types of people in the world: those who understand binary and those who don't. Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Conjunto de todos los números reales positivos de la forma 0.d1d 2d 3d 4 ( 2 ) x 2n Unidad III – ERRORES n pertenece al conjunto {-3,-2,-1,0,1,2,3,4}. {0.10002 x 2-3, 0.10012 x 2-3, … , 0.11102 x 24, 0.11112 x 24} Mantisa Exponente n=-3 n=-2 n=-1 n=0 n=1 n=2 n=3 n=4 0.1000(2) 0.0625 0.125 0.25 0.5 1 2 4 8 0.1001(2) 0.0703125 0.140625 0.28125 0.5625 1.125 2.25 4.5 9 0.1010(2) 0.078125 0.15625 0.3125 0.625 1.25 2.5 5 10 0.1011(2) 0.0859375 0.171875 0.34375 0.6875 1.375 2.75 5.5 11 0.1100(2) 0.09375 0.1875 0.375 0.75 1.5 3 6 12 0.1101(2) 0.1015625 0.203125 0.40625 0.8125 1.625 3.25 6.5 13 0.1110(2) 0.109375 0.21875 0.4375 0.875 1.75 3.5 7 14 0.1111(2) 0.1171875 0.234375 0.46875 0.9375 1.875 3.75 7.5 15 Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Unidad III – ERRORES Por ejemplo que pasaría si en nuestra computadora de 4 cifras como describimos en los párrafos anteriores se realiza la operación (1/10 + 1/5) + 1/6? . Supongamos además que nuestra computadora redondea todos los números reales al número binario más próximo de los que dispone. 1 0.1101( 2 ) x 2 -3 10 1 0.1101( 2 ) x 2 -2 5 __ 3 10 0.01101( 2 ) x 2 -2 3 0.1010( 2 ) x 2-1 10 1 0.1011( 2 ) x 2-2 6 __ 7 15 0.1010( 2 ) x 2-1 0.1101( 2 ) x 2 -2 _____________ 1.00111( 2 ) x 2-2 La computadora debe decidir ahora cómo almacenar el número 1.00111(2) x 2-2 . Supongamos que se redondea como 0.1010(2) x 2-1 . El paso siguiente es 0.01011( 2 ) x 2-1 _____________ 0.11111( 2 ) x 2-1 Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Unidad III – ERRORES Ahora la computadora decide como almacenar el número 0.11111(2) x 2-1. Puesto que suponemos que redondea, almacena 0.1000(2) x 20 . Por lo tanto, la solución a nuestro problema original es 7 0.1000( 2 ) x 20 15 El error en el cálculo efectuado por la computadora es 7 0.1000( 2 ) 0.4667 0.5000 0.0333 15 Equivalente a un error del 7% aproximadamente !!... (1/10 + 1/5) + 1/6 =? 1/10 + (1/5 + 1/6) …. Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Utilizando polinomios de Taylor analice el valor de exp(x) en funcion del numero de términos retenidos en la serie x 2 x3 x 4 x5 xn e 1 x ... Pn ( x) 2! 3! 4! 5! n! Unidad III – ERRORES x exp(1) (6 cifras significativas): Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Ejemplo ERROR DE REDONDEO x2 + 62.10 x + 1 = 0 Unidad III – ERRORES Raíces aproximadas (7 cifras significativas): x1 = -0.01610723 , x2 = -62.08390 Soluciones: b b 2 4ac x1 2a b b 2 4ac ; x2 2a Usando aritmética de 4 cifras (para forzar el error): b 2 4ac 62 .10 2 4.000 3856 .4 1 4.000 3852 62 .06 4 4 8 Calculamos x 1 y x2 62 .10 62 .06 0.04000 0.02000 2.000 2.000 62 .10 62 .06 124 .2 x2 62 .10 2.000 2.000 x1 Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Ejemplo ERROR DE TRUNCAMIENTO Unidad III – ERRORES Considere la serie de Taylor para el seno(x) x3 x5 x7 xn sin( x ) x ... 3! 5! 7! n! Para pequeños valores de x, solo un reducido numero de términos es necesario para obtener un “buena solución”. Valor verdadero = Valor suma + Error de truncamiento El valor del Error de truncamiento depende de x y del número de términos incluidos en Valor suma Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. En el caso de utilizar 5 términos siempre 1 x 11! 2 11 3.6e 6 -6 x 10 0.5 Nótese que valores de x mayores a 0.5 aprox. el error aumenta rápidamente cuando x tiende a 1. El error máximo es de 3.54e06, lo cual esta en acuerdo con el error de truncamiento expresado anteriormente. 0 -0.5 -1 error total Unidad III – ERRORES Etrunc Se puede demostrar que para cualquier serie alternante convergente el error de truncamiento es menor que el primer término despreciado -1.5 -2 -2.5 -3 -3.5 -4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 pi/2 x Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Si usamos 15 términos … 29 5.7e 26 -16 x 10 1.5 1 El error por redondeo está controlando el comportamiento. Nótese de todas formas se logra todavía un resultado aceptable en el valor de la serie 0.5 0 error total Unidad III – ERRORES Etrunc 1 x 29! 2 -0.5 -1 -1.5 -2 -2.5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 pi/2 x Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Error de truncamiento Potencia .vs. factorial 20 40 10 10 sin(pi/6) Unidad III – ERRORES 0 10 30 10 factorial -20 10 20 10 -40 10 0 5 10 15 potencia potencia (x=13pi/6) (x=13pi/2) 10 10 10 10 5 10 0 10 sin(13pi/6) -10 0 10 potencia (x=pi/6) potencia (x=pi/2) 0 5 10 15 10 2 4 6 8 10 numeros de termninos Licenciatura en Física – Departamento de Física - ECEN 12 14 Unidad III – ERRORES Computación y Cálculo Numérico Licenciatura en Física – Departamento de Física - ECEN Turner, P.A. Computación y Cálculo Numérico Turner, P.A. TRES IMPORTANTES CONSTANTES EN LA COMPUTADORA Unidad III – ERRORES Estos tres valores definen el rango de números disponibles y la precisión de nuestra computadora realmax := máximo número (normalizado) 21024 1.8E+308 realmin := minimo número (normalizado) 2-1022 2.2E-308 valor positivo mas pequeño de forma tal que sumado a 1 se obtenga como resultado un valor mayor que 1 eps = = 0.00…..12 x 20 = 2-52 2.2E-16 # número de dígitos binarios = - log2(eps) = 52 # número de dígitos decimales = - log10(eps) 15.6 Licenciatura en Física – Departamento de Física - ECEN Unidad III – ERRORES Computación y Cálculo Numérico PROGRAM MACHINE_EPSILON IMPLICIT NONE REAL * 8 :: machEps = 1, tmp =1 PRINT *, "currEp, 1 + currEp" DO PRINT *, machEps, tmp + machEps IF (tmp + machEps == 1.0) EXIT machEps = machEps/2.0 END DO machEps = machEps*2 PRINT * PRINT *, "Calculated Machine epsilon: ", machEps ! Verify our calculation via the intrinsic F95 function EPSILON() PRINT *, "EPSILON(x) = ", EPSILON(machEps) END PROGRAM MACHINE_EPSILON Licenciatura en Física – Departamento de Física - ECEN Turner, P.A. Computación y Cálculo Numérico Turner, P.A. Unidad III – ERRORES TRES ERRORES DE REDONDEO CRÍTICOS Cancelación sustracción de dos números casi iguales Underflow resultado más pequeño que realmin Overflow resultado más grande que realmax Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico constantes de la computadora errores de redondeo críticos Turner, P.A. Unidad III – ERRORES Algunos datos … • 25 de Febrero 1991. Falla en el sistema de defensa Patriot (Irak) Reporte GAO/IMTEC-92-26. Problema de software razón acumulación de errores de redondeo. (www.math.psu.edu/dna/455.f97/notes.html) • 4 de Junio 1996. El cohete Ariane se auto destruye la corto tiempo del despegue. Causa del desastre un error de overflow. (www.rpi.edu/~holmes/NumComp/Misc/siam.ariane.html) • 1997 un error de redondeo es descubierto en los procesadores Pentium-II. Problema no solo de imagen de la empresa (INTEL) sino el costo del reemplazo de un gran numero de procesadores defectuosos. (x86.ddj.com/secrets/dan0441.htm) Licenciatura en Física – Departamento de Física - ECEN Errores Computación y Cálculo Numérico Turner, P.A. Ejemplo ERROR DE TRUNCAMIENTO Unidad III – ERRORES Compare el resultado “exacto” (provisto por la función de librería) de: 1/ 2 x 2 e dx = 0.544987104184 0 con el que se obtiene al integrar los primeros términos de la serie asociada al integrando. Problema para el laboratorio Escriba un programa que le permita calcular el valor del coseno aproximándolo por su desarrollo en polinomios de Taylor alrededor de cero en orden creciente desde 1 hasta 4. Realice los cálculos para valores cercanos a 0, /2 y /4. Licenciatura en Física – Departamento de Física - ECEN Computación y Cálculo Numérico Turner, P.A. Ejemplo ERROR DE REDONDEO Unidad III – ERRORES Resolver la ecuación cuadrática x2 + 62.10 x + 1 = 0 Raíces aproximadas (7 cifras significativas): x1 = -0.01610723 , x2 = -62.08390 Problema para el laboratorio Escriba un programa para sumar 0.00001 diez mil veces a la unidad usando simple precisión. Compare el resultado con el que se obtiene si implementa una estrategia de agrupamiento o si lo resuelve utilizando doble precisión. Licenciatura en Física – Departamento de Física - ECEN