我正在尝试使用二分算法找到函数根的良好近似值,但是,当我运行代码时,它不会返回根 (c)。这是我的代码。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-10,10,201)
def f(x):
return np.cos(x)
plt.figure()
plt.plot(x,f(x),label = 'cosx')
plt.xlabel('independent variable x')
plt.ylabel('dependent variable y')
plt.title('')
plt.show()
TOL = 10**-6
a = 0
b = 1
def bisection(a,b,TOL):
c = (a+b)/2.0
while (b-a)/2.0 > TOL:
if f(c)==0:
return c
elif f(a)*f(c)<0:
b = c
else:
a = c
c = (a+b)/2.0
return c