二分法和牛顿法的源代码如下:
二分法:
def binary_search(f, a, b, tolerance):
if f(a) * f(b) >= 0:
raise ValueError("Invalid interval")
while b - a > tolerance:
c = (a + b) / 2
if f(a) * f(c) < 0:
b = c
else:
a = c
return a
牛顿法:
def newton_method(f, df, x0, tolerance):
while True:
x1 = x0 - f(x0) / df(x0)
if abs(x1 - x0) <= tolerance:
return x1
x0 = x1
其中,f表示待求解的函数,df表示函数的导数,a和b是搜索区间,x0是初始猜测,tolerance是误差容忍度。