Cálculo numérico
Transcripción
Cálculo numérico
Cálculo numérico Proyecto 1 10 de febrero de 2011 Número de condición Supongamos que queremos averiguar la sensibilidad de la solución de P, un problema bien planteado, con respecto a los datos de entrada. Denotemos por A a los datos y como x = f (A) a la correspondiente solución. Si resolvemos P en forma aproximada, entonces el error hacia adelante está dado por |x̂ − x| , ǫf = |x| el correspondiente error proyectado en los datos A, error hacia atrás, es ǫb = |Â − A| |E| = . |A| |A| Definimos al número de condición de P como la constante de proporcionalidad entre ambos errores, i.e. ǫf = cond (P)ǫb . En términos prácticos solamente es posible obtener una cota superior para cond (P), por lo tanto tendremos que ǫf ≤ cond (P)ǫb . Problemas T 1. Si a es el valor aproximado para una cantidad cuyo valor correcto es t, y a tiene error relativo r. Prueba que a = t(1 + r). 2. Considera el problema de evaluar la función sen(x) cuando el argumento x tiene un error de h. a) Estima el error absoluto cuando se evalúa sen(x). b) Estima el error relativo cuando se evalúa sen(x). c) Estima el número de condición del problema. 1 d ) ¿Para qué valores del argumento x este problema es altamente sensible? 3. La función sen(x) está dada por la serie infinita sen(x) = x − x3 x5 x7 + − +··· 3! 5! 7! a) Estima el error hacia adelante y el error hacia atrás cuando se utiliza el primer término de la serie para calcular sen(x) en x = 0.1, x = 0.5, x = 1.0 b) Estima el error hacia adelante y el error hacia atrás cuando se utilizan los dos primeros términos de la serie para calcular sen(x) en x = 0.1, x = 0.5, x = 1.0 4. Un sistema en punto flotante es caracterizado por cuatro enteros (β, p, L, U). Si β = 10, ¿cuáles son los valores de p, de U, y de L para que se puedan representar exactamente los números 2365.27 y 0.00005 en el sistema? 5. En un sistema en punto flotante con precisión p = 6 dı́gitos decimales considera los números x = 1.23456, y = 1.23457 a) ¿Cuántos dı́gitos significativos tiene la diferencia y − x.? b) ¿Se puede representar la diferencia y − x en forma exacta, independientemente del rango del exponente? 6. Considera la expresión e(x) = 1 1 − , 1−x 1+x a) ¿Para que rango de valores de x es difı́cil calcular e(x) en forma exacta en PF? b) Ordena los términos en una forma matemáticamente equivalente, para que en el rango calculado en el inciso a), e(·) se pueda calcular en forma más exacta. 7. Si x ≈ y, entonces es de esperar que ocurra cancelación cuando se calcula log(x) − log(y). Por otra parte, log(x) − log(y) = log(x/y). Observa que en la última expresión no ocurre cancelación. ¿Significa esto que log(x/y) es mejor que calcular log(x) − log(y)? (Sugerencia: encuentra los valores de x que hacen sensible el cálculo de log(·)) 8. Considera las expresiones x2 − y 2, (x − y)(x + y). a) ¿Cuál de las dos expresiones dará resultados más exactos en punto flotante b) ¿Para que valores de x, y hay diferencia sustancial en el resultado? 9. Para calcular m, el punto medio de un intervalo [a, b], ¿cual de las dos fórmulas es preferible en aritmética de punto flotante? a) m = (a + b)/2, b) m = a + (b − a)/2. 2 10. ¿En qué sistemas en punto flotante es cierto que ǫM es un número de máquina? 11. En la mayorı́a de los sistemas en punto flotante, se puede obtener una aproximación rápida al número ǫM mediante el siguiente cálculo |3(4/3 − 1) − 1|. a) Explica porqué funciona esta simplificación. b) ¿Funcionarı́a la estrategia anterior en un sistema de PF con β = 3? Problemas P 1. Escribe un programa para calcular la constante e, la base de los logaritmos naturales. Utiliza la definición e = lı́m (1 + 1/n)n . n→∞ Especı́ficamente, calcula (1 + 1/n)n para n = 10k , k = 1, 2, . . . , 20. 2. Supongamos que es necesario generar n + 1 puntos igualmente espaciados en el intervalo [a, b] con espaciamiento h = (b − a)/n. a) En aritmética de PF, ¿cuál de los siguientes métodos x0 = a, xk = xk+1 + h, k = 1, . . . , n o xk = a + kh, k = 0, . . . , n es mejor y porqué? b) Escribe un programa que compare ambos métodos y construye un ejemple que ilustre la diferencia entre los dos. 3. Considera la aproximación para la derivada de una función f ′ (x) = f (x + h) − f (x) + O(h). h a) Escribe un programa de computadora y pruébalo con la función tan(x) en x = 1. Determina el error comparando tu resultado con sec2 (x). Grafica la magnitud del error como una funcioń de h, para h = 10−k , k = 1, 2, . . . , 16. ¿Para que valor de h ocurre el mı́nimo del error?. b) Repite el cálculos del inciso a) con la fórmula f ′ (x) = f (x + h) − f (x − h) + O(h2). 2h 3