Entry 6013

Newton Raphson Methods

   

Submitted by Novalio Daratha on Aug. 13, 2010 at 8:12 a.m.
Language: Python. Code size: 1.1 KB.

from __future__ import division
from sympy import *

__author__="admin"
__date__ ="$Aug 13, 2010 9:20:13 AM$"

if __name__ == "__main__":
    print "This a script that shows how to use sympy to implement Newton-Raphson method";
    print "============================================================================="
x,y,z=symbols('xyz')

def f(x):
#    result=x**3 -10*x**2 + 5
    result= x**4-6.4*x**3 + 6.45*x**2 + 20.538*x-31.752
    return result

def df(x):
    result=diff(f(x),x)
    return result

def new(xold):
    result=xold -2* f(x).subs(x,xold)/df(x).subs(x,xold)
    return result
#def new(x):
#    result=x - f(x)/df(x)
#    return result

print 'Finding the root of the following function using NR Methods'
print "f(x)=",f(x),"= 0"
print 
# Starting NR method
# initial guess
y=-7
error=1
niter=0
y=Real(1)
err=1
#print"Iteration\t y"
while Real(err)>1e-9:
    yold=y
    y=N(new(x).subs(x,y)) # N(expression) convert expression into numerical values
    err=abs(y-yold)
    niter=niter+1
#    print niter,'\t',type(y)
print 'The root is',Real(y),'====> f(',y,')=', f(y)
print 'Error =',Real(err)
print 'Number of iterations:',niter

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).