C examples for Data Structure:Algorithm
To Construct the New Data Points Using Bessel's Method of Interpolation
#include<stdio.h> #define MAX 20/*from w w w .j a v a 2s .co m*/ int main() { int i, j, terms = 10; float ax[MAX], ay[MAX], x, y, h, p; float diff[MAX][5], y1, y2, y3, y4; printf("\nEnter the values of x upto 2 decimal points.\n"); for (i=0; i<terms; i++) { printf("Enter the value of x%d: ", i+1); scanf("%f",&ax[i]); } printf("\nNow enter the values of y upto 4 decimal points.\n"); for (i=0; i < terms; i++) { printf("Enter the value of y%d: ", i+1); scanf("%f", &ay[i]); } printf("\nEnter the value of x for which the value of y is wanted: "); scanf("%f", &x); h = ax[1] - ax[0]; for(i=0; i < terms-1; i++) diff[i][1] = ay[i+1] - ay[i]; for(j=2; j <= 4; j++) for(i=0; i < terms-j; i++) diff[i][j] = diff[i+1][j-1] - diff[i][j-1]; i = 0; do { i++; } while (ax[i] < x); i--; p = (x-ax[i])/h; y1 = p * (diff[i][1]); y2 = p * (p-1) * (diff[i][2] + diff[i-1][2])/4; y3 = p * (p-1) * (p-0.5) * (diff[i-1][3])/6; y4 = (p+1) * p * (p-1) * (p-2) * (diff[i-2][4] + diff[i-1][4])/48; y = ay[i] + y1 + y2 + y3 + y4; printf("\For x = %6.2f, y = %6.4f ", x, y); }