拉格朗日插值法C++代码
时间: 2023-11-14 14:13:28 浏览: 88
c++拉格朗日插值法
5星 · 资源好评率100%
很高兴为您服务!以下是拉格朗日插值法的C代码实现:
```c
#include <stdio.h>
// 计算拉格朗日插值多项式的系数
void Lagrange(int n, double x[], double y[], double coef[])
{
int i, j, k;
double t;
for (k = 0; k < n; k++) {
t = 1.0;
for (j = 0; j < n; j++) {
if (j != k) {
t *= (x[k] - x[j]) / (x[k] - x[j]);
}
}
coef[k] = y[k] * t;
}
}
// 计算拉格朗日插值多项式的值
double Interpolation(int n, double x[], double y[], double xx)
{
int i, j;
double sum = 0.0;
double coef[n];
Lagrange(n, x, y, coef);
for (i = 0; i < n; i++) {
sum += coef[i];
}
return sum;
}
// 测试代码
int main()
{
int n = 5; // 数据点个数
double x[] = {0.0, 1.0, 2.0, 3.0, 4.0}; // 数据点x坐标
double y[] = {1.0, 3.0, 5.0, 7.0, 9.0}; // 数据点y坐标
double xx = 2.5; // 待求点的x坐标
double yy;
yy = Interpolation(n, x, y, xx);
printf("f(%lf) = %lf\n", xx, yy);
return 0;
}
```
希望这个代码能够帮到您!如果您有任何其它问题,都可以直接问我哦~
阅读全文