牛顿插值计算的c++代码
double newton(double *x, double *y, int n, double num, int cur, int pointNum, double answer)
{
//计算均差
for(int i = pointNum -1; i>cur; i--)
{
y[i] = ( y[i] - y[i-1] ) / ( x[i] - x[i-1] );
}
//已经计算完cur自加
cur++;
//temp进行临时计算
double temp = y[cur];
for(int i= 0; i<cur; i++)
{
temp *= ( num - x[i] );
}
//将临时计算的结果加到answer
answer += temp;
//如果得到想要的结果就返回答案 否则继续计算
if(cur==n)
return answer;
else
return newton(x,y,n,num,cur,pointNum,answer); /// 少了 return
}