Create NewtonRaphsonMethod.py

Newton-Raphson method is non bracketing iterative algorithm to find the nearest root of an equation from point 'a'. It's much faster because convergence to the real root is very much faster than any other methods.
This commit is contained in:
Syed Haseeb Shah 2018-04-13 20:25:47 +05:00 committed by GitHub
parent 0a1b6ad4cf
commit 3a0555bdd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,38 @@
# Implementing Newton Raphson method in python
# Author: Haseeb
from sympy import diff
from decimal import Decimal
from math import sin, cos, exp
def NewtonRaphson(func, a):
''' Finds root from the point 'a' onwards by Newton-Raphson method '''
while True:
x = a
c = Decimal(a) - ( Decimal(eval(func)) / Decimal(eval(str(diff(func)))) )
x = c
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 trignometric fucntion
# 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))