/*均差与牛顿插值*/
#include<stdio.h>
#define N 10010
int main()
{
double xi[N],yi[N],A[N][2];
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]);
A[i][0]=yi[i];
}
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
A[j][i%2]=(A[j-1][(i-1)%2]-A[j][(i-1)%2])/(xi[j-i]-xi[j]);
}
}//均差表
printf("输入待求X值:");
scanf("%lf",&x);
for(y=0.0,w=1.0,i=0;i<=n;i++)
{
if(i>=1)
w*=(x-xi[i-1]);
y+=A[i][i%2]*w;
}
printf("结果为:%lf\n",y);
return 0;
}
牛顿插值
最新推荐文章于 2020-12-15 15:29:54 发布