Implementatio of Newton’s Backward Interpolation Formula.
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<process.h>
#include<string.h>
void main()
{
int n;
int i,j,k;
float mx[10];
float my[10];
float x;
float x0=0;
float y0;
float sum;
float h;
float fun;
float p;
float diff[20][20];
float y1,y2,y3,y4;
clrscr();
printf("\n Enter the number of term -");
scanf("%d",&n);
printf("\n Enter the value in the form of x - -");
for(i=0;i<n;i++)
{
printf("\n Enter the value of x%d -",i+1);
scanf("%f",&mx[i]);
}
printf("\n Enter the value in the form of y - -");
for(i=0;i<n;i++)
{
printf("\n Enter the value of y%d -",i+1);
scanf("%f",&my[i]);
}
printf("\n Enter the value of x for- -");
printf("\n which you want the value of y -");
scanf("%f",&x);
h=mx[1]-mx[0];
for(i=0;i<n-1;i++)
{
diff[i][1]=my[i+1]-my[i];
}
for(j=2;j<=4;j++)
{
for(i=0;i<n-j;i++)
{
diff[i][j]=diff[i+1][j-1]-diff[i][j-1];
}
}
i=0;
while(!mx[i]>x)
{
i++;
}
x0=mx[i];
sum=0;
y0=my[i];
fun=1;
p=(x-x0)/h;
sum=y0;
for(k=1;k<=4;k++)
{
fun=(fun*(p-(k-1)))/k;
sum=sum+fun*diff[i][k];
}
printf("\n when x=%6.4f,y=%6.8f",x,sum);
printf("\n\n\n Press Enter to Exit");
getch();
}
No comments:
Post a Comment