Lagrange插值法
#include <stdio.h>
#include <math.h>
#define N 4
void main()
{
int i,j;
double l;
float LI;
float X[N],Y[N];
float x;
printf("请输入x的数值:");
scanf("%f",&x);
printf("x=%f\n",x);
for (i=0;i<N;i++)
{
printf("请输入X的第%d个数值:",i);
scanf("%f",&X[i]);
printf("请输入Y的第%d个数值:",i);
scanf("%f",&Y[i]);
}
l=0;
for (i=0;i<N;i++)
{ LI=1;
for(j=0;j<N;j++)
{
if(j==i) j++;
LI=LI*(x-X[j])/(X[i]-X[j]);
}
l=l+LI*Y[i];
}
printf("N=%d\n",N-1);
printf("l=%lf\n",l);
}