import sys
def f(x):
return x**3 + x -1
def bisection(a,b,tol):
c = (a+b)/2.0
while (b-a)/2.0 > tol:
if f(c) == 0:
return c
elif f(a)*f(c) < 0:
b = c
else :
a = c
c = (a+b)/2.0
return c
def main(argv):
if (len(sys.argv) != 4):
sys.exit('Usage: bisection.py <a> <b> <tol>')
print 'The root is: ',
print bisection(int(sys.argv[1]),int(sys.argv[2]),float(sys.argv[3]))
if __name__ == "__main__":
main(sys.argv[1:])