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

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


मैट्रिक्स गुणन (Matrix Multiplication)

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

एल्गोरिदम

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

मैट्रिक्स सामान्यीकरण (Matrix Normalization)

मान लीजिए हमारे पास एक 2x3 मैट्रिक्स है:
4 5 6
1 2 3

सामान्यीकृत मैट्रिक्स होगा:
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[row1][col1];
            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 में सरणी के निचले और ऊपरी त्रिकोणीय मैट्रिक्स प्रिंट करने का प्रोग्राम C में सरणी के निचले और ऊपरी त्रिकोणीय मैट्रिक्स प्रिंट करने का प्रोग्राम

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

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

    समस्या विवरण आकार 2x2 का एक ऐरे दिया गया है और चुनौती ऐरे में संग्रहीत सभी कोने के तत्वों का योग प्रिंट करना है। उदाहरण इनपुट: मैट्रिक्स तत्व दर्ज करें: 10 2 10 2 3 4 10 4 10 आउटपुट: मैट्रिक्स का योग है: 40 एल्गोरिदम शुरुआत चरण 1: पंक्तियों और कॉलम के लिए मैक्रो बनाएं #define row 3 और #define col

  1. C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें

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