帮我写一段拉格朗日插值法的C++代码
时间: 2024-06-11 18:06:56 浏览: 75
拉格朗日插值法C++
以下是拉格朗日插值法的C代码:
```c
#include <stdio.h>
double lagrange(double x[], double y[], int n, double x0) {
double result = 0.0;
for (int i = 0; i < n; i++) {
double 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() {
double x[] = {1.0, 2.0, 4.0, 5.0};
double y[] = {3.0, 1.0, 2.0, 4.0};
int n = 4;
double x0 = 3.0;
double y0 = lagrange(x, y, n, x0);
printf("f(%.2lf) = %.2lf\n", x0, y0);
return 0;
}
```
这里实现了一个lagrange函数,它接受两个长度为n的数组x和y,以及一个实数x0,返回Lagrange插值多项式在x0处的值。主函数中提供了一个例子来使用该函数。
阅读全文