कंप्यूटर ग्राफिक्स, क्रिप्टोग्राफी और वायरलेस संचार सहित कई विविध क्षेत्रों में मैट्रिसेस महत्वपूर्ण भूमिका निभाते हैं। एक मैट्रिक्स पंक्तियों और स्तंभों में व्यवस्थित संख्याओं का एक आयताकार सरणी है, जिसका उपयोग गणितीय वस्तु या उसकी संपत्ति का प्रतिनिधित्व करने के लिए किया जाता है।
उन पर किए जाने वाले कार्यों में से एक मैट्रिक्स गुणन है। यह कई क्षेत्रों में उपयोग करता है जैसे वायुगतिकी संगणना, सिग्नल प्रोसेसिंग, इमेज प्रोसेसिंग और भूकंपीय विश्लेषण। लेकिन वास्तव में आप मेट्रिसेस को कैसे गुणा करते हैं?
दो मैट्रिसेस को कैसे गुणा करें
आप पंक्तियों की संख्या (एम) और कॉलम की संख्या (एन) के उत्पाद के रूप में मैट्रिक्स के क्रम का प्रतिनिधित्व करते हैं। दो आव्यूहों का गुणा करने के लिए, पहले आव्यूह के स्तंभों की संख्या दूसरे आव्यूह की पंक्तियों के बराबर होनी चाहिए।
यदि आपके पास दो आव्यूह हैं, क्रम m × n का आव्यूह A और क्रम n × p का आव्यूह, गुणन आव्यूह का क्रम m × p होगा। उदाहरण के लिए, मान लें कि आपके पास एक मैट्रिक्स ए है जिसमें दो पंक्तियाँ (एम) और तीन कॉलम (एन) हैं और एक मैट्रिक्स बी है जिसमें तीन पंक्तियाँ (एन) और दो कॉलम (पी) हैं। परिणामी मैट्रिक्स में दो पंक्तियाँ और दो स्तंभ होंगे:
आप डॉट उत्पाद का उपयोग करके दो आव्यूहों का गुणा करते हैं। परिणामी मैट्रिक्स के पहले तत्व का मान प्राप्त करने के लिए, पहली मैट्रिक्स की पहली पंक्ति के तत्वों को गुणा करें और दूसरे मैट्रिक्स तत्व की पहली पंक्ति को तत्व के रूप में जोड़ें:
(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58
इसी तरह, दूसरे तत्व के लिए, पहले मैट्रिक्स की पहली पंक्ति और दूसरे मैट्रिक्स के दूसरे कॉलम को गुणा करें:
(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64
तीसरे तत्व के लिए, पहले मैट्रिक्स की दूसरी पंक्ति और दूसरे मैट्रिक्स के पहले कॉलम को गुणा करें:
(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139
चौथे तत्व के लिए, पहले मैट्रिक्स की दूसरी पंक्ति और दूसरे मैट्रिक्स के दूसरे कॉलम को गुणा करें:
(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154
इस प्रकार, परिणामी मैट्रिक्स है:
आप मैट्रिसेस पर अलग-अलग ऑपरेशन के लिए अलग-अलग प्रोग्राम एक्सप्लोर कर सकते हैं और बना सकते हैं जैसे:
- दो मैट्रिसेस को जोड़ना और घटाना
- एक मैट्रिक्स के स्थानान्तरण का पता लगाना
- जाँच करें कि क्या दो मेट्रिसेस समान हैं
दो आव्यूहों को गुणा करने का एल्गोरिथम
किसी भी दो मैट्रिक्स के गुणन के लिए प्रोग्राम बनाने के लिए इस एल्गोरिथम का पालन करें:
- कार्यक्रम प्रारंभ करें।
- पहले मैट्रिक्स की पंक्तियों और स्तंभों को दर्ज करें।
- दूसरे मैट्रिक्स की पंक्तियों और स्तंभों को दर्ज करें।
- यदि आव्यूह गुणन के लिए असंगत हैं, तो एक त्रुटि प्रिंट करें और बाहर निकलें।
- एक मैट्रिक्स को परिभाषित करें और पहले मैट्रिक्स में संख्याएं दर्ज करें।
- दूसरे मैट्रिक्स को परिभाषित करें और दूसरे मैट्रिक्स में संख्या दर्ज करें।
- दो आव्यूहों के गुणन के परिणाम को संग्रहित करने के लिए एक आव्यूह को परिभाषित करें।
- पहले मैट्रिक्स की पंक्ति पर पुनरावृति करने के लिए एक लूप सेट करें।
- दूसरे मैट्रिक्स के कॉलम पर पुनरावृति करने के लिए एक आंतरिक लूप सेट करें।
- पहले मैट्रिक्स के कॉलम पर पुनरावृति करने के लिए एक और इनर लूप सेट करें।
- गुणा करें और सूत्र का उपयोग करके तत्वों को जोड़ें मूल [मैं] [जे] + = एम 1 [मैं] [के] * एम 2 [के] [जे] और गुणन के परिणाम को परिणामी मैट्रिक्स में संग्रहीत करें।
- परिणामी मैट्रिक्स प्रदर्शित करें।
- कार्यक्रम से बाहर निकलें।
C का उपयोग करके मैट्रिक्स गुणन कैसे करें
C का उपयोग करके मैट्रिक्स गुणन के लिए संपूर्ण स्रोत कोड इसमें मौजूद है गिटहब रिपॉजिटरी और उपयोग करने के लिए स्वतंत्र है।
संख्या इनपुट करने के लिए stdio लाइब्रेरी आयात करें और तदनुसार आउटपुट प्रदर्शित करें। घोषित करें मुख्य कार्य करें और उपयोगकर्ता को उपयोग करके दोनों मैट्रिक्स के लिए कॉलम की संख्या और पंक्तियों की संख्या दर्ज करने के लिए कहें प्रिंट () समारोह।
उपयोग स्कैनफ () इनपुट प्राप्त करने का कार्य। %डी दशमलव प्रारूप विनिर्देशक है जो यह सुनिश्चित करता है कि प्रोग्राम इनपुट को एक संख्या के रूप में पढ़ता है।
#शामिल करना
#शामिल करनाint यहाँमुख्य()
{
int यहाँ आर1, आर2, सी1, सी2;
printf("पंक्तियों की संख्या दर्ज करें के लिए पहला मैट्रिक्स:\n");
f("%d", &r1);
printf("स्तंभों की संख्या दर्ज करें के लिए पहला मैट्रिक्स:\n");
f("%d", और c1);
printf("पंक्तियों की संख्या दर्ज करें के लिए दूसरा मैट्रिक्स:\n");
f("%d", &r2);
printf("स्तंभों की संख्या दर्ज करें के लिए दूसरा मैट्रिक्स:\n");
f("%d", &c2);
जांचें कि मैट्रिक्स गुणा संभव है। यदि पहले मैट्रिक्स के स्तंभों की संख्या दूसरे मैट्रिक्स की पंक्तियों की संख्या के बराबर नहीं है, तो एक त्रुटि प्रदर्शित करें और बाहर निकलें।
अगर (सी 1! = आर 2) {
प्रिंटफ ("मैट्रिसेस को एक साथ गुणा नहीं किया जा सकता है");
बाहर निकलना(-1);
}
यदि सब कुछ अच्छा है, तो दो बहुआयामी सरणियों को परिभाषित करें, एम 1 और एम 2, उपयोगकर्ता द्वारा प्रदान किए गए आकार के साथ। उपयोगकर्ता को दोनों मैट्रिसेस के तत्वों को एक-एक करके दर्ज करने के लिए कहें। नेस्टेड का प्रयोग करें के लिए मैट्रिक्स की पंक्ति और स्तंभ दोनों के लिए इनपुट लेने के लिए लूप। लूप के लिए बाहरी मैट्रिक्स की पंक्तियों पर और मैट्रिक्स के कॉलम पर आंतरिक लूप पर पुनरावृत्त होता है।
int यहाँएम 1[आर 1][सी 1], एम 2[आर 2][सी2];
प्रिंटफ ("पहले मैट्रिक्स के तत्वों को दर्ज करें\n");के लिए (int यहाँ मैं = 0; मैं के लिए (int यहाँ जे = 0; जे स्कैनफ़("%डी", &एम 1 [मैं] [जे]);
}
}
प्रिंटफ ("दूसरे मैट्रिक्स के तत्वों को दर्ज करें\n");
के लिए (int यहाँ मैं = 0; मैं के लिए (int यहाँ जे = 0; जे स्कैनफ़("%डी",&एम 2 [मैं] [जे]);
}
}
तीसरे मैट्रिक्स को परिभाषित करें, एमयूएल, क्रम में r1 * c2 परिणाम संग्रहीत करने के लिए। नेस्टेड का प्रयोग करें के लिए गुणन करने के लिए लूप। लूप के लिए सबसे बाहरी पंक्तियों पर पुनरावृति करता है, अगला आंतरिक लूप स्तंभों पर पुनरावृत्त करता है, और अंतरतम गुणन करता है। सूत्र का प्रयोग करें मूल [मैं] [जे] + = एम 1 [मैं] [के] * एम 2 [के] [जे] मैट्रिक्स के तत्वों को गुणा करने के लिए।
सूत्र आशुलिपि ऑपरेटर का उपयोग करता है += जमा करना मुल [मैं] [जे] गणना अभिव्यक्ति के लिए और इसे स्टोर करें। इसमें जोड़ने से पहले परिणाम को शून्य पर प्रारंभ करना याद रखें।
int यहाँएमयूएल[आर 1][सी2];के लिए (int यहाँ मैं = 0; मैं के लिए (int यहाँ जे = 0; जे मुल [मैं] [जे] = 0;
के लिए (int यहाँ के = 0; के मूल [मैं] [जे] + = एम 1 [मैं] [के] * एम 2 [के] [जे];
}
}
}
लूप के लिए नेस्टेड का उपयोग करके गुणा मैट्रिक्स प्रदर्शित करें जो परिणामी मैट्रिसेस की पंक्तियों और स्तंभों पर पुनरावृत्त करता है। प्रत्येक पंक्ति को एक अलग पंक्ति पर प्रदर्शित करने के लिए नई-पंक्ति वर्ण (\n) का उपयोग करें। मुख्य समारोह और कार्यक्रम से बाहर निकलने के लिए 0 लौटें।
printf("गुणा मैट्रिक्स है: \n"); के लिए (int यहाँ मैं = 0; मैं के लिए (int यहाँ जे = 0; जे printf("%d\t", मुल[i][j]);
}
printf("\एन");
}
वापस करना0;
}
मैट्रिक्स गुणन कार्यक्रम का आउटपुट
जब आप मैट्रिक्स गुणन प्रोग्राम चलाते हैं तो आपको निम्न आउटपुट जैसा कुछ दिखाई देना चाहिए:
यदि आप अमान्य इनपुट दर्ज करते हैं, तो मैट्रिक्स गुणन विफल हो जाता है और आपको कुछ ऐसा दिखाई देगा:
मैट्रिसेस के कई उपयोग हैं
विभिन्न क्षेत्र विज्ञान, वाणिज्य, अर्थशास्त्र, भूविज्ञान, रोबोटिक्स और एनीमेशन जैसे मैट्रिक्स का उपयोग करते हैं। आप रैखिक समीकरणों को हल करने और रोटेशन या अनुवाद जैसे परिवर्तनों का प्रतिनिधित्व करने के लिए मुख्य रूप से गणित में मैट्रिसेस का उपयोग करेंगे। मैट्रिक्स प्रतिबिंब और अपवर्तन की मात्रा की गणना कर सकते हैं और साथ ही विद्युत सर्किट में एसी नेटवर्क समीकरणों को हल कर सकते हैं।
शैक्षिक अनुप्रयोगों के अलावा, आप सर्वेक्षण डेटा, वोटिंग डेटा, कंप्यूट आइटम सूचियों और अन्य डेटा सेट के विश्लेषण के लिए मैट्रिसेस का उपयोग कर सकते हैं।