Newtons forward Difference formula

 #Newtons forward Difference formula

xpoints=[30.1,30.2,30.3,30.4,30.5,30.6]

ypoints=[.5015107,.5030199,.5045276,0.5060388,0.5075384,0.5090414]

n=len(xpoints)

z=[0]

d1=z*n

d2=z*n

d3=z*n

d4=z*n

d5=z*n

x=float(input('enter data point for interpolation'))

h=xpoints[1]-xpoints[0]


for i in range(0,n-1):

    d1[i]=ypoints[i+1]-ypoints[i]

for i in range(0,n-2):

    d2[i]=d1[i+1]-d1[i]

for i in range(0,n-3):

    d3[i]=d2[i+1]-d2[i]

for i in range(0,n-4):

    d4[i]=d3[i+1]-d3[i]

for i in range(0,n-5):

    d5[i]=d4[i+1]-d4[i]

print('Table of first order differences \n', d1)

print('\n Table of second order differences \n',d2)

print('\n Table of third order differences \n',d3)

print('\n Table of fourth order differences \n',d4)

print('\n Table of fifth order differences \n',d5)

p=(x-xpoints[0])/h


print ('p=',p)

print ('h=',h)

yvalue=ypoints[0]+p*d1[0]+(p*(p-1)*d2[0])/2+(p*(p-1)*(p-2)*d3[0])/6

print ('value of y corresponding to',x,'is',yvalue)


Output Screen:

enter data point for interpolation31.5
Table of first order differences 
 [0.0015091999999999883, 0.0015077000000000007, 0.0015112000000000458, 0.0014995999999999343, 0.001503000000000032, 0]

 Table of second order differences 
 [-1.4999999999876223e-06, 3.5000000000451337e-06, -1.1600000000111521e-05, 3.4000000000977693e-06, 0, 0]

 Table of third order differences 
 [5.000000000032756e-06, -1.5100000000156655e-05, 1.500000000020929e-05, 0, 0, 0]

 Table of fourth order differences 
 [-2.010000000018941e-05, 3.0100000000365945e-05, 0, 0, 0, 0]

 Table of fifth order differences 
 [5.0200000000555356e-05, 0, 0, 0, 0, 0]
p= 14.000000000000284
h= 0.09999999999999787
value of y corresponding to 31.5 is 0.5243230000000134


Comments