रैखिक बीजगणित में मैट्रिक्स M[][] को सिमेट्रिक मैट्रिक्स कहा जाता है यदि और केवल यदि मैट्रिक्स का ट्रांसपोज मैट्रिक्स के बराबर हो। मैट्रिक्स का ट्रांसपोज तब होता है जब हम मैट्रिक्स को उसके विकर्ण पर फ्लिप करते हैं, जिसके परिणामस्वरूप उसकी पंक्ति और कॉलम इंडेक्स स्विच हो जाते हैं।
नीचे सिमेट्रिक मैट्रिक्स का उदाहरण -
$$\begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end {bmatrix} \Rightarrow \begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end{bmatrix}$$
उपरोक्त मैट्रिक्स सिमेट्रिक मैट्रिक्स है, हमने बाईं ओर का मैट्रिक्स लिया और उसका ट्रांसपोज किया और परिणाम वही है जो मैट्रिक्स के बराबर है।
उदाहरण
इनपुट: arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } }; आउटपुट: यह एक सिमेट्रिक मैट्रिक्स है इनपुट: arr1[][n] = { { 1, 7, 3 }, { 2, 9, 5 }, { 4, 6, 8 } }; आउटपुट: यह सिमेट्रिक मैट्रिक्स नहीं है दृष्टिकोण
हम बस इन चरणों का पालन कर सकते हैं -
- 1. एक मैट्रिक्स लें और उसका ट्रांसपोज दूसरी मैट्रिक्स में स्टोर करें।
- 2. जांचें कि परिणामी मैट्रिक्स इनपुट मैट्रिक्स के समान है या नहीं।
एल्गोरिदम
Start Step 1 -> मैक्रो डिफाइन करें #define n 10 Step 2 -> मैट्रिक्स का ट्रांसपोज खोजने का फंक्शन डिक्लेयर करें void transpose(int arr1[][n], int arr2[][n], int a) Loop int i = 0 से i < a और i++ तक Loop int j = 0 से j < a और j++ तक arr2[i][j] = arr1[j][i] सेट करें End End Step 3 -> सिमेट्रिक है या नहीं जांचने का फंक्शन डिक्लेयर करें bool check(int arr1[][n], int a) वेरिएबल डिक्लेयर करें int arr2[a][n] transpose(arr1, arr2, a) कॉल करें Loop int i = 0 से i < a और i++ तक Loop int j = 0 से j < a और j++ तक IF (arr1[i][j] != arr2[i][j]) return false End End End Return true Step 4 -> main() में int arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } } वेरिएबल डिक्लेयर करें IF (check(arr1, 3)) यह एक सिमेट्रिक मैट्रिक्स है प्रिंट करें Else यह सिमेट्रिक मैट्रिक्स नहीं है प्रिंट करें Stopउदाहरण
#include <iostream> #define n 10 using namespace std; //मैट्रिक्स का ट्रांसपोज खोजें void transpose(int arr1[][n], int arr2[][n], int a){ for (int i = 0; i < a; i++) for (int j = 0; j < a; j++) arr2[i][j] = arr1[j][i]; } //सिमेट्रिक है या नहीं जांचें bool check(int arr1[][n], int a){ int arr2[a][n]; transpose(arr1, arr2, a); for (int i = 0; i < a; i++) for (int j = 0; j < a; j++) if (arr1[i][j] != arr2[i][j]) return false; return true; } int main(){ int arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } }; if (check(arr1, 3)) cout << "its a symmetric matrix"; else cout << "its not a symmetric matrix"; return 0; }आउटपुट
its a symmetric matrix