Given a value of x, return a better x 
    using gradient descent

def grad_desc_update(x, a, c, step=0.01):
    """ 
    Given a value of x, return a better x 
    using gradient descent 
    """
    return x - step * gradient(x,a,c)