Double lagrange(double *x,double *y,int n,double val)
{
int i,j;
double prod;long som;
som=0;
for(i=0;i<=n;i++)
{
prod=1;
for(j=0;j<i;j++)
prod*=(val-x[j])/(x[i]-x[j]);
for(j=i+1;j<=n;j++)
prod*=(val-x[j])/(x[i]-x[j]);
som+=prod*y[i];
}
return som;
}
main()
{
double val,res;
double x[50],y[50];
int i,j;
int n;
printf("donner le degre du polynome \n");
scanf("%d",&n);
for(j=0;j<=n;j++)
{
printf("element X[%d]= ",j);
scanf("%lf",&x[j]);
}
for(j=0;j<=n;j++)
printf("%.2lf\n\n",x[j]);
for(i=0;i<=n;i++)
{
printf("element %d ",i);
scanf("%lf",&y[i]);
}
for(i=0;i<=n;i++)
printf("%.2lf\n\n",y[i]);
printf(" donner la valeur de x: \n");
scanf("%lf",&val);
res=lagrange(x,y,n,val);
printf("P(%.2lf)=%.2lf\n",val,res);
getch();
return 0;
}