परिचय
दिए गए डेटा बिंदुओं के एक असतत सेट की सीमा के भीतर नए डेटा बिंदुओं के निर्माण के लिए, इंटरपोलेशन तकनीक का उपयोग किया जाता है। लैग्रेंज इंटरपोलेशन तकनीक उनमें से एक है। जब दिए गए डेटा बिंदु समान रूप से वितरित नहीं होते हैं, तो हम इस इंटरपोलेशन विधि का उपयोग समाधान खोजने के लिए कर सकते हैं।
लैग्रेंज इंटरपोलेशन के लिए, हमें इस समीकरण का पालन करना होगा:

इनपुट और आउटपुट
इनपुट: x और f(x) मानों की सूची। f(3.25) ज्ञात करें
x: {0,1,2,3,4,5,6}
f(x): {0,1,8,27,64,125,216}
आउटपुट: लैग्रेंज इंटरपोलेशन के बाद परिणाम f(3.25) = 34.3281
एल्गोरिदम
largrangeInterpolation(x: array, fx: array, x1)
इनपुट: x सरणी और fx सरणी पूर्व ज्ञात डेटा प्राप्त करने के लिए, और बिंदु x1
आउटपुट: f(x1) का मान
Begin
res := 0 और tempSum := 0
i := 1 से n तक, करें
tempProd := 1
j := 1 से n तक, करें
यदि i ≠ j, तो
tempProf := tempProd * (x1 – x[j])/(x[i] – x[j])
done
tempPord := tempProd * fx[i]
res := res + tempProd
done
res लौटाएं
End
उदाहरण (C++ कोड)
#include <iostream>
#define N 6
using namespace std;
double lagrange(double x[], double fx[], double x1) {
double res = 0, tempSum = 0;
for (int i = 1; i <= N; i++) {
double tempProd = 1;
// प्रत्येक पुनरावृत्ति के लिए temp product आरंभ करें
for (int j = 1; j <= N; j++) {
if (i != j) {
// यदि i = j, तो हर 0 होगा
tempProd *= (x1 - x[j]) / (x[i] - x[j]);
// सूत्र का उपयोग करके प्रत्येक पद को गुणा करें
}
}
tempProd *= fx[i]; // f(xi) से गुणा करें
res += tempProd;
}
return res;
}
int main() {
double x[N+1] = {0,1,2,3,4,5,6};
double y[N+1] = {0,1,8,27,64,125,216};
double x1 = 3.25;
cout << "Result after lagrange interpolation f(" << x1 << ") = " << lagrange(x, y, x1);
}
आउटपुट
Result after lagrange interpolation f(3.25) = 34.3281