Newtons backward Difference formula -sastry 3.6

 #Newtons backwardDiffernce formula -sastry 3.6

xpoints=[15,20,25,30,35,40]

ypoints=[.2588190,0.3420201,0.4226183,0.5,0.573576,0.6427876]

n=len(xpoints)

z=[0]

d1=z*(n-1)

d2=z*(n-2)

d3=z*(n-3)

d4=z*(n-4)

d5=z*(n-5)

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

yvalue1=yvalue+(p*(p-1)*(p-2)*(p-3)*d4[0])/24+(p*(p-1)*(p-2)*(p-3)*(p-4)*d5[0])/120

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

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

print ('p=',p)

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

yvalue3=yvalue2+(p*(p+1)*(p+2)*(p+3)*d4[-1])/24+(p*(p+1)*(p+2)*(p+3)*(p+4)*d5[-1])/120

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


Output Screen:

enter data point for interpolation38
Table of first order differences 
 [0.08320109999999997, 0.08059820000000001, 0.0773817, 0.07357599999999997, 0.06921160000000004]

 Table of second order differences 
 [-0.0026028999999999636, -0.003216500000000011, -0.003805700000000023, -0.004364399999999935]

 Table of third order differences 
 [-0.0006136000000000474, -0.0005892000000000119, -0.000558699999999912]

 Table of fourth order differences 
 [2.4400000000035504e-05, 3.050000000009989e-05]

 Table of fifth order differences 
 [6.100000000064387e-06]
p= 4.6
h= 5
value of y corresponding to 38.0 is 0.6156609932928
p= -0.4
value of y corresponding to 38.0 is 0.6156609932928


#Newtons forward Differnce formula -Grewal 7.1

xpoints=[100,150,200,250,300,350,400]

ypoints=[10.63,13.03,15.04,16.81,18.42,19.90,21.27]

n=len(xpoints)

z=[0]

d1=z*(n-1)

d2=z*(n-2)

d3=z*(n-3)

d4=z*(n-4)

d5=z*(n-5)

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

yvalue1=yvalue+(p*(p-1)*(p-2)*(p-3)*d4[0])/24+(p*(p-1)*(p-2)*(p-3)*(p-4)*d5[0])/120


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


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

print ('p=',p)


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

yvalue3=yvalue2+(p*(p+1)*(p+2)*(p+3)*d4[-1])/24+(p*(p+1)*(p+2)*(p+3)*(p+4)*d5[-1])/120

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


Ouput Screen:

enter data point for interpolation410 

Table of first order differences [2.3999999999999986, 2.01, 1.7699999999999996, 1.610000000000003, 1.4799999999999969, 1.370000000000001] 

 Table of second order differences [-0.3899999999999988, -0.2400000000000002, -0.1599999999999966, -0.1300000000000061, -0.10999999999999588] 

 Table of third order differences [0.14999999999999858, 0.08000000000000362, 0.02999999999999048, 0.020000000000010232] 

 Table of fourth order differences [-0.06999999999999496, -0.050000000000013145, -0.009999999999980247] 

 Table of fifth order differences [0.01999999999998181, 0.0400000000000329] 

p= 6.2

 h= 50 

value of y corresponding to 410.0 is 21.503470719999925

 p= 0.2 

value of y corresponding to 410.0 is 21.534221440000003


Comments