Open In App

Java Program to Find the Normal and Trace of a Matrix

Last Updated : 21 May, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In Java, when we work with matrices, there are two main concepts, and these concepts are Trace and Normal of a matrix. In this article, we will learn how to calculate them and discuss how to implement them in code. Before moving further, let's first understand what a matrix is.

What is a Matrix?

A matrix is a two-dimensional array that is arranged in rows and columns.

Example:

1 4 4

2 3 7

0 5 1

Note: This is a 3 x 3 matrix because it has 3 rows and 3 columns.

What is the Trace of a Matrix?

The Trace of a square matrix is the total we get when we add up all the numbers on the main diagonal.

Note: The main diagonal runs from the top-left corner to the bottom-right corner of the matrix.

What is the Normal of a Matrix?

The Normal of a matrix is the square root of the sum of the squares of all the numbers in the matrix. The image below shows how to calculate the Trace and Normal of a matrix.



How to Find Trace and Normal in Java?

Now, we are going to discuss how to calculate the Trace and Normal. We will write a program that takes a square matrix as input and then we will calculate its Trace and its Normal.

Example:

Input : matrix[][] = {{1, 4, 4},
{2, 3, 7},
{0, 5, 1}};

Output : Normal = 11
Trace = 5


Explanation :
Normal = sqrt(1*1+ 4*4 + 4*4 + 2*2 + 3*3 + 7*7 + 0*0 + 5*5 + 1*1) = 11
Trace = 1+3+1 = 5

Input : matrix[][] = {{8, 9, 11},
{0, 1, 15},
{4, 10, -7}};


Output : Normal = 25
Trace = 2


Explanation :
Normal = sqrt(8*8 +9*9 + 11*11 + 0*0 + 1*1 + 15*15 + 4*4 + 10*10 + -7*-7) = 25
Trace = (8+1-7) = 2


Program to Find the Normal and Trace of a Matrix in Java

Java
// Java program to find the trace
// and normal of the given matrix
public class Geeks {

    // Method to calculate the Normal of the matrix
    static int normal(int[][] matrix, int size) {
        int sum = 0;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                // square and add
                sum += matrix[i][j] * matrix[i][j]; 
            }
        }
        // square root of sum
        return (int) Math.sqrt(sum); 
    }

    // Method to calculate the Trace of the matrix
    static int trace(int[][] matrix, int size) {
        int sum = 0;
        for (int i = 0; i < size; i++) {
             // add diagonal elements
            sum += matrix[i][i];
        }
        return sum;
    }

    public static void main(String[] args) {
        int[][] matrix = {
            {1, 4, 4},
            {2, 3, 7},
            {0, 5, 1}
        };

        int size = matrix.length;

        System.out.println("Trace of the Matrix is: " 
        + trace(matrix, size));
        System.out.println("Normal of the Matrix is: " 
        + normal(matrix, size));
    }
}

Output
Trace of the Matrix is: 5
Normal of the Matrix is: 11

Complexity of the above Program:

  • Time Complexity: O(N*N), as we are using nested loops for traversing the matrix.
  • Auxiliary Space: O(1), as we are not using any extra space.

Next Article

Similar Reads