কম্পিউটার টিউটোরিয়াল

সিম্পসনের ১/৩ নিয়ম (Simpson's 1/3 Rule for definite integral)


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

এই নিয়মের জন্য আমরা নিচের সূত্র অনুসরণ করব:

সিম্পসনের ১/৩ নিয়ম (Simpson s 1/3 Rule for definite integral)

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

সিম্পসনের ১/৩ নিয়ম (Simpson s 1/3 Rule for definite integral)

ইনপুট এবং আউটপুট

ইনপুট: ফাংশন 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

  1. রঙ্গে-কুট্টা ৪র্থ অর্ডার নিয়ম (Runge-Kutta 4th order rule for differential equation)

  2. ট্র্যাপেজোইডাল নিয়ম (Trapezoidal Rule for definite integral)

  3. পাইথন প্রোগ্রাম: সিরিজ 1/1! + 2/2! + 3/3! + ... + n/n! এর যোগফল বের করা

  4. উইন্ডোজ ৮/৮.১-এ USB ডিভাইস রিকগনাইজ না হলে সমাধান: ধাপে ধাপে সেলফ-হেল্প গাইড