Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम में मैट्रिक्स गुणन और सामान्यीकरण

मैट्रिक्स गुणन

अब मैट्रिक्स गुणन की प्रक्रिया पर चर्चा की गई है। मैट्रिक्स गुणन केवल तभी किया जा सकता है, जब यह कुछ शर्तों को पूरा करता हो। मान लीजिए दो मैट्रिक्स P और Q हैं, और उनके आयाम P (a x b) और Q (z x y) हैं, तो परिणामी मैट्रिक्स पाया जा सकता है यदि और केवल यदि b =x हो। तब परिणामी आव्यूह R का क्रम (m x q) होगा।

एल्गोरिदम

matrixMultiply(P, Q):
Assume dimension of P is (a x b), dimension of Q is (z x y)
Begin
   if b is not same as z, then exit
   otherwise define R matrix as (a x y)
   for i in range 0 to a - 1, do
      for j in range 0 to y – 1, do
         for k in range 0 to z, do
            R[i, j] = R[i, j] + (P[i, k] * Q[k, j])
         done
      done
   done
End

मैट्रिक्स सामान्यीकरण

Suppose we have a 2x3 matrix:
4 5 6
1 2 3 The normalized matrix would be:
4/sqrt(pow(5,2) + pow(6,2)) 5/sqrt(pow(5,2) + pow(6,2)) 6/sqrt(pow(5,2) + pow(6,2))
1/sqrt(pow(2,2) + pow(3,2)) 2/sqrt(pow(2,2) + pow(3,2)) 3/sqrt(pow(2,2) + pow(3,2))

उदाहरण

#include <stdio.h>
#include <math.h>
int main() {
   int row, col, row1, col1;
   int assignMatrix[50][50], rowAdd[100] = {0};
   long long int a, square[50] = {0};
   double norm[50][50], k;
   printf("Enter size of a matrix\n");
   scanf("%d %d", &row, &col);
   printf("Enter matrix of size %dX%d\n", row, col);
   for ( row1 = 0; row1 < row; row1++) {
      for (col1 = 0; col1 < col; col1++) {
         scanf("%d", &assignMatrix[row1][col1]);
      }
   }
   printf("\nrows: %d cols: %d elements:\n",row,col);
   for( row1 = 0; row1 < row; row1++) {
      for( col1 = 0; col1 < col; col1++) {
         printf("%d ", assignMatrix[row1][col1]);
      }
      printf("\n");
   }
   for (row1 = 0; row1 < row; row1++) {
      for (col1 = 1; col1 < col; col1++) {
         a = assignMatrix[r][c];
         square[row1] += a * a;
      }
      printf("Sum of squares of row %d: %lld\n",row1,square[row1]);
   }
   for ( row1 = 0; row1 < row; row1++ ) {
      k = 1.0 / sqrt(square[row1]);
      for( col1 = 0; col1 < col; col1++ ) {
         norm[row1][col1] = k * assignMatrix[row1][col1] ;
      }
   }
   printf("\nNormalized Matrix:\n");
   for( row1 = 0; row1 < row; row1++) {
      for( col1 = 0; col1 < col; col1++) {
         printf("%.3lf ", norm[row1][col1]);
      }
      printf("\n");
   }
   return 0;
}

आउटपुट

Enter size of a matrix
2
3
Enter matrix of size 2X3
4 5 6
1 2 3
rows: 2 cols: 3 elements:
4 5 6
1 2 3
Sum of squares of row 0: 61
Sum of squares of row 1: 13
Normalized Matrix:
0.512 0.640 0.768
0.277 0.555 0.832
Process returned 0 (0x0) execution time : 12.446 s
Press any key to continue.

  1. C . में एक सरणी के निचले त्रिकोणीय और ऊपरी त्रिकोणीय मैट्रिक्स को मुद्रित करने का कार्यक्रम

    कार्यक्रम विवरण एक सरणी के निचले त्रिकोणीय मैट्रिक्स और ऊपरी त्रिकोणीय मैट्रिक्स को मुद्रित करने के लिए एक प्रोग्राम लिखें। त्रिकोणीय मैट्रिक्स त्रिकोणीय मैट्रिक्स वह होता है जो या तो निचला त्रिकोणीय या ऊपरी त्रिकोणीय होता है। निचला त्रिकोणीय मैट्रिक्स एक वर्ग मैट्रिक्स को निचला त्रिकोणीय कहा

  1. सी प्रोग्राम में कोने के तत्वों और उनके योग को 2-डी मैट्रिक्स में प्रिंट करें।

    आकार 2X2 की एक सरणी को देखते हुए और चुनौती एक सरणी में संग्रहीत सभी कोने तत्वों के योग को मुद्रित करना है। एक मैट्रिक्स मैट [आर] [सी] मान लें, कुछ पंक्ति आर और कॉलम सी के साथ पंक्ति और कॉलम 0 से शुरू होता है, तो इसके कोने तत्व होंगे; चटाई [0] [0], चटाई [0] [सी -1], चटाई [आर -1] [0], चटाई [आर -1] [स

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

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