Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ triển khai ngoại suy tuyến tính

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