given a function on floating number fx and two floating numbers a and b such that fa fb 0 and fx is continuous in a b here fx represents algebraic or transcendental equation find root of function in interval a b or find a value of x such that fx is 0 https en wikipedia orgwikibisectionmethod equation5 15 equation0 10 equation5 15 equation0 1 9 99 equation0 1 9 99 bisection2 5 3 1611328125 bisection0 6 3 158203125 bisection2 3 traceback most recent call last valueerror wrong space bolzano theory in order to find if there is a root between a and b find middle point check if middle point is root decide the side to repeat the steps equation 5 15 equation 0 10 equation 5 15 equation 0 1 9 99 equation 0 1 9 99 bisection 2 5 3 1611328125 bisection 0 6 3 158203125 bisection 2 3 traceback most recent call last valueerror wrong space bolzano theory in order to find if there is a root between a and b find middle point check if middle point is root decide the side to repeat the steps
def equation(x: float) -> float:
    
    return 10 - x * x


def bisection(a: float, b: float) -> float:
    
    
    if equation(a) * equation(b) >= 0:
        raise ValueError("Wrong space!")

    c = a
    while (b - a) >= 0.01:
        
        c = (a + b) / 2
        
        if equation(c) == 0.0:
            break
        
        if equation(c) * equation(a) < 0:
            b = c
        else:
            a = c
    return c


if __name__ == "__main__":
    import doctest

    doctest.testmod()

    print(bisection(-2, 5))
    print(bisection(0, 6))