Nội suy ngược (Inverse Interpolation): tìm x ứng với y cho trước từ bảng giá trị (xᵢ, yᵢ) của hàm chưa biết. Sử dụng công thức Lagrange hoán đổi vai trò x và y.
Công thức: x = Σ [xᵢ × Π (y - yⱼ)/(yᵢ - yⱼ)] (j≠i).
Ví dụ
#include <bits/stdc++.h>
using namespace std;
struct Data {
double x, y;
};
double calc_invinter(Data d[], int n, double y) {
double x = 0;
for (int i = 0; i < n; i++) {
double xi = d[i].x;
for (int j = 0; j < n; j++) {
if (j != i)
xi = xi * (y - d[j].y) / (d[i].y - d[j].y);
}
x += xi;
}
return x;
}
int main() {
Data d[] = {{1.27, 2.3}, {2.25, 2.95}, {2.5, 3.5}, {3.6, 5.1}};
int n = 4;
double y = 4.5;
cout << "Value of x (y = 4.5) : " << calc_invinter(d, n, y) << endl;
return 0;
}
Kết quả
Value of x (y = 4.5) : 2.51602