python小问题2

img


已知一方程f(x),已知根处于(2,5),利用二分法求出该根并按题中规定输出,关于二分法代入方程不太清楚

from math import sin,cos,exp
E = 1e-8

### begin ###
def func(x):
    return -sin(x)*exp(x) + 15*cos(x)*x**0.5

def binarysearch(left, right, error=1.0e-8):
    cur_root = left
    while abs(func(cur_root))>error:
        if abs(func(left)) < error or abs(func(right)) < error:
            return cur_root
        else:
            middle = (left + right) / 2
            if (func(left) * func(middle)) < 0:
                right = middle
            else:
                left = middle
            cur_root = left

x = binarysearch(2, 5, E)
### end ###
print('%.5f' % x)