Numerical Methods: Root Finding Algorithms