मैट्रिक्स के डिटरमिनेंट का उपयोग यह पता लगाने के लिए किया जा सकता है कि यह इनवर्टिबल है या नहीं। यदि डिटरमिनेंट शून्येतर है तो मैट्रिक्स इनवर्टिबल होता है। इसलिए यदि डिटरमिनेंट शून्य आता है, तो मैट्रिक्स इनवर्टिबल नहीं है। उदाहरण के लिए:
दिया गया मैट्रिक्स है: 4 2 1 2 1 1 9 3 2 उपरोक्त मैट्रिक्स का डिटरमिनेंट है: 3 तो मैट्रिक्स इनवर्टिबल है।
एक प्रोग्राम जो जांचता है कि मैट्रिक्स इनवर्टिबल है या नहीं, निम्नलिखित है।
उदाहरण
#include<iostream> #include<math.h> using namespace std; int determinant( int matrix[10][10], int n) { int det = 0; int submatrix[10][10]; if (n == 2) return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1])); else { for (int x = 0; x < n; x++) { int subi = 0; for (int i = 1; i < n; i++) { int subj = 0; for (int j = 0; j < n; j++) { if (j == x) continue; submatrix[subi][subj] = matrix[i][j]; subj++; } subi++; } det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 )); } } return det; } int main() { int n, d, i, j; int matrix[10][10]; cout << "मैट्रिक्स का आकार दर्ज करें:\n"; cin >> n; cout << "मैट्रिक्स के एलिमेंट्स दर्ज करें:\n"; for (i = 0; i < n; i++) for (j = 0; j < n; j++) cin >> matrix[i][j]; cout<<"दर्ज किया गया मैट्रिक्स है:"<<endl; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) cout << matrix[i][j] <<" "; cout<<endl; } d = determinant(matrix, n); cout<<"मैट्रिक्स का डिटरमिनेंट है "<< d <<endl; if( d == 0 ) cout<<"यह मैट्रिक्स इनवर्टिबल नहीं है क्योंकि डिटरमिनेंट शून्य है"; else cout<<"यह मैट्रिक्स इनवर्टिबल है क्योंकि डिटरमिनेंट शून्य नहीं है"; return 0; } आउटपुट
मैट्रिक्स का आकार दर्ज करें: 3 मैट्रिक्स के एलिमेंट्स दर्ज करें: 1 2 3 2 1 2 1 1 4 दर्ज किया गया मैट्रिक्स है: 1 2 3 2 1 2 1 1 4 मैट्रिक्स का डिटरमिनेंट है -7 यह मैट्रिक्स इनवर्टिबल है क्योंकि डिटरमिनेंट शून्य नहीं है
उपरोक्त प्रोग्राम में, main() फ़ंक्शन में मैट्रिक्स का आकार और एलिमेंट्स प्रदान किए जाते हैं। फिर determinant() फ़ंक्शन को कॉल किया जाता है। यह मैट्रिक्स का डिटरमिनेंट लौटाता है जिसे d में संग्रहीत किया जाता है। यदि डिटरमिनेंट 0 है, तो मैट्रिक्स इनवर्टिबल नहीं है और यदि डिटरमिनेंट 0 नहीं है, तो मैट्रिक्स इनवर्टिबल है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित होता है।
cout << "मैट्रिक्स का आकार दर्ज करें:\n"; cin >> n; cout << "मैट्रिक्स के एलिमेंट्स दर्ज करें:\n"; for (i = 0; i < n; i++) for (j = 0; j < n; j++) cin >> matrix[i][j]; cout<<"दर्ज किया गया मैट्रिक्स है:"<<endl; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) cout << matrix[i][j] <<" "; cout<<endl; } d = determinant(matrix, n); cout<<"मैट्रिक्स का डिटरमिनेंट है "<< d <<endl; if( d == 0 ) cout<<"यह मैट्रिक्स इनवर्टिबल नहीं है क्योंकि डिटरमिनेंट शून्य है"; else cout<<"यह मैट्रिक्स इनवर्टिबल है क्योंकि डिटरमिनेंट शून्य नहीं है"; determinant() फ़ंक्शन में, यदि मैट्रिक्स का आकार 2 है, तो डिटरमिनेंट की सीधे गणना की जाती है और मान लौटाया जाता है। यह निम्नलिखित है।
if (n == 2) return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
यदि मैट्रिक्स का आकार 2 नहीं है, तो डिटरमिनेंट की गणना रिकर्सिव रूप से की जाती है। x, i और j लूप वेरिएबल्स के साथ 3 नेस्टेड फॉर लूप्स का उपयोग किया जाता है। इन लूप्स का उपयोग डिटरमिनेंट की गणना के लिए किया जाता है और determinant() फ़ंक्शन को आंतरिक डिटरमिनेंट की गणना के लिए रिकर्सिवली कॉल किया जाता है और फिर इसे बाहरी मान से गुणा किया जाता है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित होता है।
for (int x = 0; x < n; x++) { int subi = 0; for (int i = 1; i < n; i++) { int subj = 0; for (int j = 0; j < n; j++) { if (j == x) continue; submatrix[subi][subj] = matrix[i][j]; subj++; } subi++; } det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 )) }