朋友让帮忙做一个C语言的牛顿差值算法,花了将近两个小时查资料,终于搞定,贴出来共享:#include "stdio.h"
#include "stdlib.h"
float x[5];//存放x值
float y[5];//存放y值
float xx[5][5];//存放递推均差表
float inputx;//输入x
float outputy;//输出yint main()
{
int i,j;
printf("Please input your point,each point with a enter followed\n");
printf("5 points demanded:\n");
for(i=0;i<5;i++)
{
scanf("%f%f",&x[i],&y[i]);
}//读取初始x、yfor(i=0;i<5;i++)
{
xx[i][0]=y[i];
}
for(i=1;i<5;i++)
{
for(j=1;j<=i;j++)
{
xx[i][j]=(xx[i][j-1]-xx[i-1][j-1])/(x[i]-x[i-j]);
}
}//设置,计算xx矩阵scanf("%f",&inputx);//读取输入x
outputy=xx[0][0];
for(i=1;i<5;i++)
{
float temp=1;
for(j=i-1;j>=0;j--)
{
temp=(inputx-x[j])*temp;
}
outputy=outputy+temp*xx[i][i];}//根据牛顿差值公式计算输出y值
printf("%f",outputy);}
源程序点击下载。
有错
@匿名 怎么又出来错误了?可能是我这个代码贴的有问题,你自己看着改一下吧
好 谢了