用拉格朗日插值法求值c++
时间: 2023-07-19 19:03:16 浏览: 106
以下是使用拉格朗日插值法求值的C++代码示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 使用拉格朗日插值法计算函数在x处的值
double lagrange_interpolation(double x, const vector<double>& xs, const vector<double>& ys) {
double result = 0.0;
int n = xs.size();
for (int i = 0; i < n; i++) {
double term = ys[i];
for (int j = 0; j < n; j++) {
if (i != j) {
term *= (x - xs[j]) / (xs[i] - xs[j]);
}
}
result += term;
}
return result;
}
int main() {
// 假设要计算函数在x=0.5处的值
double x = 0.5;
// 假设已知函数在以下4个点的取值
vector<double> xs{0.0, 1.0, 2.0, 3.0};
vector<double> ys{1.0, 2.0, 1.0, 4.0};
// 使用拉格朗日插值法计算函数在x处的值
double result = lagrange_interpolation(x, xs, ys);
cout << "f(" << x << ") = " << result << endl;
return 0;
}
```
在本示例中,假设要计算函数在x=0.5处的值,已知函数在4个点的取值,分别为(0,1),(1,2),(2,1),(3,4)。使用`lagrange_interpolation`函数计算得到的结果为f(0.5) ≈ 1.625。
阅读全文