Metodos Numéricos Tema: Solución de ecuaciones no lineales Irene Tischer Escuela de Ingeniería y Computación Universidad del Valle, Cali Typeset by FoilTEX 1 Métodos numéricos Tema: Sistemas Lineales Contenido 1. Generalidades 2. El método de Bisección 3. El método de Newton-Raphson 4. Sistemas de ecuaciones no lineales Typeset by FoilTEX 2 Métodos numéricos Tema: Sistemas Lineales Contenido 1. Generalidades 2. El método de Bisección 3. El método de Newton-Raphson 4. Sistemas de ecuaciones no lineales Typeset by FoilTEX 3 Métodos numéricos 1. Generalidades Tema: Sistemas Lineales Motivación En muchas situaciones surge, de manera natural, el cálculo de las raíces de una ecuación no lineal en una variable, f (x) = 0 Ciertas ecuaciones no lineales pueden resolverse analíticamente: 6x2 − 7x + 2 = 0 ⇒ (3x − 2)(2x − 1) = 0 cos 3x − cos 7x = 0 ⇒ 2 sin 5x sin 2x = 0 ⇒ ⇒ x = 23 , 12 x= nπ nπ 5 , 2 ,n ∈Z Otras ecuaciones no lineales no tienen solución analítica: x2 2 − 10 x + 1 = 0, cosh ³p x2 + 1 − e x ´ + log | sin x| = 0 Muchas veces los coecientes de las ecuaciones no lineales se conocen solo de forma aproximada, por lo que carecería de sentido un cálculo exacto. Typeset by FoilTEX 4 Métodos numéricos Tema: Sistemas Lineales 1. Generalidades Cálculo aproximado de raíces Entonces es importante el estudio de métodos numéricos para encontrar las soluciones ó raíces de una ecuación: f (x) = 0 en [a, b] que permitan aproximarlas con el grado de precisión deseado. Los métodos numéricos para buscar la ó las raíces de una ecuación no lineal f (x) = 0 están basados en técnicas iterativas: Comenzando por una solución aproximada, se utiliza un algoritmo numérico que mejora la solución hasta que se satisface un determinado criterio de convergencia. Typeset by FoilTEX 5 Métodos numéricos Tema: Sistemas Lineales 1. Generalidades Etapas del cálculo aproximado de raíces En el cálculo aproximado de raíces de una ecuación, f (x) = 0 en [a, b] podemos distinguir dos etapas principales, 1. Separación de raíces: Se establecen subintérvalos de [a, b] que contengan una y solo una raíz de la ecuación. Teorema de Bolzano: nos garantiza la existencia de raíces. Teorema de Rolle: nos acota el número de raíces que pueda haber. 2. Cálculo de las raíces: En cada uno de los intervalos se aplica un proceso iterativo que conduce a una sucesión: {xn}∞ n=0 que tiende al valor de la raíz. Se toma como aproximación de la solución un elemento de la sucesión próximo a la raíz. Typeset by FoilTEX 6 Métodos numéricos 1. Generalidades Tema: Sistemas Lineales Teorema de Bolzano Sea f una función real, continua en el intervalo [a, b]. Si el signo de f cambia en los extremos del intervalo, es decir si f (a)f (b) < 0, entonces f tiene por lo menos una raíz en (a, b). f raiz a b Figura 1. El teorema de Bolzano Typeset by FoilTEX 7 Métodos numéricos 1. Generalidades Tema: Sistemas Lineales Teorema de Rolle Sea f una función real, continua y diferenciable en el intervalo [a, b]. Si f (a) = f (b), entonces existe u en (a, b) tal que f 0(u) = 0. f’HuL=0 fHbL fHaL a Typeset by FoilTEX Figura 2. El teorema de Rolle u b 8 Métodos numéricos Tema: Sistemas Lineales 1. Generalidades Uso de los teoremas de Bolzano y Rolle 1. Una función real diferenciable monótona en el intervalo [a, b], que cambia de signo en los extremos, tiene exactamente una raíz. 2. Si f es continua y diferenciable en [a, b] y si f 0 tiene n raíces, entonces f tiene a lo sumo n + 1 raíces. 3. Si la segunda derivada f 0 de f tiene signo constante, entonces f tiene a lo sumo 2 raíces. Typeset by FoilTEX 9 Métodos numéricos Tema: Sistemas Lineales Contenido 1. Generalidades 2. El método de Bisección 3. El método de Newton-Raphson 4. Sistemas de ecuaciones no lineales Typeset by FoilTEX 10 Métodos numéricos Tema: Sistemas Lineales 2. El método de Bisección Objetivo Dada la función f (x) continua en [a, b] tal que f (a)f (b) < 0, el objetivo es encontrar x∗ ∈ (a, b) tal que f (x∗) = 0 y en su defecto una aproximación cuyo error absoluto sea menor que una tolerancia τ deseada. Se supone que hay una raíz y solo una en el intervalo [a, b]. Typeset by FoilTEX 11 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Procedimiento El método de bisección está basado en el teorema de Bolzano que garantiza la existencia de una raíz en [a, b] si hay cambio de signo de f . Partiendo del intervalo inicial, el método de bisección construye un sucesión de intervalos siempre más pequeños que contiene una raíz ya que se mantiene el cambio de signo (gura 3). 0 0.75 1.125 1.5 3 intervalo iteracion 1 intervalo iteracion 2 intervalo iteracion 3 Figura 3. Tres pasos de bisección para la función f (x) = x2 − 2, empezando en el intervalo [0,3]. Typeset by FoilTEX 12 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Procedimiento (continuación) Iniciamos con el intervalo [a, b], el punto intermedio x = mación inicial de la raíz. a+b es la aproxi2 Pueden presentarse dos casos: 1. f (x) = 0, entonces se encontró una raíz exacta: x = x∗ = a+b . 2 2. f (x) 6= 0. entonces se elige aquel intervalo [a, x] ó [x, b], en cuyos extremos la función toma signos opuestos. De esta forma se aplica otra vez el teorema de Bolzano. Reiterando el proceso anterior ó bien obtenemos la raíz exacta ó bien una sucesión de intervalos cerrados encajados que tienden hacia el valor de la raíz. Se toma como aproximación de la raíz el punto medio del intervalo obtenido en la última iteración. Typeset by FoilTEX 13 Métodos numéricos Tema: Sistemas Lineales 2. El método de Bisección Análisis del error Sea L = L(0) = b − a el tamaño inicial del intervalo. Después de la primera iteración, k = 1, la raíz se encuentra contenida en un intervalo cuyo tamaño es (1) L b − a 1 (0) = = L . 2 2 Después de la k -ésima iteración, el tamaño será, b−a 1 L(k) = L(k−1) = k . 2 2 Esto signica que la sucesión de intervalos construida por el método de bisección, se contrae a un solo punto, que es una raíz exacta de la función f . Typeset by FoilTEX 14 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Análisis del error (continuación) La aproximación de la raíz en la k -ésima iteración es el punto medio del intervalo xk . Por eso, el error es menor o igual que la mitad de la longitud del intervalo. ε0 = |x0 − x∗| ≤ L ; 2 L(1) L ε1 = |x1 − x | ≤ = 2; 2 2 ∗ ... L L(k) = k+1 . εk = |xk − x | ≤ 2 2 ∗ El error converge a 0, es decir, el método de bisección converge a la raíz verdadera. La convergencia es lenta, en cada iteración el error se reduce a la mitad. Typeset by FoilTEX 15 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Tolerancia El comportamiento del error permite calcular con anticipación el número de iteraciones requeridas para obtener una aproximación con una tolerancia τ deseada. Sea τ la tolerancia deseada, es decir, se debe iterar hasta que |x − x∗| ≤ τ, Después de la k -ésima iteración tenemos |x − x∗| ≤ Seleccionando kmax tal que la tolerancia deseada τ . b−a 2kmax+1 L(k) 2 = b−a 2k+1 ≤ τ, se obtiene un error por debajo de Por eso, para el número kmax de iteraciones requeridas para obtener la tolerancia τ se debe cumplir: kmax + 1 ≥ Typeset by FoilTEX log2 b−a τ o sea kmax ¡ ¢ b−a = (int) log2 τ 16 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Algoritmo BISECCIÓN Entrada: la función f ; el intervalo [a, b]; la tolerancia τ . Salida: solución aproximada o exacta o mensaje de fracaso Paso 1: Si f (a) · f (b) ≥ 0 , si la función no cambia de signo, devuelva Mensaje de fracaso Paso 2: ` ´ b−a kmax ← (int) log2 τ para k = 1 hasta kmax haga si f (x) = 0, devuelva x si f (a) · f (x) < 0, entonces b ← x sino a ← x el método de bisección no funciona kmax es el número de iteraciones iterar hasta llegar a la tolerancia τ se encontró una raíz exacta se sigue con el intervalo, donde hay cambio de signo (n para) Paso 3: devuelva x . Typeset by FoilTEX x es la aproximación de la raíz 17 Métodos numéricos Tema: Sistemas Lineales 2. El método de Bisección Ejemplo Determinar la raíz de la función f denida por f (x) := x2 − 2 con una tolerancia τ = 0.01, empezando con el intervalo [0, 2]. Typeset by FoilTEX 18 Métodos numéricos 2. El método de Bisección Tema: Sistemas Lineales Solución Paso 1: f (0) = −2, f (2) = 2, es decir tenemos signos opuestos. ` ´ kmax = (int) log2 b−a = (int) (log2 200) = 7. τ Se necesitan 7 iteraciones Paso 2: Iteración it. a b x f (a) f (b) f (x) err. 0 0 2 1 -2 2 -1 1 1 1 2 1.5 -1 2 0.25 2−1 2 1 1.5 1.25 -1 0,25 -0.4375 2−2 3 1.25 1.5 1.375 -0.4375 0.25 -0.109375 2−3 4 1.375 1.5 1.4375 -0.109375 0.25 0.06640625 2−4 5 1.375 1.4375 1.40625 -0.109375 0.06640625 -0.0224609375 2−5 6 1.40625 1.4375 1.421875 -0.0224609375 0.06640625 0.021728515625 2−6 7 1.40625 1.421875 1.4140625 -0.0224609375 0.021728515625 -0.00042724609375 2−7 Paso 3: Obtenemos la aproximación de la raíz x = 1,4140625 con una 1 =0.0078125). 7 2 √ En comparación: la solución exacta es 2 = 1,414213562... tolerancia τ = 0.01 (el error verdadero es ≤ Typeset by FoilTEX 19 Métodos numéricos Tema: Sistemas Lineales 2. El método de Bisección Observaciones generales 1. Si la función f es continua y cambia de signo en el intervalo [a, b], el método de bisección converge a una raíz (gura 4a). 2. Si la función f es continua y no cambia de signo en el intervalo [a, b], el método de bisección no funciona. Es decir, el método no es capaz de encontrar la raíz en la situación de la gura 4b. 3. Si la función f no es continua, el método encuentra un punto de discontinuidad donde la función cambia de signo (gura 4c). Un seguimiento de los valores de f (x) muestra si se trata de una raíz o una discontinuidad. 4. Si la función f es continua y cambia de signo en el intervalo [a, b], el método encuentra una raíz de la función. Si f tiene varias raíces, se es importante separarlas para poder controlar el procesos (gura 4d). Typeset by FoilTEX 20 Métodos numéricos Tema: Sistemas Lineales 2. El método de Bisección Comportamientos del método de bisección 0 2 a) Se cumplen los supuestos, el método c) El método de bisección encuentra la converge. discontinuidad 0 2 b) La función no cambia de signo, el método de d) Si hay varias raíces en el intervalo, el método bisección no funciona. de bisección encuentra una de ellas. Figura 4. El método de bisección en diferentes situaciones Typeset by FoilTEX 21 Métodos numéricos Tema: Sistemas Lineales Contenido 1. Generalidades 2. El método de Bisección 3. El método de Newton-Raphson 4. Sistemas de ecuaciones no lineales Typeset by FoilTEX 22 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Desarrollo de la fórmula de Newton - Raphson El método de Newton-Raphson es un proceso iterativo para encontrar una aproximación a la raíz de una función. Se basa en el teorema de desarrollo de Taylor: Si f es una función de C 2 (es decir, dos veces continuamente derivable), se puede desarrollar f en un punto x para obtener su valor en la raíz x∗: ∗ ∗ 0 ¡ ∗ 2 0 = f (x ) = f (x) + (x − x)f (x) + O (x − x) ¢ Ignorando el residuo se obtiene 0 = f (x∗) ≈ f (x) + (x∗ − x)f 0(x) Resolviendo la ecuación obtenemos x∗ ≈ x − Typeset by FoilTEX f (x) f 0(x) 23 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Aplicación iterativa de la fórmula de Newton - Raphson Método de Newton - Raphson: Se comienza tomando un valor inicial x0 de prueba que se supone está sucientemente cerca de la raíz x∗. Se itera usando la fórmula xk+1 = xk − Typeset by FoilTEX f (xk ) . 0 f (xk ) 24 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Interpretación gráca La primera iteración consiste en tomar como aproximación el punto x1 de corte de la recta tangente a la gráca de la función f (x) en el punto x1. La ecuación de esta recta es y = f (x0) + (x − x0)f 0(x0). Por tanto la intersección de la recta con el eje de abscisas es x1 = x0 − f (x0 ) f 0 (x0 ) . Reiterando este proceso sucesivamente se obtiene la sucesión de valores xk . 12.5 10 7.5 5 2.5 0 x0=3 Figura 5. El método x1=1.8333 de Newton-Raphson -2.5 fHxL para la función-5f (x) = x2gHxL − 2, usando el punto inicial x0 = 3. Typeset by FoilTEX 25 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Condiciones de parada para el método de Newton Se usan 3 diferentes condiciones de parada: 1. En términos del error aproximativo relativo: la tolerancia deseada. |xk+1 − xk | ≤ τx, donde τx es |xk+1| 2. En términos del valor de la función en la aproximación: |f (xk )| ≤ τf , donde τf signica la desviación máxima de 0. 3. En términos del número de iteraciones: esta condición que garantiza que el algoritmo para, aun que no converge. En resumen, para actuar con cautela el consejo es parar las iteraciones cuando los dos tests se cumplen o cuando se han realizado el número de iteraciones. Typeset by FoilTEX 26 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Algoritmo NEWTON - RAPHSON Entrada: la función f y su derivada f 0 ; las tolerancia τx , τf ; el número máximo de iteraciones kmax ; una aproximación inicial x0 de la raíz. Salida solución aproximada; condición de parada activa Paso 1 k ← 1; x1 ← x0 − f (x0 ) f 0 (x0 ) inicialización; se manejan las variables x1 : aproximación actual x0 : aproximación anterior Paso 2 mientras „ |x1 − x0 | > τx |x1 | « si no se cumple la condición de parada ∨ |f (x1 )| > τf ∧ k < kmax x0 ← x1 ; x1 ← x0 − „ Paso 3 si f (x0 ) ; f 0 (x0 ) k ← k + 1; determinar nueva aproximación (n mientras) |x1 − x0 | ≤ τx ∧ |f (x1 )| ≤ τf |x1 | « devuelva parada por tolerancia mensaje de acuerdo a la condición de parada si no devuelva parada por número de iteraciones devuelva x1 . Typeset by FoilTEX x1 es aproximación de la raíz 27 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Ejemplo Aplicar el método de Newton - Raphson a la función f (x) = x2 − 2, iniciando en el punto x0 = 1, usando las tolerancias τx = 10−5, τf = 10−5 y un número máximo de 50 iteraciones. Solución f (x0 ) f 0 (x0 ) |x1 − x0| |x1| it. x0 f (x0) f (x0) 1 1 -1 2 1.5 0.33333333 2 1.5 0.25 3 1.41666667 0.29411765 3 1.41666667 0.00694445 2.83333334 1.41421569 0.00173310 4 1.41421569 0.00000602 2.82843138 1.41421356 0.00000151 0 x1 = x0 − Después de 4 iteraciones se alcanza una aproximación con las tolerancias deseadas. La aproximación de la raíz ya coincide en los 8 primeros decimales con el valor verdadero. ♦ Typeset by FoilTEX 28 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Análisis del error y convergencia Deniendo el error en la k -ésima iteración como ²k := xk − x∗ y suponiendo que f ∈ C 2 con f 0(r) 6= 0 se tiene por el desarrollo de Taylor 1 0 = f (x∗) = f (xk − ²k ) = f (xk ) − ²k f 0(xk ) + ²2k f 00(ξk ) con ξk entre xk y 2 ∗ x ; es decir 1 2 00 0 ²k f (xk ) − f (xk ) = ²k f (ξk ) 2 De ahí se obtiene para el error de la iteración k + 1: f (xk ) ²k f 0(xk ) − f (xk ) ²2k f 00(ξk f (xk ) ∗ − x = ²k − 0 = = ²k+1 = xk+1 − r = xk − 0 0 f (xk ) f (xk ) f (xk ) 2f 0(xk ) ²2k f 00(ξk ) ²2k f 00(r) 2 es decir: ²k+1 = ≈ = C² k. 0 0 ∗ 2f (xk ) 2f (x ) Esto signica que el error en la iteración k + 1 es proporcional al cuadrado de error en la iteración k. Por eso se habla de convergencia cuadrática. Este hecho permite derivar el siguiente teorema: Typeset by FoilTEX 29 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Teorema (convergencia en una vecindad de la raíz) Sea f ∈ C 2 y x∗ una raíz simple de f (es decir, f 0(x∗) 6= 0). Entonces el método de Newton-Raphson converge para todos los puntos en una vecindad de la raíz. El teorema es de poca aplicabilidad práctica, porque garantiza convergencia en una vecindad, pero no la especica. La gura 6 muestra una situación, donde el método de Newton no converge, ya que se selecciona el punto inicial x0 NO sucientemente cercano a la raíz. El siguiente teorema garantiza la convergencia si se cumplen ciertas hipótesis sobre la función f . fHxL g2HxL g1HxL Figura 6. El método de Newton-Raphson diverge, ya que el punto inicial x0 x0 x1 x2 no se encuentra sucientemente cercano a la raíz. Typeset by FoilTEX 30 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Supuestos La convergencia del método de Newton se asegura mediante los siguientes supuestos sobre la función f : [a, b] 7→ R. f ∈ C 2[a, b], es decir las funciones derivadas de f hasta el orden 2 son continuas. f (a)f (b) < 0. f 0 tiene signo constante en [a, b]. f 00 tiene signo constante en [a, b]. Teorema (Convergencia del método de Newton-Raphson) Si la función f : [a, b] 7→ R verica los supuestos anteriores y tomamos x0 el extremo del intervalo [a, b] tal que, signof (x0) = signof 00 entonces el método de Newton converge al menos cuadráticamente a la única raíz de f (x) en [a, b]. Typeset by FoilTEX 31 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Ventajas y desventajas del método de Newton-Raphson Resumiendo se puede decir: Si el método de Newton converge, la convergencia es generalmente rápido (cuadrático). Pero se puede obtener divergencia, si el punto inicial no está seleccionado apropiadamente. Typeset by FoilTEX 32 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales El método de la secante Si no se dispone de la derivada de la función f , o si la derivada es difícil de evaluar, se puede utilizar una aproximación numérica de la derivada: f (xk ) − f (xk−1) f (xk ) ≈ xk − xk−1 0 Remplazando la derivada en la fórmula de Newton-Raphson por esta aproximación, se obtiene el método de la secante: xk+1 = xk − f (xk ) xk − xk−1 . f (xk ) − f (xk−1) Obviamente se requiere denir dos puntos iniciales x0 y x1. Typeset by FoilTEX 33 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Interpretación gráca La interpretación gráca de este método ilustra la gura 7. Dadas las aproximaciones xk y xk−1 de la raíz, obtenidas en los dos últimas iteraciones se construye la recta que coincide con f en estos puntos. La nueva aproximación es la raíz de esta recta. f x0=0 x2 x3 x4 x1=3 Figura 7. El método de la secante para la función f (x) = x2 − 2. Los puntos iniciales son x0 = 0 y x1 = 3. Typeset by FoilTEX 34 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Ejemplo Aplicar el método de la secante a la función f (x) = x2 − 2, iniciando con x0 = 0 y x1 = 3. Solución −x0 3−0 3 x2 = x1 − f (x1) f (xx11)−f (x) = 3 − f (3) f (3)−f (0) = 3 − 7 7−(−2)) = x3 = x2 − −x1 f (x2) f (xx22)−f (x1 ) =2− 2 2 3 −3 f ( 3 ) f ( 2 )−f (03) 3 2 3 = 1,0909. La sucesión (xk ) de aproximaciones de la raíz que se obtiene es: 0, 3, 0.6667, 1.0909, 1.5517, 1.3974, 1.1434, 1.4142.... Se observa, que el método de la secante se comporta muy parecido al método de Newton-Raphson: converge muy rápido. Typeset by FoilTEX 35 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson La situación con raíces múltiples La situación con raíces múltiples requiere atención especial. Si la función f tiene una raíz x∗ con multiplicidad par, f no cambia el signo en un entorno de x∗, es decir, el método de bisección no es aplicable (ver gura 4b). Si x∗ tiene multiplicidad m > 1,no se cumplen los supuestos del teorema de convergencia en una vecindad. No se puede garantizar convergencia cuadrática en una vecindad de la raíz, generalmente, el método de Newton-Raphson se vuelven lento. Esto se debe al hecho, que la derivada f 0 de f también tiene una raíz en x∗, es decir se aproxima la raíz, usando rectas con pendientes siempre más pequeños. Por la misma razón, el método de la secantes es lento para m > 1: las pendientes de las secantes que usa el método, convergen a 0. Typeset by FoilTEX 36 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Ejemplo La función f (x) := (x − 1)3(x − 3) tiene raíz triple en x = 1. Aplicar el método de Newton-Raphson iniciando en el punto x0 = 0. Solución Aplicando el método de Newton-Raphson se obtiene las siguientes aproximaciones de la raíz: 0, 0.3, 0.5148, 0.6666, 0.7727, 0.8460, 0.8961, 0.9302, 0.9532, 0.9687, 0.9791, 0.9860, 0.9907, 0.9938, 0.9958, 0.9972, 0.9982, 0.9988, 0.9992, 0.9995, 0.9996, ... Se observa que la convergencia es muy lenta. Typeset by FoilTEX 37 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Modicaciones del método de Newton-Raphson para la búsqueda de raíces múltiples Variante 1. Si se conoce la multiplicidad m de la raíz se puede aplicar la fórmula modicada: xk+1 Typeset by FoilTEX f (xk ) = xk − m 0 . f (xk ) 38 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Modicaciones del método de Newton-Raphson para la búsqueda de raíces múltiples (continuación) Variante 2. f (x) tiene las mismas raíces que f , 0 f (x) se aplica el método de Newton-Raphson a u para obtener las raíces de f . Observando que la función u(x) := Aplicando la regla del cociente se obtiene: d 0 u (x) = dx „ f (x) f 0(x) « f 0(x)f 0(x) − f (x)f 00(x) = (f 0(x))2 u(x) f (x)f 0(x) ⇒ 0 = u (x) (f 0(x))2 − f (x)f 00(x) y se obtiene la fórmula modicada xk+1 = xk − Typeset by FoilTEX f (x)f 0(x) 2 (f 0(x)) − f (x)f 00(x) . 39 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Ejemplo Aplicar los métodos modicados para raíces múltiples a la función f (x) := (x − 1)3(x − 3) iniciando en el punto x0 = 0. Typeset by FoilTEX 40 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Solución Las derivadas de f son: f 0(x) := 2(x − 1)2(2x − 5) f 00(x) := 12(2 − 3x + x2) Typeset by FoilTEX 41 Métodos numéricos Tema: Sistemas Lineales 3. El método de Newton-Raphson Solución: Variante 1 La raíz x∗ = 1 tiene multiplicidad m = 3, por eso se aplica la fórmula xk+1 f (xk ) (xk − 1)3(xk − 3) = xk − 3 0 = xk − 3 . 2 f (xk ) 2(x − 1) (2x − 5) Iniciando en x0 = 0 se obtiene f (x0) −9 (0 − 1)3(0 − 3) x1 = x0 − 3 0 = = 0,9. =0−3 2 f (x0) 2(0 − 1) (2 0 − 5) −10 (0,9 − 1)3(0,9 − 3) f (x1) = 0,9 − 3 = 0,9984 x2 = x1 − 3 0 f (x1) 2(0,9 − 1)2(2 0,9 − 5) f (x2) (0,9984 − 1)3(0,9984 − 3) x3 = x2 − 3 0 = 0,9984 − 3 = 1. f (x2) 2(0,9984 − 1)2(2 0,984 − 5) Se observa que el método modicado converge muy rápido a la raíz múltiple. Typeset by FoilTEX 42 Métodos numéricos 3. El método de Newton-Raphson Tema: Sistemas Lineales Solución: Variante 2 Iniciando en x0 y aplicando la fórmula modicada xk+1 = xk − se obtiene x1 = x0 − = x0 − f (x)f 0(x) f (x0)f 0(x0) 2 (f 0(x0)) ((x0 − 2 (f 0(x)) − f (x)f 00(x) )f 00(x = − f (x0 0) (x0 − 1)3(x0 − 3)(x0 − 1)2(2x0 − 5) 1)2(2x 0 2 − 5)) − (x0 − 1)3(x 0 − 3)12(2 − 3x0 + x2 ) = 1,0714 y de manera análoga: x2 = 1,0009; x3 = 1. Otra vez se verica la convergencia rápida del método. Typeset by FoilTEX 43 Métodos numéricos Tema: Sistemas Lineales Contenido 1. Generalidades 2. El método de Bisección 3. El método de Newton-Raphson 4. Sistemas de ecuaciones no lineales Typeset by FoilTEX 44 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales El problema multidimensional Generalizando el caso undimensional, se busca la solución de un sistema de n ecuaciones en n variables: f1(x1, x2, . . . , xn) = 0 f2(x1, x2, . . . , xn) = 0 ... fn(x1, x2, . . . , xn) = 0 En forma compacta se puede escribir el sistema como − → F [X] = 0 − → donde X = [x1, x2, . . . , xn]; 0 es el vector de n componentes iguales a 0 y f1(X) f2(X) n n . F la función de R → R denida por F (X) = ... fn(X) Typeset by FoilTEX 45 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales El problema multidimensional (continuación) Se debe encontrar la intersección de los conjuntos de las raíces de cada ecuación, un problema difícil en el caso no lineal ya que las ecuaciones no son relacionadas entre sí (gura 8). Generalmente ni siquiera se sabe, cuantas soluciones tiene el sistema. Si las funciones f1,f2, ..., fn son lineales, el problema es más sencillo: se busca la solución del sistema lineal a11x1 + a12x + . . . + a1nxn − b1 = 0 a21x1 + a21x + . . . + a2nxn − b2 = 0 ... an1x1 + an2x2 + . . . , +annx − bn = 0 problema que se resuelve con los métodos estándares de algebra matricial. Typeset by FoilTEX 46 Métodos numéricos Tema: Sistemas Lineales 4. Sistemas de ecuaciones no lineales Enfoque: Linealización del problema Dado que el problema de resolver sistemas de ecuaciones lineales es más fácil, los métodos númericos para sistemas no lineales se basan en la linealización del problema: Se aproxima el sistema no lineal por uno lineal, que se resuelve más facilmente. La solución del sistema lineal es una aproximación del sistema no lineal. 1 La linealización hace uso de la generalización del teorema de Taylor para el caso multidimensional. Como en el cso de una dimension, el desarrollo de Taylor de orden 1 aproxima la función por una función lineal. 1 en lo que sigue se discute el caso dos dimensional, la generalización a más dimensiones es obvia. Typeset by FoilTEX 47 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales Ejemplo Resolver el sistema: c − (x1 − 2)2 + (x2 − 2)2 = 0 x1 sen(x1 x2) + c = 0 (c es un número real) x2 + 1 Las funciones correspondientes son: f1(x1, x2) = c − (x1 − 2)2 + (x2 − 2)2 x1 f2(x1, x2) = sen(x1 x2) + c x2 + 1 y el sistema correspondiente se escribe como · F (X) = f1(X) f2(X) Typeset by FoilTEX " ¸ = 2 2 c − (x1 − 2) + (x2 − 2) f1(X) x1 sen(x1 x2) + c x2 + 1 # − → = 0 48 Métodos numéricos Tema: Sistemas Lineales Ejemplo 4. Sistemas de ecuaciones no lineales (continuación) En la gura siguiente (gura 8) se hace evidente la dicultad de un procedimiento analítico para la solución del problema. Se muestran las 2 funciones y sus lineas de nivel. Las soluciones del sistema corresponden a las intersecciones de las lineas de nivel 0 de llas dos funciones. Se observa como se varian las soluciones para diferentes valores del parámetro c. No existe relación geométrica que se puede aprovecha en un algoritmo que localiza las raíces. Typeset by FoilTEX 49 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales f1(x1, x2) = c − (x1 − 2)2 + (x2 − 2)2 4 3 4 2 2 4 0 3 -2 -4 0 1 2 1 1 2 0 0 3 40 a) La gráca tridimensional de f1 1 2 3 4 b) Las líneas de nivel de la función f1 x1 f2(x1, x2) = sen(x1 x2 ) + c x2 + 1 4 3 3 2 1 0 -1 0 2 4 3 1 2 1 1 2 0 0 3 40 c) La gráca tridimensional de f2 . 1 2 3 4 d) Las líneas de nivel de la función f2 . Figura 8. Typeset by FoilTEX 50 Métodos numéricos Tema: Sistemas Lineales 4. Sistemas de ecuaciones no lineales Teorema (desarrollo de Taylor) Si F : Rn → Rnes dos veces continuamente diferenciable, X ∈Rn, entonces: F (X0 + H) = F (X0) + OF |X0 · H + R1 donde para el residuo R1 se tiene: R1 = O(kHk 2). · ¸ h1 Aquí H = es el paso: h1 para la variable x1 h · ¸ 2 a a es el gradiente. , ax1 ax2 af1 af1 · ¸ ax ax2 f1 1 Dado que F = , se obtiene OF = f2 af2 af2 ax1 ax2 de F . Typeset by FoilTEX y h2 para x2.; O = la matriz jacobiana 51 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales Desarrollo del método de Newton-Raphson para sistemas de ecuaciones El método de Newton se puede generalizar al caso de sistemas de ecuaciones no lineales, basado en el teorema de Taylor para el caso multidimensional: − → Sea X = X0 + H una raíz de F , entonces F (X ) = F (X0 + H) = 0 , y ∗ ∗ con el teorema de Taylor se obtiene: − → 0 = F (X) ≈ F (X0) + J |X0 · H Observese que la ecuación anterior es un sistema lineal de ecuaciones para determinar el vector desconicido H,es decir, linealizamos el problema original. Si la jacobiana J |X0 no es singular, se puede resolver este sisterma, multiplicando la −1 anterior ecuación con su inversa (J |X0 ) , y se obtiene: − → −1 −1 0 ≈ (J |X0 ) F (X0) + H ⇒ H ≈ − (J |X0 ) F (X0) . y la nueva aproximación de la raíz X ∗es X1 = X0 + H. Typeset by FoilTEX 52 Métodos numéricos Tema: Sistemas Lineales 4. Sistemas de ecuaciones no lineales Método de Newton-Raphson en varias dimensiones Inicia con una aproximación de la raíz X0 En cada iteración: Xk+1 = Xk + H. ¡ ¯ ¢−1 F (Xk ) donde H = − J ¯Xk Typeset by FoilTEX 53 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales Ejemplo Aplicar el método de Newton-Raphson para resolver el sistema x1 + 4x22 + 4x2 = −1 x21 + 2x22 + x1 − x2 = 0 · iniciando en el punto X0 = Typeset by FoilTEX −0,5 0,5 ¸ . 54 Métodos numéricos Tema: Sistemas Lineales Solución 4. Sistemas de ecuaciones no lineales 2 f1(x1, x2) x1 + 4x2 + 4x2 + 1 F (X) = = . f2(x1, x2) x21 + 2x22 + x1 − x2 Las derivadas parciales de f1y f2 respecto a x1 y x2 son: a a f1(x1, x2) = 1; f1(x1, x2) = 8x2 + 4 ax1 ax2 a a f2(x1, x2) = 2x1 + 1; f2(x1, x2) = 4x2 − 1 ax1 ax2 1 8x2 + 4 la matriz jacobiana por ende es: J |X = 2x1 + 1 4x2 − 1 Typeset by FoilTEX 55 Métodos numéricos » Empezando en X0 = Solución – −0,5 0,5 (continuación) obtenemos: Primera iteración: » 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales – » – ` ˛ ´−1 8 1 −8 F (X0) = ; J X0 = ⇒ J ˛ Xk = ; 1 0 1 » – » – ` ˛ ´−1 −5,5 −6 ⇒ H = − J ˛ Xk F = =⇒ X1 = X0 + H = . 0,25 0,75 3,5 −0,25 – Segunda iteración: » F (X1) = » 0,25 30,375 – ; JX 1 = » » 1 0 1 −11 10 2 – – 0,01780571 −0,0892857 1 0,0982143 0,00892857 » – » – 2,70759 −3,29241 ⇒H = ⇒ X2 = X1 + H = . −0,295759 0,454241 −1 ⇒ JX = Typeset by FoilTEX 56 Métodos numéricos 4. Sistemas de ecuaciones no lineales Tema: Sistemas Lineales Solución (continuación) De manera análoga se procede en las iteraciones siguientes, obteniendo · · ¸ · ¸ −1,36419 −1,09826 ; X5 = ; 0,0997861 0,0287798 · ¸ · ¸ · ¸ −1,01216 −1,00024 −1 X6 = ; X7 = ; X8 = , 0,00365759 0,0000730198 0 X3 = −1,98026 0,236523 ¸ ; X4 = lo que es una solución exacta del sistema. Typeset by FoilTEX 57 Métodos numéricos Tema: Sistemas Lineales 4. Sistemas de ecuaciones no lineales Condiciones de parada Las condiciones de parada equivalen a aquellas desarrolladas para el caso de una dimensión, reemplazando el valor absoluto por una norma vectorial: 1. En términos del error aproximativo relativo: la tolerancia deseada. kXk+1 − Xk k < τx, donde τx es kXk+1k 2. En términos del valor de la función en la aproximación: kf (Xk )k < τf , donde τf signica la desviación máxima de 0. 3. El número de iteraciones. Typeset by FoilTEX 58 Métodos numéricos Tema: Sistemas Lineales 4. Sistemas de ecuaciones no lineales Algoritmo de NEWTON para sistemas de ecuaciones Entrada: la función multidimensional F ; la matriz jacobiana de F ; las tolerancias τx , τf ; el número máximo de iteraciones kmax . una aproximación inicial X0 de la raíz. Salida: solución aproximada; condición de parada activa Paso 1 −1 k ← 1; H = −JX F (X0); Paso 2 Paso 3 0 X1 ← X0 + H ; „ « kX1 − X0k > τx ∨ kF (X1)k > τf ∧ ( k < kmax) mientras kX1k X0 ← X1 ; −1 H ← −JX0 F (X0); X1 ← X0 + H ; k ←k+1 „ « kX1 − X0k si ≤ τx y kF (X1)k ≤ τf devuelva parada por tolerancia kX1k si no devuelva parada por número de iteraciones devuelva X1 . Typeset by FoilTEX 59