Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ प्रोग्राम एक मैट्रिक्स के निर्धारक की गणना करने के लिए

एक वर्ग मैट्रिक्स के निर्धारक की गणना इसके तत्व मूल्यों का उपयोग करके की जा सकती है। मैट्रिक्स A के सारणिक को det(A) के रूप में निरूपित किया जा सकता है और इसे ज्यामिति में मैट्रिक्स द्वारा वर्णित रैखिक परिवर्तन का स्केलिंग कारक कहा जा सकता है।

मैट्रिक्स के निर्धारक का एक उदाहरण इस प्रकार है।

The matrix is:
3 1
2 7
The determinant of the above matrix = 7*3 - 2*1
= 21 - 2
= 19
So, the determinant is 19.

मैट्रिक्स के निर्धारक की गणना करने का कार्यक्रम इस प्रकार है।

उदाहरण

#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, i, j;
   int matrix[10][10];
   cout << "Enter the size of the matrix:\n";
   cin >> n;
   cout << "Enter the elements of the matrix:\n";
   for (i = 0; i < n; i++)
   for (j = 0; j < n; j++)
   cin >> matrix[i][j];
   cout<<"The entered matrix is:"<<endl;
   for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++)
      cout << matrix[i][j] <<" ";
      cout<<endl;
   }
   cout<<"Determinant of the matrix is "<< determinant(matrix, n);
   return 0;
}

आउटपुट

Enter the size of the matrix: 3
Enter the elements of the matrix:
7 1 3
2 4 1
1 5 1
The entered matrix is:
7 1 3
2 4 1
1 5 1
Determinant of the matrix is 10

उपरोक्त कार्यक्रम में, मैट्रिक्स के आकार और तत्वों को मुख्य () फ़ंक्शन में प्रदान किया गया है। तब फ़ंक्शन निर्धारक () कहा जाता है। यह प्रदर्शित होने वाले मैट्रिक्स के निर्धारक को लौटाता है। यह निम्नलिखित कोड स्निपेट के साथ प्रदर्शित होता है।

cout << "Enter the size of the matrix:\n";
cin >> n;
cout <<"Enter the elements of the matrix:\n";
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
cin >> matrix[i][j];
cout<<"The entered matrix is:"<<endl;
for (i = 0; i < n; i++) {
   for (j = 0; j < n; j++)
   cout << matrix[i][j] <<" ";
   cout<<endl;
}
cout<<"Determinant of the matrix is "<< determinant(matrix, n);

फ़ंक्शन निर्धारक () में, यदि मैट्रिक्स का आकार 2 है, तो निर्धारक की सीधे गणना की जाती है और मान वापस कर दिया जाता है। यह इस प्रकार दिखाया गया है।

if (n == 2)
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));

यदि मैट्रिक्स का आकार 2 नहीं है, तो निर्धारक की गणना पुनरावर्ती रूप से की जाती है। लूप चर x, i और j के साथ उपयोग किए जाने वाले लूप के लिए 3 नेस्टेड हैं। इन लूपों का उपयोग निर्धारक की गणना करने के लिए किया जाता है और फ़ंक्शन निर्धारक () को आंतरिक निर्धारक की गणना करने के लिए पुनरावर्ती रूप से कहा जाता है और फिर इसे बाहरी मान से गुणा किया जाता है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित किया जाता है।

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 ));
}

  1. सी++ में इनवॉल्यूटरी मैट्रिक्स की जांच करने का कार्यक्रम

    एक मैट्रिक्स दिया गया है M[r][c], r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को दर्शाता है जैसे कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें यह जांचना है कि दिया गया वर्ग मैट्रिक्स एक इन्वॉल्वरी मैट्रिक्स . है या नहीं या नहीं। इनवॉल्यूटरी मैट्रिक्स एक मैट्रिक्स को इनवॉल्वरी . कहा जाता है म

  1. C++ में idempotent मैट्रिक्स की जांच करने का कार्यक्रम

    एक मैट्रिक्स दिया गया है M[r][c], r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को दर्शाता है जैसे कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें यह जांचना है कि दिया गया वर्ग मैट्रिक्स एक बेकार मैट्रिक्स . है या नहीं या नहीं। बेकार मैट्रिक्स एक मैट्रिक्स M को बेवकूफ मैट्रिक्स . कहा जाता है य

  1. सी ++ प्रोग्राम एडजेंसी मैट्रिक्स को लागू करने के लिए

    एक ग्राफ का आसन्न मैट्रिक्स आकार V x V का एक वर्ग मैट्रिक्स है। V ग्राफ G के शीर्षों की संख्या है। इस मैट्रिक्स में प्रत्येक पक्ष में V कोने चिह्नित हैं। यदि ग्राफ़ में i से j कोने तक कुछ किनारे हैं, तो ith पर आसन्न मैट्रिक्स में पंक्ति और जम्मूवें कॉलम में यह 1 (या भारित ग्राफ़ के लिए कुछ गैर-शून्