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

C প্রোগ্রাম: ম্যাট্রিক্স সিঙ্গুলার কিনা যাচাই করুন

সংক্ষিপ্ত বিবরণ

এই প্রোগ্রামটি একটি বর্গ ম্যাট্রিক্সের সিদ্ধান্ত (determinant) বের করে সেটি সিঙ্গুলার (সিদ্ধান্ত শূন্য) কিনা তা নির্ধারণ করে।

সিদ্ধান্তের সূত্র (৩×৩ ম্যাট্রিক্স)

|M| = a(ei − fh) − b(di − fg) + c(dh − eg)

অ্যালগরিদম (কফ্যাক্টর পদ্ধতি)

  1. বেস কেস: ১×১ ম্যাট্রিক্সের সিদ্ধান্ত = একমাত্র উপাদান
  2. প্রথম সারি của প্রতিটি উপাদানের জন্য কফ্যাক্টর ম্যাট্রিক্স তৈরি করুন
  3. রিকার্সিভভাবে সিদ্ধান্ত হিসাব করুন: D += sign × matrix[0][f] × determinant(cofactor)
  4. সাইন প্রতিবার বদলান (+/−)
  5. সিদ্ধান্ত শূন্য হলে সিঙ্গুলার, অন্যথায় নন-সিঙ্গুলার

উদাহরণ

Input: {{4,10,1},{0,2,3},{1,4,-3}} → Output: Matrix is non-Singular
Input: {{0,0,0},{10,20,30},{1,4,-3}} → Output: Matrix is Singular

সি কোড

#include <stdio.h>
#define N 4

int cofactor(int matrix[N][N], int matrix2[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) {
                matrix2[i][j++] = matrix[row][col];
                if (j == n - 1) { j = 0; i++; }
            }
        }
    }
    return 0;
}

int determinant(int matrix[N][N], int n) {
    int D = 0;
    if (n == 1) return matrix[0][0];
    int matrix2[N][N];
    int sign = 1;
    for (int f = 0; f < n; f++) {
        cofactor(matrix, matrix2, 0, f, n);
        D += sign * matrix[0][f] * determinant(matrix2, n - 1);
        sign = -sign;
    }
    return D;
}

int main() {
    int matrix[N][N] = {{4,10,1},{0,2,3},{1,4,-3}};
    if (determinant(matrix, 3))
        printf("Matrix is Singular\n");
    else
        printf("Matrix is non-Singular\n");
    return 0;
}

আউটপুট

Matrix is non-Singular
  1. C প্রোগ্রাম: অ্যারে প্যালিনড্রোম কিনা চেক করা

  2. C প্রোগ্রাম: প্লাস পারফেক্ট নম্বর (Plus Perfect Number) চেক করা

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

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