Método de bisección: qué es, algoritmo y ejemplo

¿Qué es el método de bisección?

El método de bisección es una de las soluciones numéricas básicas para hallar la raíz de una ecuación polinómica. Encierra entre paréntesis el intervalo en el que se encuentra la raíz de la ecuación y lo subdivide en mitades en cada iteración hasta encontrar la raíz. Por ello, el método de bisección también se denomina método de entre paréntesis.

Sin embargo, como el mecanismo de trabajo es similar al algoritmo de búsqueda binaria, el método de bisección también se conoce como método de búsqueda binaria, método de reducción a la mitad o método de dicotomía. Se basa principalmente en el teorema del valor intermedio.

Encontrar raíces de ecuaciones

En este ejemplo, solo consideramos ecuaciones con una variable independiente. Puede ser lineal o no lineal. Las ecuaciones lineales se utilizan para representar la gráfica de una línea recta, mientras que las ecuaciones no lineales se utilizan para representar curvas.

La raíz de una ecuación significa el valor de la variable independiente que satisface la ecuación. Por ejemplo: la raíz de una ecuación f(x)= 4-x2 = 0 es 2 porque f(2) = 4-22 = 0.

Consideremos f(x) como una función continua real. Según el teorema del valor intermedio, la ecuación f(x)=0 tiene al menos una raíz entre a y b si f(a)f(b) < 0. La función f(x) tiene una raíz, "c", entre A y B.

Encontrar raíces de ecuaciones

Representación gráfica del método de bisección

El siguiente gráfico representa el mecanismo de funcionamiento del método de bisección. En el gráfico podemos ver que la raíz de la ecuación está marcada en rojo.

Para empezar:

  • Primero hicimos dos conjeturas iniciales, una1 y B1, para lo cual f(a1)pensión completa1) < 0. Según el teorema del valor intermedio, la raíz debe estar en [a1, b1].
  • Podemos encontrar el punto medio de un1 y B1, cual es b2. Por lo tanto, el intervalo inicial ahora se reduce a [a1, b2] porque f(a1)pensión completa2) <0.
  • De la misma manera se reduce el intervalo hasta encontrar la solución aproximada.

Representación gráfica del método de bisección

Algoritmo del método de bisección

Los pasos para aplicar el algoritmo del método de bisección para encontrar la raíz de la ecuación f(x)=0 son los siguientes

Paso 1) Elija las conjeturas iniciales a, b y la tasa de tolerancia e.

Paso 2) Si f(a)f(b) >=0, entonces la raíz no se encuentra en este intervalo. Por tanto, no habrá solución.

Paso 3) Encuentra el punto medio, c = (a+b)/2

(i) Si el valor de la función del punto medio f(c) = 0, entonces c es la raíz. Vaya al paso 5.
(ii) Si f(a)f(c) < 0, la raíz se encuentra entre a y c. Luego establezca a = a, b = c.
(iii) De lo contrario, establezca a = c, b = b.

Paso 4) Si el error absoluto es mayor que la tasa de tolerancia o (b-a) > e, vaya al paso 3.

Paso 5) Muestre c como la raíz aproximada.

Veamos un ejemplo del algoritmo del método de bisección.
Tenemos que encontrar la raíz de la siguiente función continua usando la fórmula del método de bisección.

f (x) = x3 - X2 + 2

Ejemplo del método de bisección

Paso 1) Asumamos,

         a = -10,
         b = 10, y
         e = 1% o 0.01

Paso 2) Ahora comprobaremos si f(a)f(b) >= 0 o no.

         f(a) = f(-10) = (-10)3 – (-10)2 + 2 = -1098
         f(b) = f(10) = (10)3 – (10)2 + 2 = 902
         f(a)f(b) = f(-10)f(10) = (-1098)(902) < 0

Por tanto, la raíz de la función anterior se encuentra en este intervalo [-10, 10].

Paso 3) Entonces se calculará primero el punto medio c.

Ejemplo del método de bisección

Ahora es necesario comprobar las siguientes condiciones:

(i) si f(c) = 0:
         f(c) = f(0) = (0)3 – (0)2 + 2 = 2 ≠ 0

(ii) si f(a)f(c) < 0:
         f(c)f(a) = 2*(-1098) < 0

La condición se cumple. Para la próxima iteración, los valores serán,

         una = una = -10
         segundo = c = 0

Paso 4) Como (b-a) = (0-(-10)) = 10>0.05, se repetirá el proceso. Las siguientes iteraciones se muestran en la tabla.

Iteración a b c licenciado en Letras f(c)
1 -10 0 0 10 2
2 -5 0 -5 5 -148
3 -2.5 0 -2.5 2.5 -19.875
4 -1.25 0 -1.25 1.25 -1.52562
5 -1.25 -0.625 -0.625 0.625 1.36523
6 -1.25 -0.9375 -0.9375 0.3125 0.297119
7 -1.09375 -0.9375 -1.09375 0.15625 -0.50473
8 -1.01562 -0.9375 -1.01562 0.078125 -0.0791054
9 -1.01562 -0.976562 -0.976562 0.0390625 0.115003
10 -1.01562 -0.996094 -0.996094 0.0195312 0.0194703
11 -1.00586 -0.996094 -1.00586 0.00976562 -0.0294344

Paso 5) En la undécima iteración, la condición del paso 11 será falsa. Por tanto, la raíz de esta ecuación es -4.

Diagrama lógico del método de bisección

Diagrama lógico del método de bisección

Pseudocódigo

Start
Set a, b, e
if f(a)*f(b) >=0 
	Output("Root does not exist in this interval")
	Stop
while (b-a)>e do   
	c ← (a + b)/2    
	if f(c) = 0
        	break    
	end if 
	if f(c)*f(a) < 0 then
      	b ← c    
	else        
		a ← c
end while
Output(c)
Stop

Ejemplo del método de bisección en C/C++

Entrada:

#include<bits/stdc++.h>
using namespace std;
#define Error 0.01
double value(double x)
{
	return x*x*x - x*x + 2;
}
void bisection_method(double a, double b)
{
	if (value(a) * value(b) >= 0)
	{
		cout << "The root does not lie in this interval\n";
		return;
	}
	double c = a;
	while ((b-a) >= Error)
	{
		c = (a+b)/2;
		if (value(c) == 0.0)
			break;
		else if (value(c)*value(a) < 0)
			b = c;
		else
			a = c;
	}
	cout << "The root is :" << c;
}
int main()
{
	double a =-10 , b = 10;
	bisection_method(a, b);
	return 0;
}

Salida:

The root is :-1.00586

Ejemplo del método de bisección en Python

Entrada:

def value(x):
	return x*x*x - x*x + 2
def bisection_method(a,b):
	if (value(a) * value(b) >= 0):
		return
	c = a
	while ((b-a) >= 0.01):
		c = (a+b)/2
		if (value(c) == 0.0):
			break
		if (value(c)*value(a) < 0):
			b = c
		else:
			a = c			
	print("The root is : ","%.4f"%c)	
a =-10
b = 10
bisection_method(a, b)

Salida:

The root is :  -1.0059

Ventajas y limitaciones del método de bisección

Estos son los pros y los contras del método de bisección:

Ventajas Contras
Método de búsqueda de raíces fácil y sencillo de implementar. La convergencia es lenta porque se basa simplemente en reducir el intervalo a la mitad.
Dado que encierra la raíz, siempre es convergente. Si una de las suposiciones iniciales está cerca de la raíz, llegar a la raíz requerirá más iteraciones.
La tasa de error se puede controlar aumentando o disminuyendo el número de iteraciones.