Open In App

Java Program to Find the Normal and Trace of a Matrix

Last Updated : 21 May, 2025
Summarize
Comments
Improve
Suggest changes
Share
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
Practice Tags :

Similar Reads