# Implementing Newton Raphson method in Python # Author: Haseeb from sympy import diff from decimal import Decimal def NewtonRaphson(func, a): ''' Finds root from the point 'a' onwards by Newton-Raphson method ''' while True: c = Decimal(a) - ( Decimal(eval(func)) / Decimal(eval(str(diff(func)))) ) a = c # This number dictates the accuracy of the answer if abs(eval(func)) < 10**-15: return c # Let's Execute if __name__ == '__main__': # Find root of trigonometric function # Find value of pi print ('sin(x) = 0', NewtonRaphson('sin(x)', 2)) # Find root of polynomial print ('x**2 - 5*x +2 = 0', NewtonRaphson('x**2 - 5*x +2', 0.4)) # Find Square Root of 5 print ('x**2 - 5 = 0', NewtonRaphson('x**2 - 5', 0.1)) # Exponential Roots print ('exp(x) - 1 = 0', NewtonRaphson('exp(x) - 1', 0))