/*n次拉格朗日插值*/
#include<stdio.h>
#define N 10010
int main()
{
double xi[N],yi[N];
int n,i,j;
double w,w1;
double x,y;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
scanf("%lf %lf",&xi[i],&yi[i]);
}
printf("输入待求X值:");
scanf("%lf",&x);
for(w=1.0,i=0;i<=n;i++)
w*=(x-xi[i]);
for(y=0.0,i=0;i<=n;i++)
{
for(w1=1.0,j=0;j<=n;j++)
{
if(j!=i)
w1*=(xi[i]-xi[j]);
}
y+=w/(x-xi[i])/w1*yi[i];
}
printf("结果为:%lf\n",y);
return 0;
}
拉格朗日插值
最新推荐文章于 2024-04-16 00:12:09 发布