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

সি++ প্রোগ্রাম: দ্বি-অভিশ্লেষণ (Double Integration) গণনা


x-এর নিম্ন ও উর্ধ্ব সীমা, y-এর নিম্ন ও উর্ধ্ব সীমা, x-এর ধাপ (step) এবং y-এর ধাপ দেওয়া থাকলে, দ্বি-অভিশ্লেষণ নির্ণয় করে ফলাফল দেখানো এই প্রোগ্রামের উদ্দেশ্য।

উদাহরণ

Input-: steps for x = 1.2 steps for y = 0.54 lower limit of x = 1.3 upper limit of x = 2.1 lower limit of y = 1.0 upper limit for y = 2.1 Output-: double integration is : 2.1

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি:

  • x এবং y-এর উর্ধ্ব ও নিম্ন সীমা এবং ধাপের মান ইনপুট নেওয়া
  • x এবং y উভয়ের জন্য সিম্পসন ১/৩ পদ্ধতি (Simpson 1/3 method) ব্যবহার করা হয়েছে
  • আরোক্ষিত টেবিল তৈরি করা

সি++ প্রোগ্রাম: দ্বি-অভিশ্লেষণ (Double Integration) গণনা

  • প্রতিটি সারিয়ে সিম্পসন ১/৩ নিয়ম প্রয়োগ করে প্রথম অভিশ্লেষণ করা এবং দ্বি-অভিশ্লেষণের জন্য এটিকে দুবার রিপিট করা
  • ফলাফল প্রিন্ট করা

অ্যালগরিদম

Start Step 1→ অভিশ্লেষণের জন্য পাওয়ার গণনার ফাংশন ঘোষণা    float fun(float x, float y)    return pow(pow(x, 4) + pow(y, 5), 0.5) Step 2→ দ্বি-অভিশ্লেষণের মান নির্ণয়ের ফাংশন ঘোষণা    float doubleIntegral(float step_x, float step_y, float lower_x, float upper_x, float lower_y, float upper_y)    int n1, n2 ঘোষণা    float arr[50][50], arr_2[50], result ঘোষণা    n1 = (upper_x - lower_x) / step_x + 1 সেট    n2 = (upper_y - lower_y) / step_y + 1 সেট    Loop For i = 0 to n1-1       Loop For j = 0 to n2-1          arr[i][j] = fun(lower_x + i * step_x, lower_y + j * step_y) সেট       End    End    Loop For i = 0 to n1-1       arr_2[i] = 0 সেট       Loop For j = 0 to n2-1          IF (j == 0 || j == n2 - 1)             arr_2[i] += arr[i][j] সেট          End          Else IF (j % 2 == 0)             arr_2[i] += 2 * arr[i][j] সেট          End          Else             arr_2[i] += 4 * arr[i][j] সেট       End       arr_2[i] *= (step_y / 3) সেট    End    result = 0 সেট    Loop For i = 0 to n1-1       IF (i == 0 || i == n1 - 1)          result += arr_2[i] সেট       End       Else IF (i % 2 == 0)          result += 2 * arr_2[i] সেট       End       Else          result += 4 * arr_2[i] সেট       End       result *= (step_x / 3) সেট    End    return result Step 2→ main() এ    step_x = 1.2 ঘোষণা    step_y = 0.54 ঘোষণা    lower_x = 1.3 ঘোষণা    upper_x = 2.1 ঘোষণা    lower_y = 1.0 ঘোষণা    upper_y = 2.1 ঘোষণা    doubleIntegral(step_x, step_y, lower_x, upper_x, lower_y, upper_y) কল Stop

উদাহরণ

#include <bits/stdc++.h> using namespace std; float fun(float x, float y) {     return pow(pow(x, 4) + pow(y, 5), 0.5); } // দ্বি-অভিশ্লেষণের মান নির্ণয়ের ফাংশন float doubleIntegral(float step_x, float step_y, float lower_x, float upper_x, float lower_y, float upper_y) {     int n1, n2;     float arr[50][50], arr_2[50], result;     n1 = (upper_x - lower_x) / step_x + 1;     n2 = (upper_y - lower_y) / step_y + 1;     for (int i = 0; i < n1; ++i) {         for (int j = 0; j < n2; ++j) {             arr[i][j] = fun(lower_x + i * step_x, lower_y + j * step_y);         }     }     for (int i = 0; i < n1; ++i) {         arr_2[i] = 0;         for (int j = 0; j < n2; ++j) {             if (j == 0 || j == n2 - 1)                 arr_2[i] += arr[i][j];             else if (j % 2 == 0)                 arr_2[i] += 2 * arr[i][j];             else                 arr_2[i] += 4 * arr[i][j];         }         arr_2[i] *= (step_y / 3);     }     result = 0;     for (int i = 0; i < n1; ++i) {         if (i == 0 || i == n1 - 1)             result += arr_2[i];         else if (i % 2 == 0)             result += 2 * arr_2[i];         else             result += 4 * arr_2[i];     }     result *= (step_x / 3);     return result; } int main() {     float step_x = 1.2; // x-এর ধাপ     float step_y = 0.54; // y-এর ধাপ     float lower_x = 1.3; // x-এর নিম্ন সীমা     float upper_x = 2.1; // x-এর উর্ধ্ব সীমা     float lower_y = 1.0; // y-এর নিম্ন সীমা     float upper_y = 2.1; // y-এর উর্ধ্ব সীমা     cout<<"double integration is : "<<(step_x, step_y, lower_x, upper_x, lower_y, upper_y);     return 0; }

আউটপুট

double integration is : 2.1

  1. C++-এ রিকারশন ব্যবহার করে ট্রির সাইজ ক্যালকুলেট করার প্রোগ্রাম

  2. C++ প্রোগ্রাম: গ্রাফের এজ কভার ক্যালকুলেট করা

  3. C++-এ সমবাহু ত্রিভুজের সার্কামফারেন্স সার্কেলের এলাকা বের করার প্রোগ্রাম

  4. C++-এ float এবং double তুলনা করা (Comparing Float and Double)