Sunday, September 18, 2011

Numerical Methods: Interpolation with unequal interval with Lagrange’s method in C

Source Code:

///Interpolation with unequal intervals with Lagrange's Formula#include <stdio.h>#include <math.h>#include <windows.h>COORD coord = {0, 0};void gotoxy (int x, int y){        coord.X = x; coord.Y = y; // X and Y coordinates        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}int main(){    float ax[20], ay[20], xp, yp = 0, dr, nr;    int no_data, i, j;    printf("How many data? ");    scanf("%d", &no_data);    printf("Enter Data: ");    for(i =0; i < no_data; i++){        gotoxy(1,2+i); printf("X%d: ", i+1);        scanf("%f", &ax[i]);        gotoxy(10, 2+i);printf("Y%d: ", i+1);        scanf("%f", &ay[i]);    }    printf("\nEnter value of x to find corresponding y ");    scanf("%f", &xp);    for(i = 0; i < no_data; i++){        dr = 1;        nr = 1;        for(j = 0; j<no_data; j++){            if(i!=j){                nr *= xp - ax[j];                dr *= ax[i] - ax[j];            }        }        yp += nr/dr*ay[i];    }    printf("\nrequired value of y is: %f", yp);    return 0;}