310 likes | 636 Views
Nociones básicas de 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. En esta UNIDAD comenzamos a introducirnos en los:.
E N D
Nociones básicas de 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.
En esta UNIDAD comenzamos a introducirnos en los: MÉTODOS NUMÉRICOS Situación REAL NO SIEMPRE se requiere una RESPUESTA EXACTA APROXIMACIÓN MODELO MATEMÁTICO para describir y analizar 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
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 a un diseñado para dar respuesta NUMÉRICA ALGORITMO Es un problema con una PRECISIÓN prescripta. OBJETIVO CÁLCULO NUMÉRICO diseñados. MÉTODOS NUMÉRICOS EVALÚA los OBJETIVO MÉTODO NUMÉRICO Resolver problemas numéricos COMPLEJOS utilizando operaciones aritméticas SIMPLES.
Si el cálculo aproxima a la solución “exacta”: NOS PREGUNTAMOS DIREMOS 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. ¿Qué tan PRECISOS (próximos a la solución “exacta”) son los resultados? O ¿Qué tanto ERROR se ha introducido?
RESUMIMOS TRATAMIENTO INFORMACIÓN SALIDA INFORMACIÓN ENTRADA INFORMACIÓN PROCESO INFORMACIÓN MÉTODO NUMÉRICO RESULTADOS DATOS ERROR ERROR ERROR NOCIONES BÁSICAS DE ERRORES FUENTES DE ERROR • Distintos ERRORES en cada ETAPA. • Los ERRORES se PROPAGAN dando el ERROR TOTAL. ¿Cómo MEDIMOS el ERROR?
MAGNITUD DEL ERROR CUANTIFICAMOS el ERROR: 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
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 – VV)/VV| = 0.000507 < 10-2/2 • VA = 3.14 y VV = 3.141592 |(VA – VV)/VV| = 0.000004 < 10-5/2 • VA = 999 996 y VV = 1 000 000 |(VA – VV)/VV| = 0.25 < 10-0/2 • VA = 0.000012 y VV = 0.000009 CIFRAS SIGNIFICATIVAS MEDIR la CONFIABILIDAD de un VALOR NUMÉRICO VA es una aproximación a VV con d CIFRAS SIGNIFICATIVAS EJEMPLOS VA es una aproximación a VV con 2 cifras significativas. VA es una aproximación a VV con 5 cifras significativas. VA es una aproximación a VV con 0 cifras significativas.
ALGORITMO COMPUTACIONAL MÉTODO NUMÉRICO PROCESO INTENCIONALMENTE al usar un ALGORITMO COMPUTACIONAL Introducimos restricciones: Tiempo Espacio FUENTES DE ERROR ERRORES en el CÁLCULO al implementar en MÁQUINA el MÉTODO. Es decir: TIEMPO FINITO (ALGORITMO) ESPACIO FINITO (COMPUTADORA) RIGUROSAMENTE: FINITO no alcanza. FINITO debe entenderse como RAZONABLE. ERRORES • ERROR DE TRUNCAMIENTO (tiempo). • ERROR DE REDONDEO (espacio).
FUENTES DE ERROR EN EL ALGORITMO COMPUTACIONAL 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
FUENTES DE ERROR EN EL ALGORITMO COMPUTACIONAL 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.
REDONDEO TRUNCADO 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 Errores
ERROR NUMÉRICO TOTAL ERROR DE TRUNCAMIENTO ERROR NUMÉRICO TOTAL 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
There are 10 types of people in the world: those who understand binary and those who don't. 2
Conjunto de todos los números reales positivos de la forma 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}
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. 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
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 El error en el cálculo efectuado por la computadora es Equivalente a un error del 7% aproximadamente !!... (1/10 + 1/5) + 1/6 =? 1/10 + (1/5 + 1/6) ….
Utilizando polinomios de Taylor analice el valor de exp(x) en funcion del numero de términos retenidos en la serie exp(1) (6 cifras significativas):
Ejemplo ERROR DE REDONDEO x2 + 62.10 x + 1 = 0 Raíces aproximadas (7 cifras significativas): x1 = -0.01610723 , x2 = -62.08390 Soluciones: Usando aritmética de 4 cifras (para forzar el error): Calculamos x1 y x2
Ejemplo ERROR DE TRUNCAMIENTO Considere la serie de Taylor para el seno(x) 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
En el caso de utilizar 5 términos siempre Se puede demostrar que para cualquier serie alternante convergente el error de truncamiento es menor que el primer término despreciado 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.54e-06, lo cual esta en acuerdo con el error de truncamiento expresado anteriormente.
Si usamos 15 términos … 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
Error de truncamiento Potencia .vs. factorial sin(pi/6) potencia (x=13pi/6) sin(13pi/6) potencia (x=pi/6)
TRES IMPORTANTES CONSTANTES EN LA COMPUTADORA 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
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
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
constantes de la computadora errores de redondeo críticos 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) Errores
Ejemplo ERROR DE TRUNCAMIENTO Compare el resultado “exacto” (provisto por la función de librería) de: = 0.544987104184 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.
Ejemplo ERROR DE REDONDEO 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.