ম্যাট্রিক্সকে ম্যাট[সারি][কলাম] হিসাবে দেওয়া হলে, আমাদের কাজ হল প্রদত্ত ম্যাট্রিক্সটি একবচন কিনা তা ফাংশনের মাধ্যমে পরীক্ষা করা এবং ফলাফল প্রদর্শন করা।
একবচন ম্যাট্রিক্স হল একটি ম্যাট্রিক্স যার নির্ধারক শূন্য এবং যদি নির্ধারক শূন্য না হয় তাহলে ম্যাট্রিক্সটি অ-একবচন।
তাই ম্যাট্রিক্স একবচন নাকি অ-একবচন তা খুঁজে বের করতে আমাদের প্রথমে নির্ধারক গণনা করতে হবে। একটি ম্যাট্রিক্সের নির্ধারককে −
হিসাবে গণনা করা যেতে পারে$$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