
/******************************************
NEWTON'S BACKWARD INTERPOLATION
http://native-code.blogspot.com
******************************************/
#include<stdio.h>
#include<conio.h>
#define MAX 20
void main()
{
float xn,yn;
float x[MAX],y[MAX],bd[MAX][MAX];
float h,l,s, y_inp,p,fact;
int i,n,j,k;
p=fact=1.0F;
clrscr();
//--------------------------
printf("\nEnter the total number of pairs:");
scanf("%d",&n);
printf("\n\nEnter the table");
printf("\nX\tY\n");
for(i=0;i<n;i++)
{
scanf("%f",(x+i));
scanf("%f",(y+i));
}
//--------------------------
printf("\nEnter the value of X at which to find Y:");
scanf("%f",&l);
//--------------------------
xn=x[n-1];
yn=y[n-1];
h=x[1]-x[0];
s=(l-xn)/h;
//--------------------------
// BD TABLE
for(i=1;i<n;i++)
bd[n-i][0]=y[n-i]-y[n-i-1];
for(j=1;j<n-1;j++) // 1 to n-1
{
for(i=1;i<n-j;i++)
bd[n-i][j]=(bd[n-i][j-1])-(bd[n-i-1][j-1]);
}
//--------------------------
y_inp=yn;
for(k=1;k<n;k++)
{
p=p*(s+k-1);
fact = fact*k;
y_inp=y_inp+(p/fact)*bd[n-1][k-1];
}
printf("\n\n\nResult by Newton's Backward interpolation formula :%.3f",y_inp);
getch();
} // end of main
/* http://native-code.blogspot.com */
Post a Comment