Java Program to Check Whether a Matrix is Symmetric or Not

In this article we are going to see how we can check if a matrix is symmetric or not in JAVA language.

Java Program to Check Whether a Matrix is Symmetric or Not

A 3*3 Matrix is having 3 rows and 3 columns where this 3*3 represents the dimension of the matrix. Means there are 3*3 i.e. total 9 elements in a 3*3 Matrix.

Let’s understand it in more simpler way.

                   | A00   A01   A02 |
Matrix A =  | A10   A11   A12 |
                   | A20   A21   A22 | 3*3
  • Matrix A represents a 3*3 matrix.
  • A‘ represents the matrix element
  • Aij‘ represents the matrix element at it’s matrix position/index.
  • i‘ represents the row index
  • j‘ represents the column index
  • Means A00=Aij  where i=0 and j=0,  A01=aij where i=0 and j=1 and like this.
  • Here we have started row value from 0 and column value from 0.

A symmetric matrix is a matrix which is the same as its transpose.

For example-

1 2 3 
2 3 1 
3 1 3

Let’s see different ways to print boundary elements of a matrix.

Method-1: Java Program to Check Whether a Matrix is Symmetric or Not By Static Initialization of Array Elements

Approach:

  • Initialize and declare two array of size 3×3 with elements.
  • Find out the transpose of the matrix and compare all the elements with the main matrix.
  • If all elements are same then it is said to be a symmetric matrix else not.

Program:

public class matrix{
    public static void main(String args[])
    {
        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = {{1,2,3},{2,3,1},{3,1,3}}, temp[][] = new int[3][3];
        int row, col;

        System.out.print("The matrix is :");
        printMatrix(arr);

        temp = trans(arr);
        boolean flag = true;

        // Checks whether the matrix elements are in the same position as the transpose
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                if(arr[row][col] != temp[row][col])
                {
                    flag = false;
                    break;
                }

        if(flag)
            System.out.println("\nIt is a symmetric matrix");
        else
            System.out.println("\nIt is not a symmetric matrix");
        
    }

    // Method to print the matrix
    static void printMatrix(int arr[][])
    {
        int row, col;
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
        System.out.print("\n");
    }

    // Method to find the transpose
    static int[][] trans(int[][] mat)
    {
        int row, col, trans[][] = new int[3][3];
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                trans[row][col] = mat[col][row];
        System.out.print("The transpose of matrix is :");
        printMatrix(trans);
        return trans;
    }

}

Output:

The matrix is :
1 2 3 
2 3 1 
3 1 3 
The transpose of matrix is :
1 2 3 
2 3 1 
3 1 3

It is a symmetric matrix

Method-2: Java Program to Check Whether a Matrix is Symmetric or Not By Dynamic Initialization of Array Elements

Approach:

  • Declare two array of size 3×3 with elements.
  • Take the input of array elements for main matrix.
  • Find out the transpose of the matrix and compare all the elements with the main matrix.
  • If all elements are same then it is said to be a symmetric matrix else not.

Program:

import java.util.Scanner;
public class matrix{
    public static void main(String args[])
    {
        //Scanner class to take input
        Scanner scan = new Scanner(System.in);

        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = new int[3][3], temp[][] = new int[3][3];
        int row, col;

        // Taking matrix input
        System.out.println("Enter matrix elements : ");
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                arr[row][col] = scan.nextInt();

        System.out.print("The matrix is :");
        printMatrix(arr);

        temp = trans(arr);
        boolean flag = true;

        // Checks whether the matrix elements are in the same position as the transpose
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                if(arr[row][col] != temp[col][row])
                {
                    flag = false;
                    break;
                }

        if(flag)
            System.out.println("\nIt is a symmetric matrix");
        else
            System.out.println("\nIt is not a symmetric matrix");
        
    }

    // Method to print the matrix
    static void printMatrix(int arr[][])
    {
        int row, col;
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
        System.out.print("\n");
    }

    // Method to find the transpose
    static int[][] trans(int[][] mat)
    {
        int row, col, trans[][] = new int[3][3];
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                trans[row][col] = mat[col][row];
                
        System.out.print("The transpose of matrix is :");
        printMatrix(trans);
        return trans;
    }

}

Output:

Enter matrix elements : 
The matrix is :
1 2 3 
2 3 1 
3 1 3 
The transpose of matrix is :
1 2 3 
2 3 1 
3 1 3

It is a symmetric matrix

Have you mastered basic programming topics of java and looking forward to mastering advanced topics in a java programming language? Go with these ultimate Advanced java programs examples with output & achieve your goal in improving java coding skills.

Related Java Programs: