Lagrange插值法

把一些以前写的杂七杂八的东西给贴上来,准备维护一下这个blog

由于Lagrange插值法给出了一组非常好的基函数(即Lagrange插值基函数)

所以,我们可以不需要任何的计算(因为系数就是f(xi))就可以直接得出Lagrange插值的目标函数
给出C语言代码:

//一共有n个已知点,数组x,y存放函数表格,aim为插值点
//Pai,Tai分别表示li(x)的分子和分母的连乘积,用Slag存放计算结果
double Lagrange(int n, double *x, double *y, double aim){
double Pai = 1, Slag = 0, Tai = 1;
for(int i = 0; i < n; i++)
Pai *= (aim - *(x + i));
for(int j = 0; j < n; j++){
Tai = 1;
for(int i = 0; i < n; i++)
if(i != j) Tai *= (*(x + j) - *(x + i));
Slag += (*(y + j) * Pai / ((aim - *(x + j)) * Tai));
}
return Slag;
}