Universidad Politécnica de Madrid Ingeniería de Minas Programación Programación yy Métodos Métodos Numéricos Numéricos Resolución Resolución de de ecuaciones ecuaciones no no lineales: lineales: Método Método de de bipartición bipartición Carlos Conde Lázaro Arturo Hidalgo López Alfredo López Benito Departamento de Matemática Aplicada y Métodos Informáticos Marzo, 2007 21 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (1) (1) f(x) CONTINUA en [a, b] (Teorema de Bolzano) En [a, b] hay un número impar de raíces. f(a).f(b) < 0 Condiciones suficientes para que el método funcione con éxito Al menos hay una raíz b [ a ] Departamento de Matemática Aplicada y Métodos Informáticos 22 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (2) (2) * Cálculo de las raíces de: Primera iteración: Punto medio: a+b x1 = 2 a [ Evaluación de la función en el punto medio f(x1) xx11 a b ] Determinación del nuevo intervalo de búsqueda Si (f(x1).f(a)< 0) entonces: b Å x1. Si (f(x1).f(a) > 0) entonces: a Å x1. Departamento de Matemática Aplicada y Métodos Informáticos (En el dibujo) 23 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (3) (3) Segunda Iteración: Punto medio: a+b x2 = 2 b Evaluación de la función en el punto medio f(x2) a x2 a Determinación del nuevo intervalo de búsqueda Si (f(x2).f(a)< 0) entonces: b Å x2. Si (f(x2).f(a) > 0) entonces: a Å x2. (En el dibujo) Departamento de Matemática Aplicada y Métodos Informáticos 24 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (4) (4) x3 Tercera Iteración: Punto medio: a+b x3 = 2 b a Evaluación de la función en el punto medio f(x3) Determinación del nuevo intervalo de búsqueda Si (f(x3).f(a)< 0) entonces: b Å x3. xa2 b (En el dibujo) Si (f(x3).f(a) > 0) entonces: a Å x3. Departamento de Matemática Aplicada y Métodos Informáticos 25 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (5) (5) Dados dos puntos a y b (a < b) y la función f(x) continua en el intervalo [a, b] y tal que f(a).f(b) < 0 Para i = 1, 2, ...... a+b x← 2 Si (f(a).f(x) > 0) entonces: a Å x Si no: Si (f(a).f(x) < 0) entonces: b Å x Si no: x es raíz Fin condición. Fin condición. Fin bucle. Departamento de Matemática Aplicada y Métodos Informáticos 26 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (6) (6) COMENTARIOS: 1º Si f(x) no fuese continua en [a, b] no se garantiza el buen funcionamiento del método pues puede que no haya raíz. Departamento de Matemática Aplicada y Métodos Informáticos 27 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (7) (7) COMENTARIOS: 2º Si f(a).f(b) < 0 puede haber más de una raíz (pero al menos habrá una). Contándolas tantas veces como sea su multiplicidad habrá un número impar de raíces El método sólo encuentra una de ellas Para asegurar que el método converge hacia la ÚNICA raíz en [a,b] es necesario realizar más hipótesis sobre la función f(x). P.ej.: f(a).f(b) <0 f(x) continua en [a, b] y … f(x) estrictamente monótona en [a, b] Departamento de Matemática Aplicada y Métodos Informáticos 28 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (8) (8) COMENTARIOS: • Si f(a).f(b) > 0 el método no tiene garantizado su buen funcionamiento pues puede no existir raíz y, en todo caso, no contempla criterio de selección de intervalos de búsqueda Contándolas tantas veces como sea su multiplicidad habrá un número par de raíces Departamento de Matemática Aplicada y Métodos Informáticos 29 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (9) (9) ¿ Cuántas iteraciones deben realizarse para asegurar que la raíz buscada dista menos de ε de la solución exacta? Al comenzar el intervalo de búsqueda mide: L0 = (b – a) Tras la primera iteración el nuevo intervalo de búsqueda mide: L1 = ( ½ ). L0 = ( ½ ).(b - a) Tras la segunda iteración el nuevo intervalo de búsqueda mide: L2 = ( ½ ). L1 = (b - a) / 22 ....... Tras la n-ésima iteración el nuevo intervalo de búsqueda mide: Ln = ( ½ ). Ln-1 = (b - a) / 2n Departamento de Matemática Aplicada y Métodos Informáticos 30 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (10) (10) Si se toma como raíz aproximada tras n iteraciones el punto medio del intervalo de búsqueda (punto xn+1) la distancia a la raíz exacta x* será menor que ( ½ ). Ln Ln Luego: xn+1 ( ½).Ln x* b−a |x* - xn+1| < (½).Ln = (n+1) 2 ( ½).Ln Departamento de Matemática Aplicada y Métodos Informáticos 31 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición bipartición (11) (11) Una precisión mayor que ε se asegura realizando un número de iteraciones (n) tal que: |x* - xn+1| < b−a <ε (n +1) 2 2 (n+1) ⎛ (b − a) ⎞ (n + 1).ln(2) > ln ⎜ ⎟ ⎝ ε ⎠ (b − a) > ε ⎛ (b − a) ⎞ ln ⎜ ⎟ ε ⎠ −1 n> ⎝ ln(2) Departamento de Matemática Aplicada y Métodos Informáticos 32 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Algoritmo Algoritmo Dados: a, b, ε, f(x) ⎛ | a − b |⎞ INICIO ln ⎜ ⎟ ε ⎠ ⎝ Calcular: numit > −1 ln(2) PARA j DESDE 0 HASTA numit CON PASO 1 HACER: a+b 2º vmed = f(x ) 1º x = 2 SI (vmed.f(a) > 0) ENTONCES: a Å x 3º SI NO b Å x FIN CONDICIÓN FIN BUCLE Departamento de Matemática Aplicada y Métodos Informáticos 33 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo La presión de vapor del n-hexano (C6) y del n-octano (C8) se pueden relacionar con la temperatura absoluta mediante las expresiones: ( ) 0 C6 log P ( ) log PC08 2697.55 = 15.8737 − T − 48.784 3127.60 = 15.9798 − T − 63.633 P Æ mm Hg T Æ ºK Según dichas fórmulas, para 2 atmósferas (1520 mm Hg) la temperatura de ebullición del n-hexano es 364.39ºK y la del n-octano es de 425.07ºK. Se desea conocer la temperatura de ebullición a 2 atmósferas de una mezcla líquida conteniendo el 50% de moles de cada uno de los dos componentes Departamento de Matemática Aplicada y Métodos Informáticos 34 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo (2) (2) NOTACIÓN x1 Æ Fracción molar en la fase líquida de n-hexano = 0.5 x2 Æ Fracción molar en la fase líquida de n-octano = 0.5 y1 Æ Fracción molar en la fase vapor de n-exano y2 Æ Fracción molar en la fase vapor de n-octano RELACIONES y1 = PC06 P .x1 = PC06 2.P y2 = Ecuación a resolver: f(T ) = e PC08 P .x 2 = PC08 2.P 2697.55 ⎞ ⎛ ⎜ 15.8737 − ⎟ T − 48.784 ⎠ ⎝ 3040 y1 + y2 = 1 ⇔ + e 3127.60 ⎞ ⎛ ⎜ 15.9798 − ⎟ T − 63.633 ⎠ ⎝ 3040 Departamento de Matemática Aplicada y Métodos Informáticos PC06 2.P + PC08 2.P =1 −1= 0 35 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo (3) (3) f(T ) = e 2697.55 ⎞ ⎛ ⎜ 15.8737 − ⎟ T − 48.784 ⎠ ⎝ 3040 + e 3127.60 ⎞ ⎛ ⎜ 15.9798 − ⎟ T − 63.633 ⎠ ⎝ 3040 −1 TI = 364 ºK ≈ TC6 f(T) < 0 TF = 425 ºK ≈ TC8 f(T) > 0 TI + TF 364 + 425 T1 = = = 394.5 2 2 f(T1) = 0.277..> 0 TF Å T1 = 394.5 Departamento de Matemática Aplicada y Métodos Informáticos 36 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo (4) (4) f(T ) = e 2697.55 ⎞ ⎛ ⎜ 15.8737 − ⎟ T − 48.784 ⎠ ⎝ 3040 + e 3127.60 ⎞ ⎛ ⎜ 15.9798 − ⎟ T − 63.633 ⎠ ⎝ 3040 −1 364 394.5 TI + TF 364 + 394.5 T2 = = = 379.25 2 2 f(T2) = -0.123..< 0 TI Å T2 = 379.25 Departamento de Matemática Aplicada y Métodos Informáticos 37 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo (5) (5) f(T ) = e 2697.55 ⎞ ⎛ ⎜ 15.8737 − ⎟ T − 48.784 ⎠ ⎝ 3040 + e 3127.60 ⎞ ⎛ ⎜ 15.9798 − ⎟ T − 63.633 ⎠ ⎝ 3040 −1 394.5 379.25 TI + TF 379.25 + 394.5 T3 = = = 386.875 2 2 f(T3) = 0.06..> 0 TF Å T3 = 386.875 ........ Departamento de Matemática Aplicada y Métodos Informáticos 38 Universidad Politécnica de Madrid Ingeniería de Minas El El método método de de bipartición: bipartición: Ejemplo Ejemplo (6) (6) Para asegurar una precisión de 10-3 ºK se necesitarán: ⎛ 61 ⎞ log ⎜ −3 ⎟ ⎝ 10 ⎠ − 1 ≈ 14.89... Nºiteraciones > log(2) Deben realizarse al menos 15 iteraciones. Departamento de Matemática Aplicada y Métodos Informáticos 39 Universidad Politécnica de Madrid Ingeniería de Minas Departamento de Matemática Aplicada y Métodos Informáticos 40