Open In App

C Program To Check whether Matrix is Skew Symmetric or not

Improve
Improve
Like Article
Like
Save
Share
Report

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:

  1. Find the transpose of the input matrix.
  2. 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



Last Updated : 21 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads