代码实现如下:
float lagrange_result(float x[], float y[], float x0, int n) {
float L = 0;
float t = 1;
for (int k = 0; k < n; k++) {
t = 1;
for (int i = 0; i < n; i++) {
if (i != k) {
t = t * ((x0 - x[i]) / (x[k] - x[i]));
}
}
L = L + t * y[k];
}
return L;
}
优点是推导简单明了易懂,缺点计算麻烦,在增加或者删除节点时需要对整个进行重新计算。
来源:CSDN
作者:Allen_928
链接:https://blog.csdn.net/qq_43104187/article/details/103974770