def f(x):
# 在这里定义你的方程,例如:x**2 - 4
return x**2 - 4
def bisection_method(f, x0, epsilon=0.01, interval=30, max_iter=1000):
a = x0 - interval
b = x0 + interval
if f(a) * f(b) > 0:
print("无法确定解存在于指定范围内")
return None
iter_count = 0
while (b - a) / 2 > epsilon:
iter_count += 1
c = (a + b) / 2
if abs(f(c)) < epsilon:
print(f"经过 {iter_count} 次迭代后,找到近似解:{c}")
return c
if f(c) * f(a) < 0:
b = c
else:
a = c
if iter_count >= max_iter:
print("已达到最大迭代次数")
return None
print(f"经过 {iter_count} 次迭代后,找到近似解:{(a + b) / 2}")
return (a + b) / 2
# 用于测试的初始近似值
x0 = 4
# 调用二分法函数求解
approximate_root = bisection_method(f, x0)