NUmeric :LINEAR INTERPOLATION–QUADRATIC -LAGRANCE
sample input
T | 700 | 720 | 740 | 760 |
V | 0.0977 | 0.12184 | 0.1406 | 0.15509 |
//LINEAR INTERPOLATION
//QUADRATIC
//LAGRANCE
#include<stdio.h>
int main()
{
double y[50],x[50],X,f1,f11,b2,f2,sum=0,G;
int n,op;
printf("Enter the Range :");
scanf("%d",&n);
//....................................
printf("ENTER x =\n");
for(int i=0;i<n;i++)
{
scanf("%lf",&x[i]);
}
//....................................
printf("ENTER y =\n");
for(int i=0;i<n;i++)
{
scanf("%lf",&y[i]);
//((y[2]-y[1])/(x[2]-x[1]));
}
printf("ENTER the value of X =\n");
scanf("%lf",&X);
//.....................................
for(int i=0;i<n;i++)
{ G=1;
for(int j=0;j<n;j++)
{
if(i==j)
{
continue;
}
G=G*((X-x[j])/(x[i]-x[j]));
}
sum=sum+G*y[i];
}
//.....................................
printf("\n\nEnter Your Option\n__________________________\n");
printf("1.lINEAR INTERPOLATION\n\n2.QUADRATIC\n\n3.LAGRANCE\n__________________________\n");
while(scanf("%d",&op)==1)
{
switch(op)
{
case 1:
f1=y[0]+(((y[1]-y[0])*(X-x[0]))/(x[1]-x[0]));
printf("LINEAR INTERPOLATION RESULT is = %lf\n\n",f1);
break;
case 2:
f11=y[0]+(((y[1]-y[0])*(X-x[0]))/(x[1]-x[0]));
b2=((((y[2]-y[1])/(x[2]-x[1]))-((y[1]-y[0])/(x[1]-x[0])))/(x[2]-x[0]));
f2=(f11+(b2*((X-x[0])*(X-x[1]))));
printf("\nQUADRATIC RESULT is = %lf\n\n",f2);
break;
case 3:
printf("Lagrance RESULT is = %lf \n",sum);
break;
default:
printf("ERORR");
break;
}
}
//.....................................
return 0;
}
No comments:
Post a Comment