Algoritmos y convergencia Algoritmos y convergencia Contenido Análisis Numérico Clase 2 – Algoritmos y convergencia CNM-425 Departamento de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia 1 Algoritmos y convergencia Algoritmos Convergencia c 2008. Reproducción permitida bajo los Copyleft términos de la licencia de documentación libre GNU. Algoritmos y convergencia Algoritmos y convergencia Algoritmos y convergencia Estructuras básicas Algoritmo: lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Pseudocódigo = pseudo (supuesto) + código (instrucción). Descripción informal y compacta de un algoritmo que utiliza convenciones estructurales de ciertos lenguajes de programación. Estructuras de control Secuencial Selectiva (decisión lógica) Iterativa (repetitiva) Secuencial Selectiva (decisión lógica) instrucción 1 instrucción 2 . . . si P entonces instrucciones 1; si no instrucciones 2; fin si instrucción n Iterativa (repetitiva) Iterativa (repetitiva) mientras P hacer instrucciones; fin mientras para i = inicio hasta f inal hacer instrucciones; fin para Algoritmos y convergencia Algoritmos y convergencia El siguiente algoritmo calcula n X Ejemplos xi = x1 + x2 + · · · + xn . i=1 El polinomio de Taylor de f (x) = ln x en torno de x0 = 1 está dado por leer n, x1 , x2 , . . . , xn ; SU M A = 0; Pn (x) = para i = 1 hasta n SU M A = SU M A + xi ; fin para escribir ’La suma es’, SU M A; El siguiente algoritmo calcula n Y xi = x1 · x2 · · · xn . i=1 n X (−1)i−1 (x − 1)i i i=1 (1) y podemos utilizarlo para calcular ln 1,5 cuyo valor aproximado a ocho cifras decimales es 0,40546511 El siguiente algoritmo calcula el número n de términos necesarios de (1) para que leer n, x1 , x2 , . . . , xn ; | ln 1,5 − Pn (1,5)| < 10−5 (2) P RODU CT O = 1; para i = 1 hasta n P RODU CT O = P RODU CT O · xi ; fin para teniendo en cuenta que para series alternantes convergentes Sn = a1 + a2 + · · · + an → S, se cumple que escribir ’El prodcuto es’, P RODU CT O; |S − Sn | ≤ |an+1 | Algoritmos y convergencia Algoritmos y convergencia Ejemplos Estabilidad leer x, T OL y M ; // TOL es la tolerancia y M es el número máximo de iteraciones. N =1; y = x − 1; SU M A = 0; P OT EN CIA = y; T ERM IN O = y; SIGN O = −1; mientras N ≤ M hacer SIGN O = −SIGN O; SU M A = SU M A + SIGN O × T ERM IN O; P OT EN CIA = P OT EN CIA × y; T ERM IN O = P OT EN CIA/(N + 1); si |T ERM IN O| < T OL entonces escribir ’Términos requeridos: ’, N ); parar; fin si N = N + 1; fin mientras Escribir ’El método falló’ parar; (3) Un algoritmo recibe unos datos de entrada (“input”) y produce unos datos de salida o solución (“output”). Un algoritmo es estable si cambios “pequeños” en los datos de entrada producen cambios “pequeños” en los datos de salida. ¿Cómo influyen los errores de redondeo en la estabilidad de un algoritmo? Definición Suponga E0 > 0 un error inicial y En el error que se obtiene después de ejectuarse n operaciones sucesivas. Error lineal: si En ≈ CnE0 con C una constante positiva, el crecimiento del error es lineal. Error exponencial: si En ≈ C n E0 con C > 1, el crecimiento del error es exponencial. Algoritmos y convergencia Algoritmos y convergencia Crecimiento exponencial Crecimiento exponencial Ejemplo: consideremos la ecuación en diferencias xn = 10 xn−1 − xn−2 , 3 para Con aritmética de redondeo a cinco cifras, x̂0 = 1,0000 y x̂1 = 0,33333 y para las constantes obtenemos ĉ1 = 1,0000 y ĉ2 = 0,12500 × 10−5 y (4) queda n = 2, 3, . . . cuya solución está dada por xn = c1 „ «n 1 + c2 3n 3 x̂n = 1,0000 (4) donde c1 y c2 son constantes que dependen de las “condiciones iniciales” x0 y x1 . „ «n 1 − 0,12500 × 10−5 3n 3 y por tanto el error de redondeo xn − x̂n = 0,12500 × 10−5 3n Con x0 = 1 y x1 = 1 3 obtenemos c1 = 1 y c2 = 0 y (4) queda „ «n 1 xn = 3 crece exponencialmente. Algoritmos y convergencia Algoritmos y convergencia Crecimiento lineal Crecimiento lineal Ejemplo: consideremos ahora la ecuación en diferencias xn = 2xn−1 − xn−2 , para Con aritmética de redondeo a cinco cifras, x̂0 = 1,0000 y x̂1 = 0,33333 y para las constantes obtenemos ĉ1 = 1,0000 y ĉ2 = 0,66667 × 10−5 y (5) queda n = 2, 3, . . . cuya solución está dada por xn = c1 + c2 n x̂n = 1,0000 − 0,66667 n (5) donde c1 y c2 son constantes que dependen de las “condiciones iniciales” x0 y x1 . y por tanto el error de redondeo „ Con x0 = 1 y x1 = 1 3 xn − x̂n = obtenemos c1 = 1 y c2 = − 32 y (5) queda xn = 1 − 2 n 3 Algoritmos y convergencia Errores aritméticos y de redondeo Errores aritméticos y de redondeo Definición “O mayúscula” Sea {βn } una suceción tal que βn → 0 y {αn } una sucesión tal que αn → α. La suceción {αn } converge a α con rapidez de convergencia O(βn ) si existe una constante K tal que βn := 1 n y β̂n := 1 , n2 entonces =⇒ αn = 0 + O n+3 n + 3n 1 ≤ = 4 · 2 = 4β̂n n3 n3 n =⇒ α̂n = 0 + O y Ejemplo: consideremos |α̂n − 0| = y α̂n = n+3 → 0. n3 Algoritmos y convergencia Algoritmos y convergencia Errores aritméticos y de redondeo Errores aritméticos y de redondeo „ Definición Suponga lı́m G(h) = 0 y lı́m F (h) = L. h→0 h→0 De (6), F (h) = L + O(G(h)) ˛„ ˛ ˛ ˛ « ˛ ˛ ˛ ˛ ˜ ˛ ≤ 1 h4 → 0 ˛ cos h + 1 h2 − 1˛ = ˛ 1 h4 cos ξ(h) ˛ ˛ ˛ 24 ˛ 2 24 si existe una constante positiva K tal que |F (h) − L| ≤ K|G(h)|, para h suficientemente pequeño. y por tanto Por lo general G(h) = hp con p > 0. cos h + Ejemplo: al utilizar el tercer polinomio de Taylor de coseno, cos h = 1 − ˜ con 0 < ξ(h) < h. „ « 1 n n+1 n+n 1 ≤ = 2 · = 2βn n2 n2 n |αn − 0| = 1 con p > 0. np n+1 →0 n2 n Ambas sucesiones convergen a cero pero una lo hace más “rápido” que otra: si αn = α + O(βn ) αn = « para n grande, y en tal caso se acostumbra a escribir Por lo general βn = 2 3 crece linealmente. Algoritmos y convergencia |αn − α| ≤ K|βn | , 0,66667 − 1 2 1 4 ˜ h + h cos ξ(h) 2 24 (6) 1 2 h = 1 + O(h4 ) 2 1 n2 «