Saturday, 8 March 2014

BESSEL METHOD OF INTERPOLATION PROGRAM

/*CSEMATTER.BLOGSPOT.IN
  PROGRAM - BESSEL METHOD OF INTERPOLATION
*/
#include <stdio.h>
#include <conio.h>
 int fact(int i)
 {if(i<2)
 return 1;
 else
 return (i*fact(i-1));}
 void main()
{
float i,p,h,j,x[10],y[10],xy[10][10],val,xs,ys,is,X,Y,y1,y2,y3,y4;
int n;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
xy[i][j]=0;
}
for(i=0;i<n;i++)
{
scanf("%f",&x[i]);
scanf("%f",&y[i]);
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
if(j==0)
xy[i][j]=y[i];
if(xy[i+1][j-1]!=0)
xy[i][j]=xy[i+1][j-1]-xy[i][j-1];
}
}
printf("enter the value of X");
scanf("%f",&X);
i=0;
do
{
i++;
}
while(x[i]<X);
is=i;

printf("%f",x[is]);
h=x[1]-x[0];
p=(X-x[is])/h;
y1=p*xy[is][1];
y2=p*(p-1)*(xy[is][2]+xy[is-1][2])/(2*fact(2));
y3=p*(p-1)*(p-0.5)*xy[is-1][3]/fact(3);
y4=(p+1)*p*(p-1)*(p-2)*(xy[i-2][4]+xy[i-1][4])/(fact(4)*2);
Y=y[is]+y1+y2+y3+y4;
printf("\nThe result is  :-  %f",Y);
getch();
}


/*
Output :-
 4
20
2854
24
3162
28
3544
32
3992
25
The result is  :-  3250.875000
*/

No comments:

Post a Comment