大概就是这样,没怎么仔细写,可能有些小瑕疵。
# 导入 sin
from math import sin
def f(x):
# 定义 f(x)
return sin(x) + x - 2
def dichotomy(a, b, e=0.000001):
# 定义二分法
# 如果二分法条件则进行二分法,反之重新选择区间
if f(a)*f(b) < 0:
i = 0
# 计算精度
while abs(a - b) >= e:
c = (a + b)/2
if f(a)*f(c) < 0:
b = c
else:
a = c
i = i + 1
return print('根的近似值', c, '迭代次数', i)
else:
return print('区间错误,重新输入a,b')
a = float(input('输入a:'))
b = float(input('输入b:'))
dichotomy(a, b)