Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Program to check if matrix is upper triangular

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a square matrix and the task is to check the matrix is in upper triangular form or not. A square matrix is called upper triangular if all the entries below the main diagonal are zero.

Examples: 

Input : mat[4][4] = {{1, 3, 5, 3},
                     {0, 4, 6, 2},
                     {0, 0, 2, 5},
                     {0, 0, 0, 6}};
Output : Matrix is in Upper Triangular form.

Input : mat[4][4] = {{5, 6, 3, 6},
                     {0, 4, 6, 6},
                     {1, 0, 8, 5},
                     {0, 1, 0, 6}};
Output : Matrix is not in Upper Triangular form.

Implementation:

C++




// Program to check upper triangular matrix.
#include <bits/stdc++.h>
#define N 4
using namespace std;
 
// Function to check matrix is in upper triangular
// form or not.
bool isUpperTriangularMatrix(int mat[N][N])
{
    for (int i = 1; i < N; i++)
        for (int j = 0; j < i; j++)
            if (mat[i][j] != 0)
                return false;
    return true;
}
 
// Driver function.
int main()
{
    int mat[N][N] = { { 1, 3, 5, 3 },
                      { 0, 4, 6, 2 },
                      { 0, 0, 2, 5 },
                      { 0, 0, 0, 6 } };
    if (isUpperTriangularMatrix(mat))
        cout << "Yes";
    else
        cout << "No";
    return 0;
}


Java




// Java Program to check upper
// triangular matrix.
import java.util.*;
import java.lang.*;
 
public class GfG
{
    private static final int N = 4;
 
    // Function to check matrix is in
    // upper triangular form or not.
    public static Boolean isUpperTriangularMatrix(int mat[][])
    {
        for (int i = 1; i < N ; i++)
            for (int j = 0; j < i; j++)
                if (mat[i][j] != 0)
                    return false;
        return true;
    }
     
    // driver function
    public static void main(String argc[]){
        int[][] mat= { { 1, 3, 5, 3 },
                       { 0, 4, 6, 2 },
                       { 0, 0, 2, 5 },
                       { 0, 0, 0, 6 } };
                     
        if (isUpperTriangularMatrix(mat))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
 
/* This code is contributed by Sagar Shukla */


Python3




# Python3 Program to check upper
# triangular matrix.
 
# Function to check matrix
# is in upper triangular
def isuppertriangular(M):
    for i in range(1, len(M)):
        for j in range(0, i):
            if(M[i][j] != 0):
                    return False
    return True
     
# Driver function.
M = [[1,3,5,3],
    [0,4,6,2],
    [0,0,2,5],
    [0,0,0,6]]
 
if isuppertriangular(M):
    print ("Yes")
else:
    print ("No")
 
# This code is contributed by Anurag Rawat


C#




// C# Program to check upper
// triangular matrix.
using System;
 
public class GfG
{
    private static int N = 4;
 
    // Function to check matrix is in
    // upper triangular form or not.
    public static bool isUpperTriangularMatrix(int [,]mat)
    {
        for (int i = 1; i < N ; i++)
            for (int j = 0; j < i; j++)
                if (mat[i, j] != 0)
                    return false;
        return true;
    }
     
    // Driver function
    public static void Main(){
        int [,]mat= { { 1, 3, 5, 3 },
                    { 0, 4, 6, 2 },
                    { 0, 0, 2, 5 },
                    { 0, 0, 0, 6 } };
                     
        if (isUpperTriangularMatrix(mat))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
/* This code is contributed by vt_m */


PHP




<?php
// PHP Program to check upper
// triangular matrix.
$N = 4;
 
// Function to check matrix is
// in upper triangular form or
// not.
function isUpperTriangularMatrix($mat)
{
    global $N;
    for ($i = 1; $i < $N; $i++)
        for ($j = 0; $j < $i; $j++)
            if ($mat[$i][$j] != 0)
                return false;
    return true;
}
 
    // Driver Code
    $mat = array(array(1, 3, 5, 3),
                 array(0, 4, 6, 2) ,
                 array(0, 0, 2, 5),
                 array(0, 0, 0, 6));
                 
    if (isUpperTriangularMatrix($mat))
        echo "Yes";
    else
        echo"No";
 
// This code is contributed by anuj_67.
?>


Javascript




<script>
// Java script  Program to check upper
// triangular matrix.
let  N = 4;
 
    // Function to check matrix is in
    // upper triangular form or not.
    function isUpperTriangularMatrix(mat)
    {
        for (let i = 1; i < N ; i++)
            for (let j = 0; j < i; j++)
                if (mat[i][j] != 0)
                    return false;
        return true;
    }
     
    // driver function
     
        let mat= [[1, 3, 5, 3 ],
                    [ 0, 4, 6, 2 ],
                    [ 0, 0, 2, 5 ],
                    [ 0, 0, 0, 6 ]];
                     
        if (isUpperTriangularMatrix(mat))
            document.write("Yes");
        else
            document.write("No");
     
         
// contributed by sravan kumar
</script>


Output

Yes

Time Complexity: O(n2), where n represents the number of rows and columns of the matrix.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Approach 2:

The approach used in the program is to check whether all the elements of the matrix below the diagonal are zero or not. If all the elements below the diagonal are zero, then the matrix is considered to be an upper triangular matrix. This is achieved by looping through all the elements of the matrix below the diagonal and checking if each element is zero or not. If any non-zero element is found, the matrix is not upper triangular. If all the elements below the diagonal are zero, the matrix is upper triangular.

C++




#include <bits/stdc++.h>
#define N 4
using namespace std;
 
// Function to check matrix is in upper triangular
// form or not.
bool isUpperTriangularMatrix(int mat[N][N])
{
    for (int i = 1; i < N; i++)
        for (int j = 0; j < i; j++)
            if (mat[i][j] != 0)
                return false;
    return true;
}
 
// Driver function.
int main()
{
    int mat[N][N] = { { 1, 3, 5, 3 },
                      { 0, 4, 6, 2 },
                      { 0, 0, 2, 5 },
                      { 0, 0, 0, 6 } };
    if (isUpperTriangularMatrix(mat))
        cout << "Yes";
    else
        cout << "No";
    return 0;
}


Output

Yes

Time Complexity: O(n^2)

Auxiliary Space: O(n^2)


My Personal Notes arrow_drop_up
Last Updated : 12 May, 2023
Like Article
Save Article
Similar Reads
Related Tutorials