¿Qué es el método de bisección?
El método de bisección es una de las técnicas más antiguas y fiables para encontrar una raíz de una función continua \(f(x)\): un valor de \(x\) en el que \(f(x) = 0\). Parte de un intervalo \([a, b]\) en el que la función cambia de signo y, a continuación, lo divide repetidamente por la mitad conservando la mitad que sigue conteniendo la raíz. Como el cambio de signo se mantiene en cada paso, el método tiene la convergencia garantizada siempre que \(f\) sea continua y \(f(a)\) y \(f(b)\) tengan signos opuestos. Esta calculadora funciona con cualquier función real adimensional y emplea radianes en las funciones trigonométricas.
Cómo usar esta calculadora
Escribe tu función en el campo f(x) usando \(x\) como variable (por ejemplo x-cos(x), x^2-2 o exp(x)-3). Define el extremo inferior a y el extremo superior b de modo que la raíz quede entre ambos: el producto \(f(a)\cdot f(b)\) debe ser menor o igual que cero. Elige un número máximo de iteraciones n y cuántos dígitos quieres mostrar. La herramienta devuelve la raíz aproximada, el valor de la función en ese punto (que debería estar cerca de cero) y cuántas iteraciones se necesitaron realmente.
La fórmula
En cada paso la estimación es el punto medio \(x_n = (a_n + b_n) / 2\). $$c = \frac{\text{a} + \text{b}}{2} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} &\text{if } f(a)\cdot f(c) < 0 \Rightarrow b \leftarrow c \\ &\text{else} \Rightarrow a \leftarrow c \\ &\text{repeat up to } n \text{ times} \end{aligned} \right.$$ Si \(|f(x_n)|\) está por debajo de la tolerancia, se acepta \(x_n\). En caso contrario, el algoritmo conserva la mitad que aún presenta cambio de signo: si \(f(a_n)\cdot f(x_n) > 0\), la raíz está a la derecha (se hace \(a = x_n\)); de lo contrario está a la izquierda (se hace \(b = x_n\)). El ancho del intervalo se reduce según \((b-a)/2^n\), por lo que la convergencia es lineal: aproximadamente un dígito binario correcto más por cada paso.
Ejemplo resuelto
Para \(f(x) = x - \cos(x)\) en \([-10, 10]\): \(f(-10) \approx -10{,}84\) (negativo) y \(f(10) \approx 10{,}84\) (positivo), de modo que la raíz queda acotada. Dividiendo repetidamente por la mitad se converge a \(x \approx 0{,}7390851332151607\), el célebre número de Dottie, donde \(x = \cos x\), con \(f(x)\) prácticamente igual a cero.
Cómo hacer el método de bisección a mano
El método de bisección encuentra una raíz de \(f(x)=0\) dividiendo repetidamente un intervalo que se sabe contiene una raíz. Se basa en el Teorema del Valor Intermedio: si \(f\) es continua en \([a,b]\) y \(f(a)\) y \(f(b)\) tienen signos opuestos, una raíz debe estar entre ellos.
- Verificar el intervalo. Confirmar que \(f(a)\cdot f(b)<0\). Si el producto es positivo, el intervalo no tiene garantía de contener una raíz — elegir un \([a,b]\) diferente.
- Calcular el punto medio. \(m=\dfrac{a+b}{2}\).
- Evaluar la función. Encontrar \(f(m)\). Si \(f(m)=0\) (o está dentro de la tolerancia), \(m\) es la raíz y se detiene.
- Reemplazar un extremo por el signo. Si \(f(a)\cdot f(m)<0\), la raíz está en \([a,m]\), así que establezca \(b\leftarrow m\). De lo contrario la raíz está en \([m,b]\), así que establezca \(a\leftarrow m\).
- Repetir pasos 2–4 hasta que \(|b-a|<\text{tol}\) o \(|f(m)|<\text{tol}\), o hasta alcanzar el contador máximo de iteraciones.
Ejemplo: \(f(x)=x^{3}-x-2\) en \([1,2]\). Verificar: \(f(1)=-2\), \(f(2)=4\), producto \(<0\) — el intervalo es válido.
| Iter | a | b | m=(a+b)/2 | f(m) | Nuevo intervalo |
|---|---|---|---|---|---|
| 1 | 1.0000 | 2.0000 | 1.5000 | −0.125 | [1.5, 2] |
| 2 | 1.5000 | 2.0000 | 1.7500 | 1.6094 | [1.5, 1.75] |
| 3 | 1.5000 | 1.7500 | 1.6250 | 0.6660 | [1.5, 1.625] |
| 4 | 1.5000 | 1.6250 | 1.5625 | 0.2522 | [1.5, 1.5625] |
| 5 | 1.5000 | 1.5625 | 1.5313 | 0.0591 | [1.5, 1.5313] |
| 6 | 1.5000 | 1.5313 | 1.5156 | −0.0340 | [1.5156, 1.5313] |
Después de más iteraciones el intervalo se cierra en la raíz verdadera 1.521380, que también es la única raíz real de la cúbica \(x^{3}-x-2=0\) encontrada por un solucionador directo 1.521380.
Iteraciones frente a tolerancia y ancho del intervalo
Cada paso de bisección divide el intervalo por la mitad, así que después de \(n\) iteraciones el ancho del intervalo es \((b-a)/2^{\,n}\). Para alcanzar una tolerancia \(\text{tol}\) en la ubicación de la raíz necesita aproximadamente
$$n \approx \log_2\!\left(\frac{b-a}{\text{tol}}\right).$$El conteo crece solo con el logaritmo de la precisión, así que incluso tolerancias muy estrictas requieren relativamente pocos pasos. La tabla muestra el contador de iteraciones redondeado hacia arriba para varias combinaciones.
| Ancho inicial \(b-a\) | Tolerancia objetivo | \(\log_2((b-a)/\text{tol})\) | Iteraciones necesarias |
|---|---|---|---|
| 1 | \(10^{-3}\) | 9.97 | 10 |
| 1 | \(10^{-6}\) | 19.93 | 20 |
| 1 | \(10^{-10}\) | 33.22 | 34 |
| 10 | \(10^{-6}\) | 23.25 | 24 |
| 20 | \(10^{-6}\) | 24.25 | 25 |
| 100 | \(10^{-8}\) | 33.22 | 34 |
| 0.5 | \(10^{-12}\) | 38.86 | 39 |
Por ejemplo, un intervalo de ancho 20 refinado a \(10^{-6}\) necesita \(\lceil\log_2(20/10^{-6})\rceil=\lceil 24.25\rceil=\) 25 iteraciones, y un intervalo de ancho 1 a \(10^{-10}\) necesita \(\lceil 33.22\rceil=\) 34. Dividir por la mitad el ancho inicial ahorra exactamente una iteración; elevar al cuadrado la precisión (un decimal adicional) cuesta aproximadamente 3.3 iteraciones.
Términos clave
- Raíz. Un valor \(x^{*}\) donde la función es cero, \(f(x^{*})=0\); también llamada cero o solución de la ecuación.
- Intervalo / intervalo \([a,b]\). Un par de extremos que se cree encierran una raíz. Para bisección debe satisfacer la condición de cambio de signo.
- Cambio de signo. La condición \(f(a)\cdot f(b)<0\), lo que significa que \(f\) toma signos opuestos en los extremos. Para una \(f\) continua esto garantiza al menos una raíz entre ellos (Teorema del Valor Intermedio).
- Punto medio. El centro del intervalo actual, \(m=(a+b)/2\); cada paso prueba este punto y descarta la mitad que no puede contener la raíz.
- Tolerancia. El objetivo de precisión que detiene la iteración, aplicado ya sea al ancho del intervalo \(|b-a|\) o al residuo \(|f(m)|\).
- Convergencia (lineal). La bisección converge linealmente: el error se reduce aproximadamente a la mitad en cada paso (error \(\le (b-a)/2^{n}\)), dando progreso constante pero no acelerado — aproximadamente un dígito binario correcto adicional por iteración.
- Iteración. Un ciclo completo de calcular el punto medio, evaluar la función y actualizar un extremo. El contador de iteraciones está limitado por la configuración de iteraciones máximas.
Preguntas frecuentes
¿Por qué me aparece el error «sin cambio de signo»? La bisección necesita que \(f(a)\) y \(f(b)\) tengan signos opuestos. Ajusta \(a\) y \(b\) hasta que encierren la raíz.
¿Puede encontrar más de una raíz? No: devuelve una única raíz dentro del intervalo y no puede detectar raíces en las que la curva solo toca el eje sin cruzarlo.
¿Por qué es más lento que el método de Newton? La bisección converge linealmente, ganando alrededor de un dígito binario por paso, mientras que el método de Newton converge de forma cuadrática. La bisección se usa a menudo para obtener un punto de partida seguro que luego refinan métodos más rápidos.