Resolución de Ecuaciones No Lineales Método de Muller
Ecuaciones No Lineales Las ecuaciones no lineales son de interés en física y matemáticas debido a que la mayoría de los problemas físicos son implícitamente no lineales en su naturaleza
Método de Muller El método de Muller es un método iterativo el cual necesita de tres puntos iniciales (p0,f(p0)), (p1,f(p1)), (p2,f(p2)). Luego se construye una parábola que pase por estos 3 puntos y se usa la formula de resolución de las ecuaciones de segundo grado para determinar el punto de corte de dicha función con el eje OX.
Un predecesor del método de Muller es el método de la secante, el cual obtiene raíces, estimando una proyección de una línea recta en el eje x, a través de dos valores de la función.
Desarrollo del método de Muller Nos dan la ecuación no lineal y los tres puntos: (p0,f(p0)), (p1,f(p1)), (p2,f(p2)). Se supone sin perdida de generalidad que p2 es la mejor aproximación a la raíz de dicha ecuación. Se considera la parábola que pasa por los tres puntos y luego se hace un cambio de variable: t = x – p2
Se utilizan las siguientes diferencias: h0 = p0 – p2 y h1 = p1 – p2 Consideremos el polinomio cuadrático en la variable t: y = a*t^2 + b*t + c
Cada punto inicial nos proporciona una ecuación para a, b y c las cuales son: En t = h0: a*h0^2 + b*h0 + c = f(p0) En t = h1: a*h1^2 + b*h1 + c = f(p1) En t = 0: a*0^2 + b*0 + c = f(p2) De la tercera ecuación se obtiene que: c = f(p2)
Sustituyendo este resultado en las otras dos ecuaciones se obtiene que: a*h0^2 + b*h0 = f(p0) – c a*h1^2 + b*h1 = f(p1) – c Tomando e0 = f(p0) – c y e1 = f(p1) – c resolvemos el sistema para encontrar a y b: a = (e0*h1 – e1*h0)/(h1*h0^2 – h0*h1^2) b = (e1*h0^2 – e0*h1^2)/(h1*h0^2 – h0*h1^2)
Luego las raíces t = z1, z2 de y = a*t^2 + b*t + c, se obtiene usando la formula : z = (-2*c)/(b + √(b^2 – 4*a*c)) Para asegurar la estabilidad del método hay que elegir la raíz z de menor valor absoluto, con esto si b>0, entonces usamos el signo positivo de la raíz cuadrada, mientras que si b<0 entonces usamos el signo negativo.
El nuevo punto p3 viene dado por: p3 = p2 + z Para actualizar los valores y efectuar a siguiente iteración se eligen los nuevos p0 y p1 como los dos puntos mas cercanos a p3 entre {p0, p1, p2}, es decir se reemplazo el mas lejano y p3 pasa a ser el nuevo p2.
Finalmente se evalúa en la función el punto p3 y se vuelve a realizar el mismo proceso para los nuevos puntos. Como aclaración de la utilización del método de Muller para hallar raíces reales de f(x) = 0, es posible que nos encontremos con aproximaciones complejas debido a que eventualmente puede darse que b^2 < 4*a*c, en estos casos las partes imaginarias serán de pequeña magnitud por lo cual se despreciara su valor, de manera que nuestro cálculos se hagan con números reales.
Ejemplo de utilización: f(x) = x^3 – 13*x – 12 Con p0 = 4.5, p2 = 5, p1 = 5.5 Solución: f(4.5) = 20.625; f(5) = 48; f(5.5) = 82.875 - Obtengamos h0 y h1: h0 = 4.5 – 5 = -0.5 y h1 = 5.5 – 5 = 0.5
- Tenemos que c = 48 - Continuando con el método tenemos que: e0 = f(p0) – c = 20.625 - 48 = -27.375 e1 = f(p1) – c = 82.875 - 48 = 34.875 - Obteniendo a y b: a = (-27.375*0.5 – 34.875*-0.5)/(0.5*(-0.5)^2 – -0.5*(0.5)^2) = (3.75)/(0.25) = 15 b = (34.875*(-0.5)^2 – -27.375*(0.5)^2)/ (0.5*(-0.5)^2 – -0.5*(0.5)^2) = (15.5625)/(0.25) = 62.25
- Finalmente utilizamos : (-2*48)/(62.25 + 31.5446) = -1.0235 Con lo que nos queda por hacer : p3 = 5 -1.0235 = 3.9765 Luego los nuevos puntos {p0 = 5.5, p1 = 5, p2 = 3.9765} se vuelve al punto uno para hacer una segunda iteración y así sucesivamente.