কম্পিউটার

ম্যাট্রিক্স একবচন কি না তা পরীক্ষা করার জন্য সি প্রোগ্রাম


ম্যাট্রিক্সকে ম্যাট[সারি][কলাম] হিসাবে দেওয়া হলে, আমাদের কাজ হল প্রদত্ত ম্যাট্রিক্সটি একবচন কিনা তা ফাংশনের মাধ্যমে পরীক্ষা করা এবং ফলাফল প্রদর্শন করা।

একবচন ম্যাট্রিক্স হল একটি ম্যাট্রিক্স যার নির্ধারক শূন্য এবং যদি নির্ধারক শূন্য না হয় তাহলে ম্যাট্রিক্সটি অ-একবচন।

তাই ম্যাট্রিক্স একবচন নাকি অ-একবচন তা খুঁজে বের করতে আমাদের প্রথমে নির্ধারক গণনা করতে হবে। একটি ম্যাট্রিক্সের নির্ধারককে −

হিসাবে গণনা করা যেতে পারে

$$M1[3][3]\:=\:\begin{bmatrix}a &b &c \\d &e &f \\g &h &i \end{bmatrix}$$

|m1| =a(e*i - f*h) - b(d*i - f*g) + c(d*h - e*g)

উদাহরণ

Input-: mat[3][3]= { 4, 10, 1 },
   { 0, 2, 3 },
   { 1, 4, -3 }
Output-: matrix is non-singular
Input-: mat[3][3]= { 0, 0, 0 },
   { 10, 20, 30 },
   { 1, 4, -3 }
Output-: matrix is singular
Since the entire first row is 0 the determinant will be zero only

অ্যালগরিদম

Start
In function cofactor(int matrix[N][N], int matrix2[N][N], int p, int q, int n)
{
   Step 1-> Declare and initialize i = 0, j = 0, row, col
   Step 2-> Loop For row = 0 and row < n and row++
   Loop For col = 0 and col < n and col++
      If row != p && col != q then,
      Set  matrix2[i][j++] as matrix[row][col]
         If j == n – 1 then,
            Set j = 0
            Increment i by 1
         End for
      End for
In function int check_singular(int matrix[N][N], int n)
   Step 1-> Declare and initialize int D = 0;
   Step 2-> If n == 1 then,
      Return matrix[0][0]
   Step 3-> Declare matrix2[N][N], sign = 1
   Step 4-> Loop For f = 0 and f < n and f++
      Call function cofactor(matrix, matrix2, 0, f, n)
         Set D += sign * matrix[0][f] * check_singular(matrix2, n - 1)
         Set sign = -sign
      End loop
   Step 5-> Return D
In main()
   Step 1-> Declare and initialize a matrix[N][N]
   Step 2-> If call check_singular(matrix, N) returns non 0 value then,
      Print "Matrix is Singular "
   Step 3-> Else
      Print "Matrix is non-Singular "
Stop

উদাহরণ

cofactorsint cofactor(int matrix[N][N], int matrix2[N][N], int p, int q, int n) খুঁজে পেতে
#include <stdio.h>
#define N 4
//to find the cofactors
int cofactor(int matrix[N][N], int matrix2[N][N], int p, int q, int n) {
   int i = 0, j = 0;
   int row, col;
   // Looping for each element of the matrix
   for (row = 0; row < n; row++) {
      for (col = 0; col < n; col++) {
         // Copying into temporary matrix only
         // those element which are not in given
         // row and column
         if (row != p && col != q) {
            matrix2[i][j++] = matrix[row][col];
            // Row is filled, so increase row
            // index and reset col index
            if (j == n - 1) {
               j = 0;
               i++;
            }
         }
      }
   }
   return 0;
}
/* Recursive function to check if matrix[][] is singular or not. */
int check_singular(int matrix[N][N], int n) {
   int D = 0; // Initialize result
   // Base case : if matrix contains single element
   if (n == 1)
   return matrix[0][0];
   int matrix2[N][N]; // To store cofactors
   int sign = 1; // To store sign multiplier
   // Iterate for each element of first row
   for (int f = 0; f < n; f++) {
      // Getting Cofactor of matrix[0][f]
      cofactor(matrix, matrix2, 0, f, n);
      D += sign * matrix[0][f] * check_singular(matrix2, n - 1);
      // terms are to be added with alternate sign
      sign = -sign;
   }
   return D;
}
// Driver program to test above functions
int main() {
   int matrix[N][N] = { { 4, 10, 1 },
   { 0, 2, 3 },
   { 1, 4, -3 } };
   if (check_singular(matrix, N))
      printf("Matrix is Singular\n");
   else
      printf("Matrix is non-Singular\n");
   return 0;
}

আউটপুট

উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Matrix is non-Singular

  1. একটি অ্যারে প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  2. প্লাস পারফেক্ট নম্বর চেক করতে সি প্রোগ্রাম

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

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