Método de Bisección



 -Fundamento Teórico- 

    1. 1. Teorema del Valor Intermedio:
      Si una función continua f(x) en un intervalo [a, b] tiene valores f(a) y f(b) de signos opuestos, entonces existe al menos una raíz c en el intervalo abierto (a, b) donde f(c) = 0. 
    2. 2. Bisección Iterativa:
      El método de bisección aplica este teorema de forma iterativa: 
      • Se calcula el punto medio c = (a + b) / 2 del intervalo.
      • Se evalúa f(c).
      • Si f(a) * f(c) < 0, la raíz está en el intervalo [a, c]. 
      • Si f(c) * f(b) < 0, la raíz está en el intervalo [c, b]. 
      • Se repite este proceso hasta que el intervalo [a, b] sea suficientemente pequeño o se alcance la precisión deseada. 
    3. 3. Convergencia:
      El método de bisección converge a la raíz, pero generalmente más lentamente que otros métodos como el de Newton-Raphson. Sin embargo, su convergencia está garantizada, siempre que la función sea continua y haya una raíz en el intervalo inicial. 
    4. 4. Robustez:
      El método de bisección es robusto, lo que significa que es relativamente estable y no es sensible a la elección del intervalo inicial. Esto lo hace útil en problemas donde la función es compleja o no se puede derivar fácilmente. 
    5. 5. Limitaciones:
      El método de bisección puede ser lento en comparación con otros métodos. Además, requiere que la función sea continua en el intervalo de interés, lo que no siempre es el caso. 

    -Algoritmo del Método-

🔢 Pasos del método de bisección:

  1. Verifica las condiciones iniciales:

    • La función f(x)f(x) debe ser continua en el intervalo [a,b][a, b].

    • Debe cumplirse que f(a)f(b)<0f(a) \cdot f(b) < 0 (hay un cambio de signo).

  2. Calcula el punto medio cc:

    c=a+b2c = \frac{a + b}{2}
  3. Evalúa f(c)f(c):

    • Si f(c)=0f(c) = 0, entonces cc es la raíz (caso ideal).

    • Si f(a)f(c)<0f(a) \cdot f(c) < 0, entonces la raíz está en [a,c][a, c]; actualiza b=cb = c.

    • Si f(c)f(b)<0f(c) \cdot f(b) < 0, entonces la raíz está en [c,b][c, b]; actualiza a=ca = c.

  4. Repite los pasos 2 y 3 hasta que se cumpla un criterio de parada:

    • La longitud del intervalo sea menor que una tolerancia predefinida ϵ\epsilon, es decir:

      ba<ϵ|b - a| < \epsilon
    • O bien que f(c)<δ|f(c)| < \delta, con δ\delta pequeño.

  5. Concluir:

    • La raíz aproximada es cc.

    • El error absoluto está acotado por ba2\frac{b - a}{2}.


-Ejemplo Resuelto Paso a Paso-

Encuentra una raíz de la función:

f(x)=x3x2f(x) = x^3 - x - 2

en el intervalo [1,2][1, 2], con una tolerancia de ϵ=0.01\epsilon = 0.01.


🔢 Paso 1: Verificar condiciones

Evaluamos los extremos:

f(1)=1312=2f(2)=822=4f(1) = 1^3 - 1 - 2 = -2 \quad f(2) = 8 - 2 - 2 = 4

Como f(1)f(2)<0f(1) \cdot f(2) < 0, hay una raíz entre 1 y 2. ✅


🔢 Paso 2: Iteraciones

Iteraciónaabbc=a+b2c = \frac{a+b}{2}f(c)f(c)Intervalo nuevo
1121.5f(1.5)=0.125f(1.5) = -0.125[1.5,2][1.5, 2]
21.521.75f(1.75)=1.609f(1.75) = 1.609[1.5,1.75][1.5, 1.75]
31.51.751.625f(1.625)=0.666f(1.625) = 0.666[1.5,1.625][1.5, 1.625]
41.51.6251.5625f(1.5625)=0.252f(1.5625) = 0.252[1.5,1.5625][1.5, 1.5625]
51.51.56251.53125f(1.53125)=0.059f(1.53125) = 0.059[1.5,1.53125][1.5, 1.53125]
61.51.531251.515625f(1.515625)=0.034f(1.515625) = -0.034[1.515625,1.53125][1.515625, 1.53125]
71.5156251.531251.5234375f(1.5234375)=0.012f(1.5234375) = 0.012[1.515625,1.5234375][1.515625, 1.5234375]

🔚 Paso final:

Después de 7 iteraciones:

  • El intervalo es [1.515625,1.5234375][1.515625, 1.5234375]

  • Longitud del intervalo: 0.0078<0.01\approx 0.0078 < 0.01

  • ✅ La tolerancia se ha cumplido


Resultado final:

Una raíz aproximada de x3x2=0x^3 - x - 2 = 0 es:

x1.5195\boxed{x \approx 1.5195}

con un error menor a 0.01.


-Código del Método-


def f(x):
    return x**3 - x - 2

# Intervalo inicial
a = 1
b = 2
tolerance = 0.01
iteration = 0

print("Método de bisección para f(x) = x^3 - x - 2")
print(f"{'Iter':<6}{'a':<10}{'b':<10}{'c':<10}{'f(c)':<10}")

while (b - a) / 2 > tolerance:
    c = (a + b) / 2
    fc = f(c)
    print(f"{iteration:<6}{a:<10.6f}{b:<10.6f}{c:<10.6f}{fc:<10.6f}")
   
    if fc == 0:
        break  # Exacta
    elif f(a) * fc < 0:
        b = c
    else:
        a = c

    iteration += 1

# Resultado final
c = (a + b) / 2
print(f"\nRaíz aproximada: x ≈ {c:.6f} con error menor a {tolerance}")


-Grafica del Método-



-Video Explicativo-




-Conclusión-

El método de bisección es un algoritmo simple y confiable para encontrar raíces de
funciones continuas.
Aunque es más lento que otros métodos, garantiza convergencia si hay un cambio de signo
en el intervalo. Es ideal cuando se busca precisión sin complicaciones.



Comentarios