ট্র্যাপেজোইডাল নিয়মের মতো, সিম্পসনের ১/৩ নিয়মও a থেকে b পরিসরের ইন্টিগ্রাল মান বের করতে ব্যবহৃত হয়। ট্র্যাপেজোইডাল এবং সিম্পসনের ১/৩ নিয়মের মূল পার্থক্য হল, ট্র্যাপেজোইডাল নিয়মে পুরো অংশকে কিছু ট্র্যাপেজোইডে ভাগ করা হয়, কিন্তু এই ক্ষেত্রে প্রতিটি ট্র্যাপেজোইডও দুটি ভাগে ভাগ করা হয়।
এই নিয়মের জন্য আমরা নিচের সূত্র অনুসরণ করব:

এখানে h হল ইন্টারভালের প্রস্থ, এবং n হল ইন্টারভালের সংখ্যা। আমরা h খুঁজে পেতে পারি

ইনপুট এবং আউটপুট
ইনপুট: ফাংশন f(x): (x+(1/x)। নিম্ন এবং উপরের সীমা: 1, 2। ইন্টারভালের সংখ্যা: ২০। আউটপুট: উত্তরটি হল: 2.19315
অ্যালগরিদম
integrateSimpson(a, b, n)
ইনপুট - ইন্টিগ্রালের নিম্ন এবং উপরের সীমা এবং ইন্টারভালের সংখ্যা n।
আউটপুট - ইন্টিগ্রেশনের ফলাফল।
শুরু
h := (b - a)/n
res := f(a) + f(b)
lim := n/2
i := 1 থেকে lim পর্যন্ত, করুন
oddSum := oddSum + f(a + (2i - 1)h)
শেষ
oddSum := oddSum * 4
i := 1 থেকে lim-1 পর্যন্ত, করুন
evenSum := evenSum + f(a + 2ih)
শেষ
evenSum := evenSum * 2
res := res + oddSum + evenSum
res := res * (h/3)
res ফেরত দিন
শেষউদাহরণ
#include<iostream> #include<cmath> using namespace std; float mathFunc(float x) { return (x+(1/x)); //ফাংশন 1 + 1/x } float integrate(float a, float b, int n) { float h, res = 0.0, oddSum = 0.0, evenSum = 0.0, lim; int i; h = (b-a)/n; //দুই ইন্টারভালের মধ্যে দূরত্ব গণনা করুন res = (mathFunc(a)+mathFunc(b)); //f(a) এবং f(b) ব্যবহার করে প্রাথমিক যোগফল lim = n/2; for(i = 1; i<=lim; i++) oddSum += mathFunc(a+(2*i-1)*h); //বিষম সংখ্যার স্থানে থাকা সংখ্যাগুলোর যোগফল oddSum *= 4; //বিষম যোগফল ৪ দিয়ে গুণ করা হয় for(i = 1; i<lim; i++) evenSum += mathFunc(a+(2*i)*h); //জোড় সংখ্যার স্থানে থাকা সংখ্যাগুলোর যোগফল evenSum *= 2; //জোড় যোগফল ২ দিয়ে গুণ করা হয় res += oddSum+evenSum; res *= (h/3); return res; //ইন্টিগ্রেশনের ফলাফল } main() { float result, lowLim, upLim; int interval; cout << "Enter Lower Limit, Upper Limit and interval: "; cin >>lowLim >>upLim >>interval; result = integrate(lowLim, upLim, interval); cout << "The answer is: " << result; }আউটপুট
Enter Lower Limit, Upper Limit and interval: 1 2 20 The answer is: 2.19315