Capítulo 4: Aproximación de Raíces MÉTODOS COMPUTACIONALES EN INGENIERÍA I Capítulo 4: Aproximación de Raíces Facultad de Ingeniería Universidad Nacional del Comahue web page: http://pedco.uncoma.edu.ar/ Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Introducción En esta unidad, se considera uno de los problemas básicos del cálculo numérico, la búsqueda de raíces. La misma consiste en hallar para una función f , una raíz o solución de la ecuación de la forma f (x) = 0 Una raíz de esta ecuación se denomina también cero de la función f . Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Clasificación Los métodos a analizar se pueden dividir en dos grupos Métodos Globales: Convergen sin necesidad de aproximaciones iniciales Bisección (búsqueda binaria) Falsa posición (regula falsi, posición falsa, regla falsa) Métodos Locales: Convergen con aproximaciones iniciales adecuadas Iteración de punto fijo Newton - Raphson (o Newton) Secante Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Bisección Sea f una función continua definida en el intervalo [a, b] con f (a) y f (b) de distinto signo. Por el Teorema del Valor Intermedio, existe un valor p ∈ [a, b] tal que f (p) = 0. Aunque el procedimiento funcionará con más de una raíz en dicho intervalo, a efectos prácticos del procedimiento se supondrá que dicha raíz es única. El punto medio de [a, b], aproxima a la raíz con la siguiente expresión p1 = a1 + b1 − a1 a1 + b1 = 2 2 (1) Dependiendo del signo de f (p1 ) y de f (a), se elegirá el nuevo intervalo. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Bisección: Procedimiento Geométrico Hacer a1 = a, b1 = b y p1 = (a1 + b1 )/2. Si f (p1 ) = 0, entonces p = p1 y se encontró la raíz. Si f (p1 ) 6= 0, entonces f (p1 ) tiene el mismo signo que f (a1 ) o f (b1 ). Cuando f (p1 ) y f (a1 ) tienen el mismo signo, p ∈ (p1 , b1 ) y se hace a2 = p1 y b2 = b1 . Cuando f (p1 ) y f (a1 ) tienen signo opuesto, p ∈ (a1 , p1 ) y se hace a2 = a1 y b2 = p1 . Luego, se repite el proceso en el intervalo [a2 , b2 ]. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I Método de Bisección FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Bisección: Algoritmo Obtener x tal que f (x) = 0 para f continua en [a, b] con f (a) y f (b) de distinto signo ENTRADA: extremos a y b, tolerancia TOL, número máximo de iteraciones N SALIDA: solución aproximada p o mensaje de error Paso 1: Tomar i = 1, FA = f (a) Paso 2: Mientras i ≤ N realizar pasos 3 a 6 Paso 3: Tomar p = a + (b − a)/2 (calculo de ri ) FP = f (p) Paso 4: Si FP = 0 o (b − a)/2 < TOL entonces SALIDA (p) (algoritmo finalizado satisfactoriamente) PARAR Paso 5: Tomar i = i + 1 Paso 6: Si FA · FP > 0 tomar a = p y FA = FP (Cálculo de ai y bi ) si FA · FP > 0, tomar b = p Paso 7: SALIDA (El algoritmo fracasó despues de iterar, N, veces) (algoritmo finalizado sin éxito) PARAR Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Bisección: Cota del Error Sea f ∈ C[a, b] y f (a) · f (b) < 0. El método de Bisección genera una sucesión {pn }∞ n=1 que tiende al cero p de f con |pn − p| ≤ b−a para n ≥ 1 2n Luego, la cota del error es En ≤ b−a 2n Así, la tasa de convergencia del método de Bisección es O(1/2n ). Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Bisección: Observaciones Criterio de parada del error relativo como alternativa al Paso 4 del algoritmo |pN − pN−1 | < TOL con pN 6= 0 |pN | El método siempre converge a la solución, luego puede utilizarse para elegir aproximaciones iniciales de los métodos que convergen localmente. La cota del error es bastante conservativa, es decir, en general el error es significativamente menor. Para disminuir los errores de redondeo en el cálculo del punto medio puede utilizarse la alternativa pn = an + (bn − an )/2. Además, al hallar el subintervalo [an , bn ] donde se encuentra la raíz, puede utilizarse la función signo (sgn) para evitar la posibilidad de tener overflow o underflow en la multiplicación de f (an ) · f (pn ). Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Falsa Posición Se basa, al igual que el Método de Bisección, en el Teorema del Valor Intemedio o de Bolzano. Un defecto de Bisección es que al dividir el intervalo (an , bn ) en mitades iguales, no tiene en cuenta la magnitud de f (an ) y f (bn ). Por ejemplo, si f (an ) es mucho más cercana a cero que f (bn ), la raíz se encuentra más cerca de an que de bn . Este método alternativo, aprovecha la visualización gráfica de unir f (an ) y f (bn ) con una línea recta. El hecho de reemplazar la curva por una recta da una posición falsa de la raíz, de ahí el nombre del método. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Falsa Posición Con los triángulos similares sombreados se obtiene la fórmula Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Falsa Posición El valor de la raíz se estima como la intersección de la recta que une los puntos (an , f (an )) y (bn , f (bn )). Por semejanza de triángulos de la gráfica, la intersección de la recta con el eje x puede estimarse por f (an ) f (bn ) = pn − an bn − pn el cuál puede resolverse por pn = bn − f (bn ) · (bn − an ) f (an ) · (bn − an ) y pn = an − f (bn ) − f (an ) f (bn ) − f (an ) Luego, el valor de pn reemplaza a uno de los valores tal que f (an ) o f (bn ) tenga el mismo signo que f (x). Así, an y bn siempre encierran a la raíz. El Método de la Falsa Posición es por lo general superior a Bisección pero hay algunos casos que violan las conclusiones generales. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Falsa Posición: Algoritmo Obtener x tal que f (x) = 0 para f continua en [a, b] con f (a) y f (b) de distinto signo ENTRADA: extremos a y b, tolerancia TOL, número máximo de iteraciones N SALIDA: solución aproximada p o mensaje de error Paso 1: Tomar i = 2; q0 = f (a); q1 = f (b) Paso 2: Mientras i ≤ N realizar pasos 3 a 7 Paso 3: Tomar p = b − q1 (b − a)/(q1 − q0 ) (calculo de ri ) Paso 4: Si |p − b| < TOL entonces SALIDA (p) (algoritmo finalizado satisfactoriamente) PARAR Paso 5: Tomar i = i + 1 q = f (p) Paso 6: Si q · q1 < 0 tomar a = b y q0 = q1 Paso 7: Tomar b = p y q1 = q Paso 8: SALIDA (El algoritmo fracasó despues de iterar, N, veces) (algoritmo finalizado sin éxito) PARAR Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Falsa Posición: Error A diferencia del Método de Bisección no es posible establecer una cota para el error de truncamiento. En general, el orden de convergencia es lineal (λ = 1) La velocidad de convergencia puede ser: 1/2 < c < 1 y será más lenta que con Bisección 0 < c < 1/2 y será más rápida que con Bisección donde c= Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I Ei+1 Ei FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Iteración de Punto Fijo Un punto p es un punto fijo para una función dada g si g(p) = p. Los problemas de búsqueda de raíces y los problemas de punto fijo son equivalentes en el siguiente sentido: Dado un problema de búsqueda de raíces f (p) = 0, se puede construir una función g con un punto fijo en p de diferentes maneras, por ejemplo como g(x) = x − f (x) o como g(x) = x + 3f (x). Inversamente, si la función g tiene un punto fijo en p, luego la función definida por f (x) = x − g(x) tiene un cero en p. La forma de punto fijo, es en general más simple de analizar y muchas elecciones de la función g derivan en poderosas herramientas de búsqueda de raíces. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Iteración de Punto Fijo: Condiciones No todas las funciones tienen puntos fijos Un punto fijo x0 se dice atractivo, si ∀x en el dominio bastante cercano a x0 la sucesión al iterar la función: x, f (x), f (f (x)), f (f (f (x))), . . . converge a x0 . No todos los puntos fijos son atractivos. Será atractivo si f es continuamente derivable en un entorno de x0 y si |f 0 (x0 )| < 1. Para aproximar una función g, se elige una aproximación inicial p0 y se genera una sucesión {pn }∞ n=1 mediante la iteración pn = g(pn−1 ), para n ≥ 1. Teorema: Si g ∈ C[a, b] y g(x) ∈ [a, b] ∀x ∈ [a, b], entonces g tiene un punto fijo en [a, b]. Si, además, existe g 0 (x) en (a, b) y una constante 0 < k < 1 con |g 0 (x)| ≤ k , ∀x ∈ (a, b), entonces para cualquier número p0 ∈ [a, b] la sucesión pn converge al único punto fijo p en [a, b]. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Iteración de Punto Fijo: Procedimiento Geométrico Iteración de Punto Fijo Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Iteración de Punto Fijo: Algoritmo Obtener p = g(p) dada una aproximación p0 ENTRADA: aproximación inicial p0 , tolerancia TOL, número máximo de iteraciones N SALIDA: solución aproximada p o mensaje de error Paso 1: Tomar i = 1 Paso 2: Mientras i ≤ N realizar pasos 3 a 6 Paso 3: Tomar p = g(p0 ) (calculo de pi ) Paso 4: Si |p − p0 | < TOL entonces SALIDA (p) (algoritmo finalizado satisfactoriamente) PARAR Paso 5: Tomar i = i + 1 Paso 6: Tomar p0 = p (se define un nuevo valor inicial) Paso 7: SALIDA (El algoritmo fracasó despues de iterar, N, veces) (algoritmo finalizado sin éxito) PARAR Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Iteración de Punto Fijo: Cotas del Error Si se satisfacen las hipótesis del Teorema, luego las cotas del error al aproximar p con pn están dadas por |pn − p| ≤ kn |p1 − p0 |, 1−k ∀n≥1 Observaciones: La desigualdad relaciona la tasa con la cuál la sucesión converge a la cota k de la derivada primera. La tasa de convergencia depende del factor k n . A menor valor de k , será más rápida la convergencia, la cúal será lenta al acercarse k a 1. En general, la iteración de punto fijo converge linealmente. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Newton-Raphson: Interpretación Geométrica Tal vez sea la técnica numérica más conocida y poderosa para encontrar raíces de funciones. Gráficamente, la técnica consiste en calcular la recta tangente a f que pasa por el punto (p0 , f (p0 )), donde p0 es una aproximación a la raíz buscada. f 0 (p0 ) = f (p0 ) − 0 p0 − p1 despejando se obtiene la ecuación de recurrencia p1 = p0 − Método de Newton-Raphson f (p0 ) f 0 (p0 ) Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Newton-Raphson: Polinomio de Taylor Puede obtenerse la ecuación de recurrencia mediante Taylor. Sea f ∈ C 2 [a, b] y sea p0 ∈ [a, b] una aproximación a la solución p de f (x) = 0 tal que f 0 (p0 ) 6= 0 y |p − p0 | pequeño. El primer polinomio de Taylor para f (x) alrededor de p0 y evaluando x =p (p − p0 )2 00 f (p) = f (p0 ) + (p − p0 )f 0 (p0 ) + f (ξ(p)) 2 donde ξ(x) ∈ (p, p0 ). Dado que f (p) = 0, se obtiene 0 = f (p0 ) + (p − p0 )f 0 (p0 ) + (p − p0 )2 00 f (ξ(p)) 2 Resolviendo para p se tiene p ≈ p1 = p0 − El Método de Newton resulta dado p0 pn = pn−1 − Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I f (pn−1 ) , f 0 (pn−1 ) f (p0 ) . f 0 (p0 ) n≥1 FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Newton-Raphson: Algoritmo Obtener x tal que f (x) = 0 dada f diferenciable y una aproximación inicial p0 ENTRADA: aproximación inicial p0 , tolerancia TOL, número máximo de iteraciones N SALIDA: solución aproximada p o mensaje de error Paso 1: Tomar i = 1 Paso 2: Mientras i ≤ N realizar pasos 3 a 6 Paso 3: Tomar p = p0 − f (p0 )/f 0 (p0 ) (calculo de pi ) Paso 4: Si |p − p0 | < TOL entonces SALIDA (p) (algoritmo finalizado satisfactoriamente) PARAR Paso 5: Tomar i = i + 1 Paso 6: Tomar p0 = p (se define un nuevo valor inicial) Paso 7: SALIDA (El algoritmo fracasó despues de iterar, N, veces) (algoritmo finalizado sin éxito) PARAR Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de Newton-Raphson Teorema: Sea f ∈ C 2 [a, b]. Si p ∈ [a, b] tal que f (p) = 0 y f 0 (p) 6= 0, entonces existe un número δ > 0 tal que la serie que genera la ecuación de recurrencia converge a p para cualquier aproximación incial p0 ∈ [p − δ, p + δ]. Observaciones: Se puede concluir entonces, que bajo ciertas condiciones el método de Newton converge si se parte de una aproximación inicial suficientemente cercana. Dicha convergencia bajo estas condiciones es en general cuadrática. Fallas del método de Newton: Cuando la raíz r tiene multiplicidad mayor a 1. Cuando el punto inicial se encuentra cerca de un máximo o un mínimo local. Cuando la raíz es cercana a un punto de inflexión de la función. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Secante En muchos problemas, es difícil determinar f 0 (x) además de requerir más operaciones que para evaluar f (x). Para evitar calcular la derivada en el método de Newton Raphson, se reemplaza: f 0 (pn−1 ) = f (x) − f (pn−1 ) x − pn−1 con x → pn−1 Si se reemplaza x = pn−2 entonces f 0 (pn−1 ) ' f (pn−1 ) − f (pn−2 ) pn−1 − pn−2 Reemplazando en la ecuación del método de Newton se obtiene, reordenando f (pn−1 )(pn−1 − pn−2 ) pn = pn−1 − f (pn−1 ) − f (pn−2 ) El orden de convergencia será (1 < λ < 2) en general λ ' 1.6, se dice entonces que la convergencia es superlineal. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Método de la Secante: Algoritmo Obtener x tal que f (x) = 0 dadas dos aproximaciones iniciales p0 y p1 ENTRADA: aproximaciones iniciales p0 , p1 , tolerancia TOL, número máximo de iteraciones N SALIDA: solución aproximada p o mensaje de error Paso 1: Tomar i = 2; q0 = f (p0 ); q1 = f (p1 ); Paso 2: Mientras i ≤ N realizar pasos 3 a 6 Paso 3: Tomar p = p1 − q1 (p1 − p0 )/(q1 − q0 ) (calculo de pi ) Paso 4: Si |p − p1 | < TOL entonces SALIDA (p) (algoritmo finalizado satisfactoriamente) PARAR Paso 5: Tomar i = i + 1 Paso 6: p0 = p1 q0 = q1 p1 = p q1 = f (p) Paso 7: SALIDA (El algoritmo fracasó despues de iterar, N, veces) (algoritmo finalizado sin éxito) PARAR Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Ejemplo: Método de Bisección Problema: Hallar un cero de la función f (x) = x 3 + 4x 2 − 10 en el intervalo [1, 2] mediante el método de Bisección Como f (1) = −5 y f (2) = 14, f (x) = 0 tiene un cero en [1, 2]. Se obtiene después de 13 iteraciones que p13 = 1.365112305. El valor verdadero es p = 1.365230013. Luego, la cota del error y el error son E13 ≤ |p − p13 | ≤ 2−1 ≈ 1.2207 × 10−4 213 y E ≤ |p − p13 | ≈ 1.1770 × 10−4 Para determinar el número de iteraciones para resolver f (x) = 0 en [1, 2] con precisión 10−3 , se busca el entero N tal que |pN − p| ≤ 2−N (b − a) = 2−N < 10−3 Luego se obtiene que N = 10 asegurará el error correspondiente. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA Capítulo 4: Aproximación de Raíces Aproximación de Raíces Ejemplo: Método de Punto Fijo Problema: Resolver f (x) = x 3 + 4x 2 − 10 = 0 en [1, 2] con Punto Fijo La ecuación tiene una raíz única en [1, 2]. Se pueden pensar diferentes opciones de punto fijo: (a) x = g1 (x) = x − x 3 − 4x 2 + 10 (b) x = g2 (x) = 21 (10 − x 3 )1/2 (c) x = g3 (x) = x − x 3 +4x 2 −10 3x 2 +8x Con p0 = 1.5 se obtiene: (a) diverge, (b) converge en 30 iteraciones, (c) converge en 4 iteraciones. Caso (a): g1 no mapea [1, 2] en si mismo y además |g10 (x)| > 1 allí. Caso (b): |g20 (x)| ≈ 2.12 falla la condición de cota. Debió considerarse [1, 1.5]. Caso (c): Su convergencia rápida se debe a que esta elección de g3 es la iteración para Newton. Capítulo 4 MÉTODOS COMPUTACIONALES EN INGENIERÍA I FAIN-UNCOMA