# Newton Interpolation Method in Python

# Newton Interpolation Method in Python

Interpolation is the estimation of the value of two known values in a range of values.

Newton's fractional difference interpolation formula is an interpolation technique used when the interval difference is not equal to all values.

The (n + 1) values of the y = f (x) function correspond to the arguments x = x0, x1, x2 are f (x0), f (x1), f (x2) ……… f (xn)… Xn, where interval differences Are not identical.

### Newton Interpolation Formula

### Write a Program to find value of x using Newton Interpolation Formula

value at 52

Input: x = 45, 50, 55, 60

y= f(x) = 0.7071, 0.7660, 0.8192, 0.8660

**Python Code:**

def u_cal(u,n):

temp = u

for i in range(1,n):

temp = temp*(u-i)

return temp

def fact(n):

f = 1

for i in range(2,n+1):

f*=i

return f

n = 4

x = [45,50,55,60]

y = [[0 for i in range(n)] for j in range(n)]

y[0][0]=0.7071

y[1][0]=0.7660

y[2][0]=0.8192

y[3][0]=0.8660

for i in range(1,n):

for j in range(n-i):

y[j][i]=y[j+1][i-1]-y[j][i-1]

for i in range (n):

print(x[i],end="\t")

for j in range(n-i):

print(y[i][j],end="\t")

print("")

value = 52

sum = y[0][0]

u =(value-x[0]/x[1]-x[0])

for i in range(1,n):

sum = sum+(u_cal(u,i)*y[0][i]/fact(i))

print("\n value at",value,"is",round(sum,6))

**Output:**

```
45 0.7071 0.05890000000000006 -0.005700000000000038 -0.0007000000000000339
50 0.766 0.053200000000000025 -0.006400000000000072
55 0.8192 0.04679999999999995
60 0.866
```

value at 52 is 0.962846

### Example 2:

Write a program to find value of x using Newton Interpolation Formula

value at 1925

Input: x = 1891,1901,1911,1921,1931

y = f(x) = 46,66,81,93,101

Python Codedef u_cal(u,n):

temp = u

for i in range(1,n):

temp = temp*(u-i)

return temp

def fact(n):

f = 1

for i in range(2,n+1):

f*=i

return f

n = 5

x = [1891,1901,1911,1921,1931]

y = [[0 for i in range(n)] for j in range(n)]

y[0][0]=46

y[1][0]=66

y[2][0]=81

y[3][0]=93

y[4][0]=101

for i in range(1,n):

for j in range(n-i):

y[j][i]=y[j+1][i-1]-y[j][i-1]

for i in range (n):

print(x[i],end="\t")

for j in range(n-i):

print(y[i][j],end="\t")

print("")

value=1925

sum=y[0][0]

u =(value-x[0]/x[1]-x[0])

for i in range(1,n):

sum = sum+(u_cal(u,i)*y[0][i]/fact(i))

print("\n value at",value,"is",round(sum,6))

Output:`1891 46 20 -5 2 -3 1901 66 15 -3 -1 1911 81 12 -4 1921 93 8 1931 101 value at 1925 is -113859.489961`