牛顿插值—C语言实现

牛顿插值—C语言实现_第1张图片

#include 
void chashang(float fx[],float x[])
{
	int i,j,a,b=4;
	for (i=0;i<4;i++)
	{
		a=b;
		for (j=4;j>i;j--)
		{
			fx[j]=(fx[j]-fx[j-1])/(x[j]-x[--a]);
			
			printf("%.5f\n",fx[j]);
		}
		printf("\n");
		b--;
	}
	printf("插商表如下\n");
	for (i=0;i<5;i++)
	{
		printf("%.5f\t",fx[i]);
	}
}
float function(float fx[],float x[],float a)
{
	int i;
	float sum;
	float cc=1;
	sum=fx[0];
	for (i=1;i<5;i++)
	{
		cc=cc*(a-x[i-1]);
		sum=sum+fx[i]*cc;
	}
	return sum;
}


int main ()
{
	float sum,a;
	float x[5]={0.4,0.55,0.8,0.9,1};
	float fx[5]={0.41075,0.57815,0.88811,1.02652,1.17520};
	chashang(fx,x);
	printf("\n请输入测试数据\n");
	scanf("%f",&a);
	sum=function(fx,x,a);
	printf("%.5f\n",sum);
	return  0; 
} 

你可能感兴趣的:(C)