python二分法求方程的根_使用python二分法求解函数的解

def f(x):

return pow(x,2) - 3*x + 2

def fichotomy(a,b,f,r):

"""a,b 为区间,r为误差"""

num1 = f(a)

num2 = f(b)

if num1*num2 > 0:

print('该区间不存在值')

return None

n_num ,p_num = (a, b) if num1 < num2 else (b, a)

reslut = None

def sub_fichotomy(n_num, p_num):

if abs(n_num-p_num) < r:

print('result:', (p_num+n_num)/2)

global result

result = (p_num+n_num)/2

return result

n_num, p_num = ((n_num+p_num)/2, p_num) if f((n_num+p_num)/2) < 0 else (n_num, (n_num+p_num)/2)

sub_fichotomy(n_num, p_num)

sub_fichotomy(n_num, p_num)

return result

你可能感兴趣的:(python二分法求方程的根)