কম্পিউটার

একটি ম্যাট্রিক্স C++ এ ইনভার্টেবল কিনা তা পরীক্ষা করুন


এখানে আমরা দেখব কিভাবে একটি ম্যাট্রিক্স ইনভার্টেবল কিনা তা পরীক্ষা করা যায়। যদি একটি ম্যাট্রিক্স M হয়, তাহলে উল্টানো ম্যাট্রিক্স M-1 হবে −

$$M^-1=\frac{adj(M)}{|M\lvert}$$

তাই যদি M-এর নির্ধারক অ-শূন্য হয়, তবেই আমরা বিপরীত পেতে পারি, অন্যথায়, আমরা এর বিপরীত পাব না। সুতরাং এখানে আমাদের নির্ণায়কটি অ-শূন্য বা না পরীক্ষা করতে হবে। একটি নির্ধারক সন্ধান করা একটি পুনরাবৃত্তিমূলক প্রক্রিয়া। আমাদের সাবম্যাট্রিক্স খুঁজে বের করতে হবে, তারপর এর নির্ধারক খুঁজে বের করতে হবে, তারপর চূড়ান্ত গণনার জন্য সেই ফলাফলটি ব্যবহার করতে হবে। আরও ভালো ধারণা পেতে কোডটি দেখি।

উদাহরণ

#include <iostream>
#define N 4
using namespace std;
void findCoFactor(int mat[N][N], int mat2[N][N], int p, int q, int n) {
   int i = 0, j = 0;
   for (int row = 0; row < n; row++) {
      for (int col = 0; col < n; col++) {
         if (row != p && col != q) {
            mat2[i][j++] = mat[row][col];
            if (j == n - 1) {
               j = 0;
               i++;
            }
         }
      }
   }
}
int getDeterminant(int mat[N][N], int n) {
   int determinant = 0;
   if (n == 1)
      return mat[0][0];
   int temp[N][N];
   int sign = 1;
   for (int f = 0; f < n; f++) {
      findCoFactor(mat, temp, 0, f, n);
      determinant += sign * mat[0][f] * getDeterminant(temp, n - 1);
      sign = -sign;
   }
   return determinant;
}
bool isMatrixInvertible(int mat[N][N], int n) {
   if (getDeterminant(mat, N) != 0)
      return true;
   else
      return false;
}
int main() {
   int matrix[N][N] = {
      { 1, 0, 2, -1 },
      { 3, 0, 0, 5 },
      { 2, 1, 4, -3 },
      { 1, 0, 5, 0 }
   };
   if (isMatrixInvertible(matrix, N))
      cout << "The matrix is invetible";
   else
      cout << "The matrix is not invetible";
}

আউটপুট

The matrix is invetible

  1. C++ এ ম্যাট্রিক্সের জিগজ্যাগ (বা তির্যক) ট্রাভার্সাল

  2. C++ এ স্পাইরাল ম্যাট্রিক্স III

  3. C++ এ ইনভোলুটরি ম্যাট্রিক্স চেক করার প্রোগ্রাম

  4. C++-এ idempotent ম্যাট্রিক্স চেক করার প্রোগ্রাম