Tutorialspoint.dev

C Program To Check whether Matrix is Skew Symmetric or not

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

Steps:

  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.



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(" ");
    }
}
  
// 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: ");
    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;
}

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.

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.

/div>

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.


Output :

Transpose matrix: 
0 -5 4 
5 0 -1 
-4 1 0 
Skew Symmetric Matrix


References :
Wikipedia

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter