写一段拉格朗日插值法c语言代码
时间: 2023-12-12 09:53:41 浏览: 89
以下是拉格朗日插值法的C语言代码实现:
```c
#include <stdio.h>
float lagrange_interpolation(float x[], float y[], int n, float x0) {
float result = 0.0;
for (int i = 0; i < n; i++) {
float term = y[i];
for (int j = 0; j < n; j++) {
if (j != i) {
term *= (x0 - x[j]) / (x[i] - x[j]);
}
}
result += term;
}
return result;
}
int main() {
float x[] = {1.0, 2.0, 3.0, 4.0, 5.0};
float y[] = {3.0, 2.0, 1.0, 4.0, 5.0};
int n = 5;
float x0 = 2.5;
float result = lagrange_interpolation(x, y, n, x0);
printf("f(%.1f) = %.2f\n", x0, result);
return 0;
}
```
在该代码中,`lagrange_interpolation`函数接受四个参数:`x`是自变量数组,`y`是因变量数组,`n`是数组大小,`x0`是需要求解的自变量值。函数返回`x0`对应的因变量值。在`lagrange_interpolation`函数中,使用两个嵌套的循环计算拉格朗日插值公式的每个项,并将它们相加得到最终结果。最后,在`main`函数中,我们定义了一组自变量和因变量,以及需要求解的自变量值,然后调用`lagrange_interpolation`函数来计算对应的因变量值,并输出结果。
阅读全文