Computer >> Máy Tính >  >> Lập trình >> C ++

Nội suy Lagrange trong C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm kết quả cho công thức nội suy của lagranges.

Bạn không viết bất kỳ logic nào cho chương trình. Chỉ cần chuyển đổi công thức thành mã. Hãy xem mã.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
struct Data {
   int x, y;
};
double interpolate(Data function[], int xi, int n) {
   double result = 0;
   for (int i = 0; i < n; i++) {
      double term = function[i].y;
      for (int j = 0; j < n; j++) {
         if (j != i) {
            term = term * (xi - function[j].x) / double(function[i].x - function[j].x);
         }
      }
      result += term;
   }
   return result;
}
int main() {
   Data function[] = {{0,3}, {1,2}, {6,9}, {10,17}};
   cout << interpolate(function, 3, 5) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

3

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.