C# program to check if a given matrix is a lower triangular has been shown here. A square matrix is considered a lower triangular matrix if all the elements above the main diagonal are Zero. The elements in the main diagonal may or may not be 0.
Examples:
In the given examples, (i), (ii), (iv) and (v) are lower triangular matrices as every element above the principal diagonal is 0 in each of these matrices. The matrix shown in (iii) is not a lower 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 a Lower 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, n]$
6. If step [5] is true for atleast one $A_{i,j}$ then display "The matrix is not a lower triangular matrix" and exit program.
7. If step [5] is false then display "The matrix is a lower triangular matrix" and exit program.
2. Pseudocode to Check If a Matrix Is a Lower Triangular Matrix
Input: A matrix $A_{m\times n}$
Output: A is lower triangular or not
1. Procedure lowerTriangularMatrix($A_{m\times n}$):
2.
3.
4.
5.
6.
7.
8.
9. End Procedure
3. Time Complexity to Check If a Matrix Is a Lower Triangular Matrix
Time Complexity: O($mn$)
Where $m$ is the number of rows and $n$ is the number of columns in the matrices.
4. C# Program to Check If a Matrix Is a Lower Triangular Matrix
/********************************** alphabetacoder.com C# Program to check if a matrix is a lower triangular matrix ***********************************/ using System; namespace LowerTriangularMatrix { class Program { static void Main(string[] args) { // declare variables int m, n, i, j, flag = 0; int[, ] A = new int[10, 10]; // take input Console.Write("Enter the number of rows of matrix = "); m = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the number of columns of matrix = "); n = Convert.ToInt32(Console.ReadLine()); //take input of the matrix Console.WriteLine("Enter the elements of matrix of order " + m + " x " + n + " = "); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { Console.Write("Enter the element at row " + (i + 1) + " column " + (j + 1) + " of matrix = "); A[i, j] = Convert.ToInt32(Console.ReadLine()); } } // check if the matrix is a square matrix or not // if it is square matrix, check if it is lower triangular or not if (m != n) Console.WriteLine("\nInput matrix is not a square matrix!"); else { // check if A is lower triangular or not by // finding an non-zero element above main diagonal for (i = 0; i < m; i++) { for (j = i + 1; j < n; j++) { if (A[i, j] != 0) { // non-zero element found flag = 1; break; } } // break the loop as non-zero element // above main diagonal has been detected if (flag == 1) break; } // display the result if (flag == 0) Console.WriteLine("\nIt is a lower triangular matrix!"); else Console.WriteLine("\nIt is not a lower triangular matrix!"); } // wait for user to press any key Console.ReadKey(); } } }
Output
Enter the number of rows of matrix = 3
Enter the number of columns of matrix = 3
Enter the elements of matrix of order 3 x 3 =
Enter the element at row 1 column 1 of matrix = 2
Enter the element at row 1 column 2 of matrix = 0
Enter the element at row 1 column 3 of matrix = 0
Enter the element at row 2 column 1 of matrix = 1
Enter the element at row 2 column 2 of matrix = 2
Enter the element at row 2 column 3 of matrix = 0
Enter the element at row 3 column 1 of matrix = 1
Enter the element at row 3 column 2 of matrix = 1
Enter the element at row 3 column 3 of matrix = 2
It is a lower triangular matrix!