-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNewton's_Forward_interpolation.c
More file actions
51 lines (51 loc) · 990 Bytes
/
Newton's_Forward_interpolation.c
File metadata and controls
51 lines (51 loc) · 990 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<stdio.h>
#include<math.h>
int fact(int);
void main()
{
float arr[10][11],x,h,p,y,px=1;
int i,j,n,ch=30;
printf("\nEnter the number of data:");
scanf("%d",&n);
printf("\nEnter the data");
for(i=0;i<n;i++)
{
printf("X%d=",i+1);
scanf("%f",&arr[i][0]);
printf("Y%d=",i+1);
scanf("%f",&arr[i][1]);
}
for(j=2;j<=n;j++)
for(i=0;i<n-1;i++)
arr[i][j]=arr[i+1][j-1]-arr[i][j-1];
printf("\nDifference table is:-");
printf("\n\tx\tY");
for(i=0;i<=n-2;i++)
printf("\t%c^%dY",ch,i+1);
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n+1-i;j++)
{
printf("\t%.4f",arr[i][j]);
}
}
printf("\nEnter the value x for function f(x):");
scanf("%f",&x);
h=arr[1][0]-arr[0][0];
p=(x-arr[0][0])/h;
y=arr[0][1];
for(i=1;i<n;i++)
{
px=px*(p-(i-1));
y=y+(arr[0][i+1]*px)/fact(i);
}
printf("\nthe value of function at x=%f is %f",x,y);
}
int fact(int n)
{
int i,f=1;
for(i=1;i<=n;i++)
f=f*i;
return f;
}