Pages - Menu

Tuesday, 22 July 2014

Implementation of n divided difference formula in C.

Here is the code..

//Newton's Divided Difference Formula
#include<stdio.h>

void main()
{
 float x[6],y[6],dy[5],d2y[4],d3y[3],d4y[2],d5y,t,i,ya,xa;
 printf("Enter 6 values for X:   ");
 for(i=0;i<6;i++)
 scanf("%f",&x[i]);
 printf("Enter the values for Y: ");
 for(i=0;i<6;i++)
 scanf("%f",&y[i]);
 for(i=0;i<5;i++)
  dy[i]=(y[i+1]-y[i])/(x[i+1]-x[i]);
 for(i=0;i<4;i++)
  d2y[i]=(dy[i+1]-dy[0])/(x[i+2]-x[i]);
 for(i=0;i<3;i++)
  d3y[i]=(d2y[i+1]-d2y[i])/(x[i+3]-x[i]);
 for(i=0;i<2;i++)
  d4y[i]=(d3y[i+1]-d3y[i])/(x[i+4]-x[i]);
 d5y=(d4y[1]-d4y[0])/(x[5]-x[0]);
 printf("Enter the value of x for which y is to be calculated: ");
 scanf("%f",&xa);
 ya=y[0]+((xa-x[0])*dy[0])+((xa-x[0])*(xa-x[1])*d2y[0])+((xa-x[0])*(xa-x[1])*(xa-x[2])*d3y[0])+((xa-x[0])*(xa-x[1])*(xa-x[2])*(xa-x[3])*(d4y[0]))+(((xa-x[0])*(xa-x[1])*(xa-x[2])*(xa-x[3])*(xa-x[4])*d5y));
 printf("Y (for x=%.1f) = %.4f",xa,ya);
}
For Turbo C users.
//Newton's Divided Difference Formula
#include<stdio.h>
#include<conio.h>
void main()
{
 float x[6],y[6],dy[5],d2y[4],d3y[3],d4y[2],d5y,t,i,ya,xa;
 clrscr();
 printf("Enter 6 values for X:   ");
 for(i=0;i<6;i++)
 scanf("%f",&x[i]);
 printf("Enter the values for Y: ");
 for(i=0;i<6;i++)
 scanf("%f",&y[i]);
 for(i=0;i<5;i++)
  dy[i]=(y[i+1]-y[i])/(x[i+1]-x[i]);
 for(i=0;i<4;i++)
  d2y[i]=(dy[i+1]-dy[0])/(x[i+2]-x[i]);
 for(i=0;i<3;i++)
  d3y[i]=(d2y[i+1]-d2y[i])/(x[i+3]-x[i]);
 for(i=0;i<2;i++)
  d4y[i]=(d3y[i+1]-d3y[i])/(x[i+4]-x[i]);
 d5y=(d4y[1]-d4y[0])/(x[5]-x[0]);
 printf("Enter the value of x for which y is to be calculated: ");
 scanf("%f",&xa);
 ya=y[0]+((xa-x[0])*dy[0])+((xa-x[0])*(xa-x[1])*d2y[0])+((xa-x[0])*(xa-x[1])*(xa-x[2])*d3y[0])+((xa-x[0])*(xa-x[1])*(xa-x[2])*(xa-x[3])*(d4y[0]))+(((xa-x[0])*(xa-x[1])*(xa-x[2])*(xa-x[3])*(xa-x[4])*d5y));
 printf("Y (for x=%.1f) = %.4f",xa,ya);
 getch();
}

No comments:

Post a Comment