用拉格朗日插值法求值凑c++
时间: 2023-07-19 10:03:16 浏览: 120
拉格朗日插值法是一种通过已知的数据点,构造一个多项式来近似这些数据点的方法。在C++中,可以通过以下代码实现拉格朗日插值法:
```c++
#include <iostream>
#include <vector>
using namespace std;
double lagrangeInterpolation(vector<double> x, vector<double> y, double xi) {
int n = x.size();
double yi = 0;
for (int i = 0; i < n; i++) {
double li = 1;
for (int j = 0; j < n; j++) {
if (j != i) {
li *= (xi - x[j]) / (x[i] - x[j]);
}
}
yi += y[i] * li;
}
return yi;
}
int main() {
// 定义数据点
vector<double> x = {1, 2, 3, 4, 5};
vector<double> y = {1, 4, 9, 16, 25};
// 求解插值多项式在 xi=2.5 处的函数值
double xi = 2.5;
double yi = lagrangeInterpolation(x, y, xi);
cout << "The value of the function at x=" << xi << " is " << yi << endl;
return 0;
}
```
在这个例子中,我们定义了一个包含五个数据点的向量x和向量y,然后调用lagrangeInterpolation函数来计算插值多项式在xi=2.5处的函数值。输出结果为:
```
The value of the function at x=2.5 is 6.25
```
这意味着插值多项式在x=2.5处的函数值为6.25。
阅读全文