Ngoại suy tuyến tính (Linear Extrapolation) dự đoán giá trị ngoài phạm vi dữ liệu đã biết bằng cách kéo dài đường thẳng qua 2 điểm đã biết.
Cho 2 điểm (x₁,y₁), (x₂,y₂). Giá trị y tại x: y = y₁ + (x - x₁) * (y₂ - y₁) / (x₂ - x₁).
Ví dụ
#include <bits/stdc++.h>
using namespace std;
struct Data {
double x, y;
};
double calc_extrapolate(Data d[], double x) {
double y = d[0].y + (x - d[0].x) / (d[1].x - d[0].x) * (d[1].y - d[0].y);
return y;
}
int main() {
Data d[] = {{1.2, 2.7}, {1.4, 3.1}};
double x = 2.1;
cout << "Value of y (x = 2.1) : " << calc_extrapolate(d, x) << endl;
return 0;
}
Kết quả
Value of y (x = 2.1) : 4.5