用c语言完成拉格朗日插值法
时间: 2023-05-18 11:06:59 浏览: 87
可以使用以下代码实现拉格朗日插值法:
#include <stdio.h>
double lagrange(double x[], double y[], int n, double xi) {
double yi = 0.0;
for (int i = 0; i < n; i++) {
double li = 1.0;
for (int j = 0; j < n; j++) {
if (i != j) {
li *= (xi - x[j]) / (x[i] - x[j]);
}
}
yi += y[i] * li;
}
return yi;
}
int main() {
double x[] = {1.0, 2.0, 3.0, 4.0, 5.0};
double y[] = {1.0, 4.0, 9.0, 16.0, 25.0};
int n = 5;
double xi = 2.5;
double yi = lagrange(x, y, n, xi);
printf("f(%g) = %g\n", xi, yi);
return 0;
}
这个程序实现了拉格朗日插值法,给定一组数据点(x[i], y[i]),可以通过插值得到任意点(xi, yi)的函数值。在这个例子中,我们使用了五个数据点(1, 1), (2, 4), (3, 9), (4, 16), (5, 25),并计算了在x=2.5处的函数值,结果为f(2.5) = 6.25。
阅读全文