Java Program to Check If a Matrix Is an Upper Triangular Matrix

Upper Triangular Matrix

Java program to check if a given matrix is an upper triangular has been shown here. A square matrix is considered an upper triangular matrix if all the elements below the main diagonal are Zero. The elements in the main diagonal may or may not be 0.


Examples:

Examples of upper Triangular Matrix

In the given examples, (i), (ii), (iv) and (v) are upper triangular matrices as every element below the principal diagonal is 0 in each of these matrices. The matrix shown in (iii) is not an upper triangular matrix as one element above the principal diagonal is non-zero. The dotted lines have been drawn over the principal diagonals.






1. Algorithm to Check If a Matrix Is an Upper Triangular Matrix


1. Take a matrix $A_{m\times n}$ as input

2. Check if $m=n$

3. If step [2] is false then display "Input matrix is not a square matrix!" and exit program

4. If step [2] is true, then

5. Check if $A_{i,j} \neq 0$ for each $i > j$ and $i \in [1, m]$ and $j \in [1, i]$

6. If step [5] is true for atleast one $A_{i,j}$ then display "The matrix is not an upper triangular matrix" and exit program.

7. If step [5] is false then display "The matrix is an upper triangular matrix" and exit program.




2. Pseudocode to Check If a Matrix Is an Upper Triangular Matrix


Input: A matrix $A_{m\times n}$

Output: A is upper triangular or not

1. Procedure upperTriangularMatrix($A_{m\times n}$):

2. If $m == n$:

3. Repeat for each $i > j$ where $i \in [1, m]$ and $j \in [1, i]$

4. If $A_{i,j} \neq 0$:

5. Return Not an upper triangular matrix

6. Return An upper triangular matrix

7. Else:

8. Return It should be a square matrix

9. End Procedure





3. Time Complexity to Check If a Matrix Is an Upper Triangular Matrix


Time Complexity: O($mn$)

Where $m$ is the number of rows and $n$ is the number of columns in the matrices.




4. Java Program to Check If a Matrix Is an Upper Triangular Matrix

Code has been copied
/**********************************
        alphabetacoder.com
 Java Program to check if a matrix 
   is an upper triangular matrix
***********************************/

import java.util.Scanner;

class Main {
    public static void main(String args[]) {
        // declare object of Scanner class
        Scanner sc = new Scanner(System.in);

        // declare variables
        int m, n, i, j, flag = 0;
        int[][] A = new int[10][10];

        //take input of the order of the matrix
        System.out.print("Enter the number of rows and columns of matrix = ");
        m = sc.nextInt();
        n = sc.nextInt();

        //take input of the matrix
        System.out.println("Enter the elements of matrix of order " + m + " x " + n + " = ");
        for (i = 0; i < m; i++)
            for (j = 0; j < n; j++)
                A[i][j] = sc.nextInt();

        // check if the matrix is a square matrix or not
        // if it is square matrix, check if it is upper triangular or not
        if (m != n)
            System.out.println("\nInput matrix is not a square matrix!\n");
        else {
            // check if A is upper triangular or not by
            // finding an non-zero element below main diagonal 
            for (i = 0; i < m; i++) {
                for (j = 0; j < i; j++) {
                    if (A[i][j] != 0) {
                        // non-zero element found
                        flag = 1;
                        break;
                    }
                }
                // break the loop as non-zero element 
                // below main diagonal has been detected
                if (flag == 1)
                    break;
            }

            // display the result
            if (flag == 0)
                System.out.print("\nIt is an upper triangular matrix!");
            else
                System.out.print("\nIt is not an upper triangular matrix!");
        }
    }
}

Output


Enter the number of rows and columns of matrix = 3 3

Enter the elements of matrix of order 3 x 3 =

2 3 0

0 1 9

0 0 6


It is an upper triangular matrix!