Skip to main content

Check if matrix is lower triangular

A matrix is lower triangular if all the entries above the diagonal are zero. In other words, the matrix has a triangular shape where the diagonal elements and all elements below the diagonal have values, while all the elements above the diagonal are zero. This type of matrix is useful in many mathematical and scientific applications, such as solving systems of linear equations, calculating determinants, and diagonalizing matrices. In practical terms, lower triangular matrices can help simplify complex calculations and make them more efficient.

Program

/*
  C Program 
+ Check if matrix is lower triangular
*/
#include<stdio.h>
//Size of matrix
#define ROW 4
#define COL 4

//Display the element of given 2d matrix
void show_data(int matrix[][COL]) {

  
  for (int i = 0; i < ROW; ++i) {

    for (int j = 0; j < COL; ++j) {

      printf("%4d", matrix[i][j]);
    }

    printf("\n");
  }

  printf("\n");
}
//Check if given matrix is lower triangular or not
void lower_triangular(int matrix[ROW][COL])
{
  int status=1;
 
  for (int i = 0; i < COL && status==1; ++i)
  {
    for (int j = i+1; j < ROW && status==1; ++j)
    {
      if(matrix[i][j] != 0)
      {
        //When matrix is not lower triangular
        status=0;
      }
    }
    
  }
  if(status==1)
  {
    printf("  Yes\n");
  }
  else
  {
    printf("  NO\n");
  }
 
}
int main(){

  int matrix[ROW][COL]=  { 
    { 1, 0, 0, 0 }, 
    { 1, 2, 0, 0 }, 
    { 1, 2, 3, 0 },
    { 1, 2, 3, 4 }  }; 
  show_data(matrix);
  lower_triangular(matrix);

  return 0;
}

Output

   1   0   0   0
   1   2   0   0
   1   2   3   0
   1   2   3   4

  Yes
/*
  C++ Program
  Check if matrix is lower triangular
*/
#include<iostream>
#define ROW 4
#define COL 4
using namespace std;

class MyMatrix {
	public:

		//Display the element of given 2d matrix
		void show_data(int matrix[][COL], int row, int col) {
			for (int i = 0; i < row; ++i) {
				for (int j = 0; j < col; ++j) {
					cout << " " << matrix[i][j];
				}
				cout << "\n";
			}
			cout << "\n";
		}
	//Check if given matrix is lower triangular or not
	void lower_triangular(int matrix[][COL], int row, int col) {
		int status = 1;
		for (int i = 0; i < col && status == 1; ++i) {
			for (int j = i + 1; j < row && status == 1; ++j) {
				if (matrix[i][j] != 0) {
					//When matrix is not lower triangular
					status = 0;
				}
			}
		}
		if (status == 1) {
			cout << " Yes\n";
		} else {
			cout << " NO\n";
		}
	}
};
int main() {
	MyMatrix obj ;
	int matrix[][COL] = {
		{
			1,
			0,
			0,
			0
		},
		{
			1,
			2,
			0,
			0
		},
		{
			1,
			2,
			3,
			0
		},
		{
			1,
			2,
			3,
			4
		}
	};
	//This is size of matrix

	obj.show_data(matrix, ROW, COL);
	obj.lower_triangular(matrix, ROW, COL);
	return 0;
}

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
/*
  Java Program
  Check if matrix is lower triangular
*/
public class MyMatrix {


  //Display the element of given 2d matrix
  public void show_data(int [][]matrix, int row,int col) {

    
    for (int i = 0; i < row; ++i) {

      for (int j = 0; j < col; ++j) {

        System.out.print("  "+ matrix[i][j]);
      }

      System.out.print("\n");
    }

    System.out.print("\n");
  }
  //Check if given matrix is lower triangular or not
  public void lower_triangular(int [][]matrix, int row,int col)
  {
    int status=1;
   
    for (int i = 0; i < col && status==1; ++i)
    {
      for (int j = i+1; j < row && status==1; ++j)
      {
        if(matrix[i][j] != 0)
        {
          //When matrix is not lower triangular
          status=0;
        }
      }
      
    }
    if(status==1)
    {
      System.out.print("  Yes\n");
    }
    else
    {
      System.out.print("  NO\n");
    }
   
  }

  public static void main(String[] args) 
  {
  

    MyMatrix obj = new MyMatrix();
    int [][]matrix =  { 
      { 1, 0, 0, 0 }, 
      { 1, 2, 0, 0 }, 
      { 1, 2, 3, 0 },
      { 1, 2, 3, 4 }  
    };
    //This is size of matrix
    int row = matrix.length;
    int col = matrix[0].length; 

    obj.show_data(matrix,row,col);
    obj.lower_triangular(matrix,row,col);

  }
}

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
/*
  C# Program
  Check if matrix is lower triangular
*/
using System;

public class MyMatrix {
	//Display the element of given 2d matrix
	public void show_data(int[,] matrix, int row, int col) {
		for (int i = 0; i < row; ++i) {
			for (int j = 0; j < col; ++j) {
				Console.Write(" " + matrix[i,j]);
			}
			Console.Write("\n");
		}
		Console.Write("\n");
	}
	//Check if given matrix is lower triangular or not
	public void lower_triangular(int[,] matrix, int row, int col) {
		int status = 1;
		for (int i = 0; i < col && status == 1; ++i) {
			for (int j = i + 1; j < row && status == 1; ++j) {
				if (matrix[i,j] != 0) {
					//When matrix is not lower triangular
					status = 0;
				}
			}
		}
		if (status == 1) {
			Console.Write(" Yes\n");
		} else {
			Console.Write(" NO\n");
		}
	}
	public static void Main(String[] args) {
		MyMatrix obj = new MyMatrix();
		int[,] matrix = {
			{
				1,
				0,
				0,
				0
			},
			{
				1,
				2,
				0,
				0
			},
			{
				1,
				2,
				3,
				0
			},
			{
				1,
				2,
				3,
				4
			}
		};
		//This is size of matrix
		int row = matrix.GetLength(0);
		int col = matrix.GetLength(1);
		obj.show_data(matrix, row, col);
		obj.lower_triangular(matrix, row, col);
	}
}

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
<?php
/*
  Php Program
  Check if matrix is lower triangular
*/
class MyMatrix {
	//Display the element of given 2d matrix
	public 	function show_data($matrix, $row, $col) {
		for ($i = 0; $i < $row; ++$i) {
			for ($j = 0; $j < $col; ++$j) {
				echo(" ". $matrix[$i][$j]);
			}
			echo("\n");
		}
		echo("\n");
	}
	//Check if given matrix is lower triangular or not
	public 	function lower_triangular($matrix, $row, $col) {
		$status = 1;
		for ($i = 0; $i < $col && $status == 1; ++$i) {
			for ($j = $i + 1; $j < $row && $status == 1; ++$j) {
				if ($matrix[$i][$j] != 0) {
					//When matrix is not lower triangular
					$status = 0;
				}
			}
		}
		if ($status == 1) {
			echo(" Yes\n");
		} else {
			echo(" NO\n");
		}
	}
};

function main() {
	$obj = new MyMatrix();
	$matrix = array(
      array(1, 0, 0, 0), 
      array(1, 2, 0, 0), 
      array(1, 2, 3, 0), 
      array(1, 2, 3, 4)
    );
	//This is size of matrix
	$row = count($matrix);
	$col = count($matrix[0]);
	$obj->show_data($matrix, $row, $col);
	$obj->lower_triangular($matrix, $row, $col);

}
main();

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
/*
  Node Js Program
  Check if matrix is lower triangular
*/
class MyMatrix {
	//Display the element of given 2d matrix
	show_data(matrix, row, col) {
		for (var i = 0; i < row; ++i) {
			for (var j = 0; j < col; ++j) {
				process.stdout.write(" " + matrix[i][j]);
			}

			process.stdout.write("\n");
		}

		process.stdout.write("\n");
	}

	//Check if given matrix is lower triangular or not
	lower_triangular(matrix, row, col) {
		var status = 1;
		for (var i = 0; i < col && status == 1; ++i) {
			for (var j = i + 1; j < row && status == 1; ++j) {
				if (matrix[i][j] != 0) {
					//When matrix is not lower triangular
					status = 0;
				}
			}
		}

		if (status == 1) {
			process.stdout.write(" Yes\n");
		} else {
			process.stdout.write(" NO\n");
		}
	}
}

function main(args) {
	var obj = new MyMatrix();
	var matrix = [
		[1, 0, 0, 0],
		[1, 2, 0, 0],
		[1, 2, 3, 0],
		[1, 2, 3, 4]
	];
	//This is size of matrix
	var row = matrix.length;
	var col = matrix[0].length;
	obj.show_data(matrix, row, col);
	obj.lower_triangular(matrix, row, col);
}

main();

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
#   Python 3 Program
#   Check if matrix is lower triangular
class MyMatrix :
	# Display the element of given 2d matrix
	def show_data(self, matrix, row, col) :
		i = 0
		while (i < row) :
			j = 0
			while (j < col) :
				print(" ", matrix[i][j], end = "")
				j += 1
			
			print("\n", end = "")
			i += 1
		
		print("\n", end = "")
	
	# Check if given matrix is lower triangular or not
	def lower_triangular(self, matrix, row, col) :
		status = 1
		i = 0
		while (i < col and status == 1) :
			j = i + 1
			while (j < row and status == 1) :
				if (matrix[i][j] != 0) :
					# When matrix is not lower triangular
					status = 0
				
				j += 1
			
			i += 1
		
		if (status == 1) :
			print(" Yes\n", end = "")
		else :
			print(" NO\n", end = "")
		
	

def main() :
	obj = MyMatrix()
	matrix = [
		[1, 0, 0, 0],
		[1, 2, 0, 0],
		[1, 2, 3, 0],
		[1, 2, 3, 4]
	]
	row = len(matrix)
	col = len(matrix[0])
	obj.show_data(matrix, row, col)
	obj.lower_triangular(matrix, row, col)


if __name__ == "__main__":
	main()

Output

  1  0  0  0
  1  2  0  0
  1  2  3  0
  1  2  3  4

 Yes
#   Ruby Program
#   Check if matrix is lower triangular
class MyMatrix 
	# Display the element of given 2d matrix
	def show_data(matrix, row, col) 
		i = 0
		while (i < row) 
			j = 0
			while (j < col) 
				print(" ", matrix[i][j])
				j += 1
			end
			print("\n")
			i += 1
		end
		print("\n")
	end
	# Check if given matrix is lower triangular or not
	def lower_triangular(matrix, row, col) 
		status = 1
		i = 0
		while (i < col && status == 1) 
			j = i + 1
			while (j < row && status == 1) 
				if (matrix[i][j] != 0) 
					# When matrix is not lower triangular
					status = 0
				end
				j += 1
			end
			i += 1
		end
		if (status == 1) 
			print(" Yes\n")
		else 
			print(" NO\n")
		end
	end
end
def main() 
	obj = MyMatrix.new()
	matrix = [
		[1, 0, 0, 0],
		[1, 2, 0, 0],
		[1, 2, 3, 0],
		[1, 2, 3, 4]
	]
	row = matrix.length
	col = matrix[0].length
	obj.show_data(matrix, row, col)
	obj.lower_triangular(matrix, row, col)
end
main()

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
/*
  Scala Program
  Check if matrix is lower triangular
*/
class MyMatrix {
	//Display the element of given 2d matrix
	def show_data(matrix: Array[Array[Int]], row: Int, col: Int): Unit = {
		var i: Int = 0;
		while (i < row) {
			var j: Int = 0;
			while (j < col) {
				print(" " + matrix(i)(j));
				j += 1;
			}
			print("\n");
			i += 1;
		}
		print("\n");
	}
	//Check if given matrix is lower triangular or not
	def lower_triangular(matrix: Array[Array[Int]], row: Int, col: Int): Unit = {
		var status: Int = 1;
		var i: Int = 0;
		while (i < col && status == 1) {
			var j: Int = i + 1;
			while (j < row && status == 1) {
				if (matrix(i)(j) != 0) {
					//When matrix is not lower triangular
					status = 0;
				}
				j += 1;
			}
			i += 1;
		}
		if (status == 1) {
			print(" Yes\n");
		} else {
			print(" NO\n");
		}
	}
}
object Main {
	def main(args: Array[String]): Unit = {
		val obj: MyMatrix = new MyMatrix();
		val matrix: Array[Array[Int]] = Array(
			Array(1, 0, 0, 0),
			Array(1, 2, 0, 0),
			Array(1, 2, 3, 0),
			Array(1, 2, 3, 4));
		val row: Int = matrix.length;
		val col: Int = matrix(0).length;
		obj.show_data(matrix, row, col);
		obj.lower_triangular(matrix, row, col);
	}
}

Output

 1 0 0 0
 1 2 0 0
 1 2 3 0
 1 2 3 4

 Yes
/*
  Swift Program
  Check if matrix is lower triangular
*/
class MyMatrix {
	//Display the element of given 2d matrix
	func show_data(_ matrix: [
		[Int]
	], _ row: Int, _ col: Int) {
		var i: Int = 0;
		while (i < row) {
			var j: Int = 0;
			while (j < col) {
				print(" ", matrix[i][j], terminator: "");
				j += 1;
			}
			print("\n", terminator: "");
			i += 1;
		}
		print("\n", terminator: "");
	}
	//Check if given matrix is lower triangular or not
	func lower_triangular(_ matrix: [
		[Int]
	], _ row: Int, _ col: Int) {
		var status: Int = 1;
		var i: Int = 0;
		while (i < col && status == 1) {
			var j: Int = i + 1;
			while (j < row && status == 1) {
				if (matrix[i][j] != 0) {
					//When matrix is not lower triangular
					status = 0;
				}
				j += 1;
			}
			i += 1;
		}
		if (status == 1) {
			print(" Yes\n", terminator: "");
		} else {
			print(" NO\n", terminator: "");
		}
	}
}
func main() {
	let obj: MyMatrix = MyMatrix();
	let matrix: [
		[Int]
	] = [
		[1, 0, 0, 0],
		[1, 2, 0, 0],
		[1, 2, 3, 0],
		[1, 2, 3, 4]
	];
	let row: Int = matrix.count;
	let col: Int = matrix[0].count;
	obj.show_data(matrix, row, col);
	obj.lower_triangular(matrix, row, col);
}
main();

Output

  1  0  0  0
  1  2  0  0
  1  2  3  0
  1  2  3  4

 Yes




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment