A Skew Symmetric Matrix or Anti-Symmetric Matrix is a square matrix whose transpose is negative to that of the original matrix. If the entry in the ith row and jth column of a matrix is a[i][j], i.e. if A = (a[i][j]) then the skew symmetric condition is -A = -a[j][i].
Examples :
Input : matrix: 0 5 -4 -5 0 1 4 -1 0 Output: Transpose matrix: 0 -5 4 5 0 -1 -4 1 0 Skew Symmetric matrix
Approach:
- Find the transpose of the input matrix.
- If the input matrix is equal to the negative of its transpose matrix, then the matrix is Skew Symmetrical.
Below is the implementation of the above approach:
Java
// java program to check // whether given matrix // is skew-symmetric or not import java.io.*;
class GFG {
static int ROW = 3 ;
static int COL = 3 ;
// Utility function to create transpose matrix static void transpose( int transpose_matrix[][],
int matrix[][])
{ for ( int i = 0 ; i < ROW; i++)
for ( int j = 0 ; j < COL; j++)
transpose_matrix[j][i] = matrix[i][j];
} // Utility function to check skew - symmetric // matrix condition static boolean check( int transpose_matrix[][],
int matrix[][])
{ for ( int i = 0 ; i < ROW; i++)
for ( int j = 0 ; j < COL; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false ;
return true ;
} // Utility function to print a matrix static void printMatrix( int matrix[][])
{ for ( int i = 0 ; i < ROW; i++)
{
for ( int j = 0 ; j < COL; j++)
System.out.print(matrix[i][j] + " " );
System.out.println();
}
} // Driver program to test above functions public static void main (String[] args) {
int matrix[][] = {
{ 0 , 5 , - 4 },
{- 5 , 0 , 1 },
{ 4 , - 1 , 0 },
};
int transpose_matrix[][] = new int [ROW][COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
System.out.println ( "Transpose matrix: " );
printMatrix(transpose_matrix);
// Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
System.out.println( "Skew Symmetric Matrix" );
else
System.out.println( "Not Skew Symmetric Matrix" );
}
} // This code is contributed by vt_m. |
C++
// C program to check whether given matrix // is skew-symmetric or not #include <stdio.h> #include <stdlib.h> #define ROW 3 #define COL 3 // Utility function to create transpose matrix void transpose( int transpose_matrix[ROW][COL],
int matrix[ROW][COL])
{ for ( int i = 0; i < ROW; i++)
for ( int j = 0; j < COL; j++)
transpose_matrix[j][i] = matrix[i][j];
} // Utility function to check skew - symmetric // matrix condition bool check( int transpose_matrix[ROW][COL],
int matrix[ROW][COL])
{ for ( int i = 0; i < ROW; i++)
for ( int j = 0; j < COL; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false ;
return true ;
} // Utility function to print a matrix void printMatrix( int matrix[ROW][COL])
{ for ( int i = 0; i < ROW; i++)
{
for ( int j = 0; j < COL; j++)
printf ( "%d " , matrix[i][j]);
printf ( "\n" );
}
} // Driver program to test above functions int main()
{ int matrix[ROW][COL] = {
{0, 5, -4},
{-5, 0, 1},
{4, -1, 0},
};
int transpose_matrix[ROW][COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
printf ( "Transpose matrix: \n" );
printMatrix(transpose_matrix);
// Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
printf ( "Skew Symmetric Matrix" );
else
printf ( "Not Skew Symmetric Matrix" );
return 0;
} |
C#
// C# program to check // whether given matrix // is skew-symmetric or not using System;
class GFG
{ static int ROW =3;
static int COL =3;
// Utility function to // create transpose matrix static void transpose( int [,]transpose_matrix,
int [,]matrix)
{ for ( int i = 0; i < ROW; i++)
for ( int j = 0; j < COL; j++)
transpose_matrix[j,i] = matrix[i,j];
} // Utility function to check // skew - symmetric matrix // condition static bool check( int [,]transpose_matrix,
int [,]matrix)
{ for ( int i = 0; i < ROW; i++)
for ( int j = 0; j < COL; j++)
if (matrix[i, j] !=
-transpose_matrix[i, j])
return false ;
return true ;
} // Utility function // to print a matrix static void printMatrix( int [,]matrix)
{ for ( int i = 0; i < ROW; i++)
{
for ( int j = 0; j < COL; j++)
Console.Write(matrix[i, j] +
" " );
Console.WriteLine();
}
} // Driver Code public static void Main ()
{ int [,]matrix = {{0, 5, -4},
{-5, 0, 1},
{4, -1, 0},};
int [,]transpose_matrix = new int [ROW, COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
Console.WriteLine( "Transpose matrix: " );
printMatrix(transpose_matrix);
// Check whether matrix is
// skew-symmetric or not
if (check(transpose_matrix, matrix))
Console.WriteLine( "Skew Symmetric Matrix" );
else
Console.WriteLine( "Not Skew Symmetric Matrix" );
}
} // This code is contributed by anuj_67. |
Python3
# Python 3 program to check # whether given matrix # is skew-symmetric or not ROW = 3
COL = 3
# Utility function to # create transpose matrix def transpose(transpose_matrix,matrix):
for i in range (ROW):
for j in range (COL):
transpose_matrix[j][i] = matrix[i][j]
# Utility function to # check skew - symmetric # matrix condition def check(transpose_matrix,matrix):
for i in range (ROW):
for j in range (COL):
if (matrix[i][j] ! = - transpose_matrix[i][j]):
return False
return True
# Utility function to print a matrix def printMatrix(matrix):
for i in range (ROW):
for j in range (COL):
print (matrix[i][j], " " ,end = "")
print ()
# Driver program to test above functions matrix = [
[ 0 , 5 , - 4 ],
[ - 5 , 0 , 1 ],
[ 4 , - 1 , 0 ],
]
transpose_matrix = [[ 0 for i in range ( 3 )] for j in range ( 3 )]
# Function create transpose matrix transpose(transpose_matrix, matrix) print ( "Transpose matrix:" )
printMatrix(transpose_matrix) # Check whether matrix is # skew-symmetric or not if (check(transpose_matrix, matrix)):
print ( "Skew Symmetric Matrix" )
else :
print ( "Not Skew Symmetric Matrix" )
# This code is contributed # by Azkia Anam. |
Javascript
// Javascript Program to check whether given matrix is skew-symmetric or not var n = 3, m = 3;
var matrix = [[ 0, 5, -4 ], [ -5, 0, 1 ], [ 4, -1, 0 ]];
var transpose_matrix = [[], [], []];
var transpose= function (transpose_matrix, matrix){
for ( var i = 0; i < n; i++)
for ( var j = 0; j < m; j++)
transpose_matrix[j][i] = matrix[i][j];
} // Utility function to check skew - symmetric // matrix condition var check= function (transpose_matrix,matrix)
{ for ( var i = 0; i < n; i++)
for ( var j = 0; j < m; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false ;
return true ;
} // Utility function to print a matrix var printMatrix= function (matrix)
{ for ( var i = 0; i < n; i++)
{
for ( var j = 0; j < m; j++)
console.log(matrix[i][j]);
console.log( '\n' );
}
} transpose(transpose_matrix, matrix); console.log( "Transpose matrix: \n" );
printMatrix(transpose_matrix); // Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
console.log( "Skew Symmetric Matrix" );
else console.log( "Not Skew Symmetric Matrix" );
// This code is contributed by Sajal Aggarwal. |
Output
Transpose matrix: 0 -5 4 5 0 -1 -4 1 0 Skew Symmetric Matrix
Time complexity: O(ROW x COL).
Auxiliary Space: O(ROW x COL).
References : Wikipedia
Recommended Articles
10. Skew Heap