প্রদত্ত ডেটা পয়েন্টের একটি বিচ্ছিন্ন সেটের মধ্যে নতুন ডেটা পয়েন্ট তৈরি করতে ইন্টারপোলেশন কৌশল ব্যবহার করা হয়। ল্যাগ্রঞ্জ ইন্টারপোলেশন কৌশল 그중 একটি। যখন প্রদত্ত ডেটা পয়েন্টগুলি সমানভাবে বিতরণ করা থাকে না, তবে এই ইন্টারপোলেশন পদ্ধতি ব্যবহার করে সমাধান বের করা যায়। ল্যাগ্রঞ্জ ইন্টারপোলেশনের জন্য নিচের সমীকরণ অনুসরণ করতে হবে।

ইনপুট এবং আউটপুট
ইনপুট: 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) এর মান।
শুরু
res := 0 এবং tempSum := 0
i := 1 থেকে n পর্যন্ত, করুন
tempProd := 1
j := 1 থেকে n পর্যন্ত, করুন
যদি i ≠ j, তবে
tempProf := tempProd * (x1 – x[j])/(x[i] – x[j])
শেষ
tempPord := tempProd * fx[i]
res := res + tempProd
শেষ
res ফেরত দিন
শেষউদাহরণ
#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 হয়, তবে হর ০ হবে tempProd *= (x1 - x[j])/(x[i] - x[j]); //ফর্মুলা ব্যবহার করে প্রতিটি টার্ম গুণ করুন } } tempProd *= fx[i]; //f(xi) গুণ করুন res += tempProd; } return res; } 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