LowerTriangularMatrixQ
Details and Options
- LowerTriangularMatrixQ[m,k] works even if m is not a square matrix.
- In LowerTriangularMatrixQ[m,k], positive k refers to superdiagonals above the main diagonal and negative k refers to subdiagonals below the main diagonal.
- LowerTriangularMatrixQ works with SparseArray and structured array objects.
- The following option can be given:
-
Tolerance Automatic numerical tolerance to use - For approximate matrices, the option Tolerance->t can be used to indicate that all entries Abs[mij]≤t are taken to be zero. »
Examples
open all close allBasic Examples (3)
Test if a matrix is lower triangular:
LowerTriangularMatrixQ[(| | | |
| - | - | - |
| a | 0 | 0 |
| b | c | 0 |
| d | e | f |)]LowerTriangularMatrixQ[(| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |)]Test if a matrix is lower triangular starting from the first superdiagonal:
MatrixForm[{{1, 2, 0}, {3, 4, 5}, {6, 7, 8}}]LowerTriangularMatrixQ[%, 1]Test if a matrix is lower triangular starting from the first subdiagonal:
MatrixForm[{{0, 0, 0}, {1, 0, 0}, {2, 3, 0}}]LowerTriangularMatrixQ[%, -1]Scope (12)
Basic Uses (8)
(mat23 = {{1, 0, 0}, {2, 3, 0}})//MatrixFormLowerTriangularMatrixQ[mat23](mat32 = {{1, 0}, {2, 3}, {4, 5}})//MatrixFormLowerTriangularMatrixQ[mat32]LowerTriangularMatrixQ[{{a, b}, {c, d}}]The matrix is lower triangular when b=0:
LowerTriangularMatrixQ[{{a, b}, {c, d}} /. b -> 0]Test if a real machine-number matrix is lower triangular:
LowerTriangularMatrixQ[{{1.5, 0, 0}, {2.2, 3.1, 0}, {4.7, 5.2, 6.4}}]Test if a complex matrix is lower triangular:
LowerTriangularMatrixQ[{{1. + I, 0, 0}, {2 - I, 3 I, 0}, {4, 5I, 6}}]Test if an exact matrix is lower triangular:
LowerTriangularMatrixQ[{{1, Sqrt[2]}, {Pi, 1 / 2}}]Test an arbitrary-precision matrix:
LowerTriangularMatrixQ[N[{{1, 0}, {Pi, 1 / 2}}, 20]]Test if matrices have nonzero entries starting from a particular superdiagonal:
LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | -- |
| 1 | 2 | 3 | 0 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 |), 1]LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | -- |
| 1 | 2 | 3 | 0 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 |), 2]Note that this matrix is not lower triangular:
LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | -- |
| 1 | 2 | 3 | 0 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 |)]Test if matrices have nonzero entries starting from a particular subdiagonal:
LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | - |
| 0 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 |
| 9 | 10 | 0 | 0 |
| 13 | 14 | 15 | 0 |), -1]LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | - |
| 0 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 |
| 9 | 10 | 0 | 0 |
| 13 | 14 | 15 | 0 |), -2]Note that this matrix is lower triangular:
LowerTriangularMatrixQ[(| | | | |
| -- | -- | -- | - |
| 0 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 |
| 9 | 10 | 0 | 0 |
| 13 | 14 | 15 | 0 |)]Special Matrices (4)
mat = SparseArray[{{1, 1} -> 2, {2, 1} -> 1, {3, 2} -> 5}, {3, 3}]LowerTriangularMatrixQ[mat]SymmetrizedArray[{{1, 1} -> 2, {2, 1} -> 1}, {2, 2}, Symmetric[All]]LowerTriangularMatrixQ[%]QuantityArray[{{0, 0}, {3, 0}, {5, 6}}, {"Meters", "Seconds"}]LowerTriangularMatrixQ[%]Identity matrices are lower triangular:
LowerTriangularMatrixQ[IdentityMatrix[5]]Hilbert matrices are not lower triangular:
LowerTriangularMatrixQ[HilbertMatrix[3]]Options (1)
Tolerance (1)
This matrix is not lower triangular:
m = {{1., 10 ^ -12, 0}, {2., 3., 10 ^ -13}, {4., 5., 6.}};
LowerTriangularMatrixQ[m]Add the Tolerance option to consider numbers smaller than 10-12 to be zero:
LowerTriangularMatrixQ[m, Tolerance -> 10 ^ -12]Applications (1)
JordanDecomposition relates any matrix to an upper-triangular matrix via a similarity transformation
:
m = {{1, 0, 0, 0}, {0, 1, 0, 0}, {1, -1, 1, 0}, {1, -1, 1, 1}};
{s, j} = JordanDecomposition[m];MatrixForm /@ {m, j, s}Verify that the Jordan matrix is upper triangular and similar to the original matrix:
{UpperTriangularMatrixQ[j], m == s.j.Inverse[s]}The matrix
is diagonalizable iff its Jordan matrix
is also lower triangular:
{LowerTriangularMatrixQ[j], DiagonalizableMatrixQ[m]}Properties & Relations (9)
LowerTriangularMatrixQ returns False for inputs that are not matrices:
LowerTriangularMatrixQ[1]LowerTriangularMatrixQ[{}]Matrices of dimensions {n,0} are lower triangular:
LowerTriangularMatrixQ[{{}, {}}]LowerTriangularize returns matrices that are LowerTriangularMatrixQ:
LowerTriangularMatrixQ[LowerTriangularize[{{a, b}, {c, d}}]]The inverse of a lower-triangular matrix is lower triangular:
mat = LowerTriangularize[RandomInteger[{1, 10}, {5, 5}]];LowerTriangularMatrixQ[Inverse[mat]]This extends to arbitrary powers and functions:
LowerTriangularMatrixQ[MatrixPower[mat, n]]LowerTriangularMatrixQ[MatrixFunction[f, mat]]The product of two (or more) lower-triangular matrices is lower triangular:
m1 = LowerTriangularize[RandomReal[1., {5, 5}]];
m2 = LowerTriangularize[RandomReal[1., {5, 5}]];LowerTriangularMatrixQ[m1.m2]The determinant of a triangular matrix equals the product of the diagonal entries:
m = LowerTriangularize[RandomReal[1., {5, 5}]];LowerTriangularMatrixQ[m]Det[m] == Apply[Times, Diagonal[m]]Eigenvalues of a triangular matrix equal its diagonal elements:
m = LowerTriangularize[RandomReal[1., {5, 5}]];LowerTriangularMatrixQ[m]Eigenvalues[m] == Reverse@Sort@Diagonal[m]LowerTriangularMatrixQ[m,0] is equivalent to LowerTriangularMatrixQ[m]:
{LowerTriangularMatrixQ[{{1, 0}, {0, 2}}], LowerTriangularMatrixQ[{{1, 0}, {0, 2}}, 0]}{LowerTriangularMatrixQ[{{1, 3}, {4, 2}}], LowerTriangularMatrixQ[{{1, 3}, {4, 2}}, 0]}A matrix is lower triangular starting at diagonal
iff its transpose is upper triangular starting at diagonal
:
k = RandomInteger[{-2, 2}];
m = LowerTriangularize[RandomReal[1., {5, 5}], k];LowerTriangularMatrixQ[m, k] == UpperTriangularMatrixQ[Transpose[m], -k]Tech Notes
Related Guides
History
Text
Wolfram Research (2019), LowerTriangularMatrixQ, Wolfram Language function, https://reference.wolfram.com/language/ref/LowerTriangularMatrixQ.html.
CMS
Wolfram Language. 2019. "LowerTriangularMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/LowerTriangularMatrixQ.html.
APA
Wolfram Language. (2019). LowerTriangularMatrixQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LowerTriangularMatrixQ.html
BibTeX
@misc{reference.wolfram_2026_lowertriangularmatrixq, author="Wolfram Research", title="{LowerTriangularMatrixQ}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/LowerTriangularMatrixQ.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_lowertriangularmatrixq, organization={Wolfram Research}, title={LowerTriangularMatrixQ}, year={2019}, url={https://reference.wolfram.com/language/ref/LowerTriangularMatrixQ.html}, note=[Accessed: 13-June-2026]}