def bisection_method(func, a, b, tol, max_iterations):
    if func(a) * func(b) >= 0:
        print("El método de bisección no garantiza la convergencia en este intervalo.")
        return None

    iteration = 0
    while (b - a) / 2.0 > tol and iteration < max_iterations:
        midpoint = (a + b) / 2.0
        if func(midpoint) == 0:
            return midpoint  # Encontramos la raíz exacta
        elif func(a) * func(midpoint) < 0:
            b = midpoint
        else:
            a = midpoint
        iteration += 1

    return (a + b) / 2.0

# Ejemplo de uso:
def example_function(x):
    return x**2 - 4

a = 0.0
b = 3.0
tolerance = 1e-5
max_iterations = 100

root = bisection_method(example_function, a, b, tolerance, max_iterations)

if root is not None:
    print(f"La raíz aproximada es: {root}")
else:
    print("No se pudo encontrar una raíz dentro de la tolerancia especificada.")

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: