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.")
To embed this project on your website, copy the following code and paste it into your website's HTML: