রৈখিক বীজগণিতে একটি ম্যাট্রিক্স 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}$$
উপরের ম্যাট্রিক্স হল প্রতিসম ম্যাট্রিক্স যা আমরা ম্যাট্রিক্সটি বাম দিকে নিয়েছি এবং এটি স্থানান্তরিত করেছি এবং ফলাফলটি ম্যাট্রিক্সের সমান।
উদাহরণ
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