Unit4.Ipynb - Newtons Forward and Backward Interpolation

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

#Newton 

Forward Interpolation
import numpy as np
x=[5,10,15,20,25]
y = [46,90,120,170,290]
#x=[0,1,2,3]
#y=[1,0,1,4]
xp=float(input("At which point you want to interpolate value:"))
h = float(x[1]-x[0])
t =(xp -x[0])/h
coeff=t
sum=y[0]
k=1
for i in range(len(y),1,-1):
  y=np.diff(y)
   
  sum = sum +coeff*y[0]
  coeff = coeff*((t-k)/(k+1)) # Updating Coeff
  k = k +1
print("Interpolated Value=",sum)

At which point you want to interpolate value:25


Interpolated Value= 290.0

#Newton backward Interpolation
import numpy as np
x=[5,10,15,20,25]
y = [46,90,120,170,290]
xp=float(input("At which point you want to interpolate value:"))
h = float(x[1]-x[0])
n=len(y)
t =(xp -x[n-1])/h
coeff=t
sum=y[n-1]
k=1
for i in range(len(y),1,-1):
  y=np.diff(y)
  
  sum = sum +coeff*y[i-2]
  coeff = coeff*((t+k)/(k+1)) # Updating Coeff
  k = k +1
print("Interpolated Value=",sum)

At which point you want to interpolate value:25


Interpolated Value= 290.0

Curve Fitting

from scipy.optimize import curve_fit
def linear(x,a,b):
  y = a*x+b
  return y
x =[0,1]
y= [15,10]
popt,pcov = curve_fit(linear,x,y)
print(popt)
print(pcov)

You might also like