Aller au contenu principal

Método de bisección


Método de bisección


En matemáticas, el método de bisección , también llamado dicotomía, es un algoritmo de búsqueda de raíces que trabaja dividiendo el intervalo a la mitad y seleccionando el subintervalo que tiene la raíz.

Introducción

Este es uno de los métodos más sencillos y de fácil intuición para resolver ecuaciones de una variable, también conocido como Método de Intervalo Medio.[1]​ Se basa en el teorema del valor intermedio (TVI), el cual establece que toda función continua f {\displaystyle f} en un intervalo cerrado [ a , b ] {\displaystyle [a,b]} toma todos los valores que se hallan entre f ( a ) {\displaystyle f(a)} y f ( b ) {\displaystyle f(b)} . Esto es que todo valor entre f ( a ) {\displaystyle f(a)} y f ( b ) {\displaystyle f(b)} es la imagen de al menos un valor en el intervalo [ a , b ] {\displaystyle [a,b]} . En caso de que f ( a ) {\displaystyle f(a)} y f ( b ) {\displaystyle f(b)} tengan signos opuestos, el valor cero sería un valor intermedio entre f ( a ) {\displaystyle f(a)} y f ( b ) {\displaystyle f(b)} , por lo que con certeza existe un p [ a , b ] {\displaystyle p\in [a,b]} que cumple f ( p ) = 0 {\displaystyle f(p)=0} . De esta forma, se asegura la existencia de al menos una solución de la ecuación f ( x ) = 0 {\displaystyle f(x)=0} .

El método consiste en lo siguiente:

  • Debe existir seguridad sobre la continuidad de la función f {\displaystyle f} en el intervalo [ a , b ] {\displaystyle [a,b]}
  • A continuación se verifica que f ( a ) f ( b ) < 0 {\displaystyle f(a)\cdot f(b)<0}
  • Se calcula el punto medio m {\displaystyle m} del intervalo [ a , b ] {\displaystyle [a,b]} y se evalúa f ( m ) {\displaystyle f(m)} si ese valor es igual a cero, ya hemos encontrado la raíz buscada
  • En caso de que no lo sea, verificamos si f ( m ) {\displaystyle f(m)} tiene signo opuesto con f ( a ) {\displaystyle f(a)} o con f ( b ) {\displaystyle f(b)}
  • Se redefine el intervalo [ a , b ] {\displaystyle [a,b]} como [ a , m ] {\displaystyle [a,m]} o [ m , b ] {\displaystyle [m,b]} según se haya determinado en cuál de estos intervalos ocurre un cambio de signo
  • Con este nuevo intervalo se continúa sucesivamente encerrando la solución en un intervalo cada vez más pequeño, hasta alcanzar la precisión deseada

En la siguiente figura se ilustra el procedimiento descrito.

El método de bisección es menos eficiente que el método de Newton, pero es mucho más seguro para garantizar la convergencia. Si f {\displaystyle f} es una función continua en el intervalo [ a , b ] {\displaystyle [a,b]} y f ( a ) f ( b ) < 0 {\displaystyle f(a)f(b)<0} , entonces este método converge a la raíz de f {\displaystyle f} . De hecho, una cota del error absoluto es:

| b a | 2 n {\displaystyle {\frac {\left|b-a\right|}{2^{n}}}}

en la n-ésima iteración. La bisección converge linealmente, por lo cual es un poco lento. Sin embargo, se garantiza la convergencia si f ( a ) {\displaystyle f(a)} y f ( b ) {\displaystyle f(b)} tienen distinto signo.

Si existieran más de una raíz en el intervalo entonces el método sigue siendo convergente pero no resulta tan fácil caracterizar hacia qué raíz converge el método.

Algoritmo

Para aplicar el método consideremos tres sucesiones a n r n b n {\displaystyle a_{n}\leq r_{n}\leq b_{n}\,} definidas por las siguientes relaciones:

r n = a n + b n 2 , a n + 1 = { a n si  f ( a n ) f ( r n ) < 0 r n si  f ( a n ) f ( r n ) > 0 , b n + 1 = { b n si  f ( b n ) f ( r n ) < 0 r n si  f ( b n ) f ( r n ) > 0 {\displaystyle r_{n}={\frac {a_{n}+b_{n}}{2}},\quad a_{n+1}={\begin{cases}a_{n}&{\mbox{si }}f(a_{n})\cdot f(r_{n})<0\\r_{n}&{\mbox{si }}f(a_{n})\cdot f(r_{n})>0\end{cases}},\quad b_{n+1}={\begin{cases}b_{n}&{\mbox{si }}f(b_{n})\cdot f(r_{n})<0\\r_{n}&{\mbox{si }}f(b_{n})\cdot f(r_{n})>0\end{cases}}}

Donde los valores iniciales vienen dados por:

a 0 := a , b 0 := b {\displaystyle a_{0}:=a,\quad b_{0}:=b}

Se puede probar que las tres sucesiones convergen al valor de la única raíz del intervalo:

lim n a n = lim n r n = lim n b n {\displaystyle \lim _{n\to \infty }a_{n}=\lim _{n\to \infty }r_{n}=\lim _{n\to \infty }b_{n}}

Implementación en Python

Demostración de la convergencia

Suponiendo que se cumplen las condiciones iniciales para la puesta en práctica del algoritmo, definimos r como una raíz dentro del intervalo [a, b]. El intervalo de búsqueda en el n-ésimo paso tiene longitud:

l n = b n a n 2 = | b a | 2 n {\displaystyle l_{n}={\frac {b_{n}-a_{n}}{2}}={\frac {\left|b-a\right|}{2^{n}}}}

Como r n {\displaystyle r_{n}} , que es la raíz n-ésima calculada, se encuentra siempre dentro del intervalo de búsqueda, tenemos entonces que:

| r r n | | b a | 2 n {\displaystyle \left|r-r_{n}\right|\leq {\frac {\left|b-a\right|}{2^{n}}}}

Tomando límites,

lim n | r r n | = 0 lim n r n = r {\displaystyle \lim _{n\to \infty }|r-r_{n}|=0\rightarrow \lim _{n\to \infty }r_{n}=r}

Queda demostrado entonces, que si se cumplen las condiciones iniciales del problema, el método de bisección converge al menos, a una de las raíces que se encuentran en el intervalo señalado.

Cota de error

El error cometido tras realizar n 1 {\displaystyle n\geq 1} iteraciones del método de bisección es[2]

ε := | r r n | b a 2 n + 1 {\displaystyle \varepsilon :=|r-r_{n}|\leq {\frac {b-a}{2^{n+1}}}}

Para lograr un error inferior a ε {\displaystyle \varepsilon } , el número de iteraciones n {\displaystyle n} a realizar debe ser

n = log 2 ( b a ε ) + 1 {\displaystyle n=\lceil \log _{2}\left({\frac {b-a}{\varepsilon }}\right)\rceil +1}

Collection James Bond 007

Bibliografía

  • Richard L Burden, J. Douglas Faires (2000), "Numerical Analysis, (7th Ed)", Brooks/Cole. ISBN 0-534-38216-9.
  • Corliss, George (1977), «Which root does the bisection algorithm find?», SIAM Review 19 (2): 325-327, ISSN 1095-7200, doi:10.1137/1019044 .

Referencias


Text submitted to CC-BY-SA license. Source: Método de bisección by Wikipedia (Historical)



INVESTIGATION