रैखिक बीजगणित में एक मैट्रिक्स M[][] को एक सममित मैट्रिक्स कहा जाता है यदि और केवल तभी जब मैट्रिक्स का स्थानान्तरण मैट्रिक्स के बराबर हो। मैट्रिक्स का ट्रांसपोज़ तब होता है जब हम मैट्रिक्स को उसके विकर्ण पर फ़्लिप करते हैं, जिसके परिणामस्वरूप मैट्रिक्स की पंक्ति और कॉलम इंडेक्स स्विच हो जाते हैं।
सममित मैट्रिक्स के उदाहरण के नीचे -
$$\शुरू {बीमैट्रिक्स} 1 और 4 और 7 \\ 4 और 5 और 6 \\ 7 और 6 और 9 \\ \end {bmatrix} \Rightarrow \ start {bmatrix} 1 और 4 और 7 \\ 4 और 5 और 6 \\ 7 और 6 और 9 \\ \end{bmatrix}$$
उपरोक्त मैट्रिक्स सममित मैट्रिक्स है जिसे हमने बाईं ओर मैट्रिक्स लिया और इसे स्थानांतरित किया और परिणाम समान मैट्रिक्स के बराबर है।
उदाहरण
Input: arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } }; Output: its a symmetric matrix Input: arr1[][n] = { { 1, 7, 3 }, { 2, 9, 5 }, { 4, 6, 8 } }; Output: its not a symmetric matrix
दृष्टिकोण
हम बस इन चरणों का पालन कर सकते हैं -
- 1. एक मैट्रिक्स लें और उसके स्थानान्तरण को अन्य मैट्रिक्स में संग्रहित करें।
- 2. जांचें कि परिणामी मैट्रिक्स इनपुट मैट्रिक्स के समान है।
एल्गोरिदम
Start Step 1 -> define macro as #define n 10 Step 2 -> declare function to find transporse of a matrix void transpose(int arr1[][n], int arr2[][n], int a) Loop For int i = 0 and i < a and i++ Loop For int j = 0 and j < a and j++ Set arr2[i][j] = arr1[j][i] End End Step 3 -> declare function to check symmetric or not bool check(int arr1[][n], int a) declare variable as int arr2[a][n] Call transpose(arr1, arr2, a) Loop For int i = 0 and i < a and i++ Loop For int j = 0 and j < a and j++ IF (arr1[i][j] != arr2[i][j]) return false End End End Return true Step 4 -> In main() Declare variable as int arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } } IF (check(arr1, 3)) Print its a symmetric matrix Else Print its not a symmetric matrix Stop
उदाहरण
#include <iostream> #define n 10 using namespace std; //find transporse of a matrix 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]; } //check symmetric or not 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