牛顿插值法C语言程序.doc
《牛顿插值法C语言程序.doc》由会员分享,可在线阅读,更多相关《牛顿插值法C语言程序.doc(2页珍藏版)》请在冰豆网上搜索。
#include
#include
#defineN6
floatsub(floata[],floatb[],floatx,floate);
voidmain(void)
{
floatu[N]={100,121,144,169,196,225};
floatv[N]={10,11,12,13,14,15};
floatx,y,e,*p1,*p2;
printf("InputnumberxE=:
");
scanf("%f%e",&x,&e);
p1=u;
p2=v;
y=sub(p1,p2,x,e);
printf("y=%f\n",y);
}
floatsub(float*pp1,float*pp2,floatx,floate)
{
floata[N],b[N],t[N],y,y1,c;
inti,k;
for(i=0;i{
a[i]=*pp1;
printf("%12.6f",a[i]);
}
printf("\n");
for(i=0;i{
b[i]=*pp2;
printf("%12.6f",b[i]);
}
printf("\n");
y1=b[0];y=0;
c=1.0;
for(k=1;k{
for(i=k;it[i]=(b[i]-b[i-1])/(a[i]-a[i-k]);//t数组保存差商
c=c*(x-a[k-1]);
y1=y1+c*t[k];
if(fabs(y-y1)y=y1;
for(i=k;ib[i]=t[i];
}
return(y);
}