# BlockUpperTriangularMatrix

represents the block upper triangular matrix umat as a structured array.

# Details • Block upper triangular matrices, when represented as structured arrays, allow for efficient storage and more efficient operations, including Det and LinearSolve.
• A block upper triangular matrix generalizes an upper triangular matrix, where the scalar elements in an upper triangular matrix that are on or above the diagonal are replaced by matrices of appropriate dimensions.
• • For a BlockUpperTriangularMatrix sa, the following properties "prop" can be accessed as sa["prop"]:
•  "Matrix" block upper triangular matrix, represented as a full array "BlockSizes" sizes of the diagonal blocks "RowPermutation" permutation of the rows, represented as a permutation list "ColumnPermutation" permutation of the columns, represented as a permutation list "Properties" list of supported properties "Structure" type of structured array "StructuredData" internal data stored by the structured array "StructuredAlgorithms" list of functions with special methods for the structured array "Summary" summary information, represented as a Dataset
• Normal[BlockUpperTriangularMatrix[]] gives the block upper triangular matrix as an ordinary list.

# Examples

open allclose all

## Basic Examples(2)

Construct a block upper triangular matrix:

Show the elements:

Normal can convert a BlockUpperTriangularMatrix to its ordinary representation:

Construct a block upper triangular matrix with symbolic entries:

Show the elements:

Get the determinant:

## Scope(4)

BlockUpperTriangularMatrix objects include properties that give information about the array:

The "BlockSizes" property gives the dimensions of the diagonal blocks:

The "RowPermutation" property encodes row permutations done to the original matrix:

The "ColumnPermutation" property encodes column permutations done to the original matrix:

The "Summary" property gives a brief summary of information about the array:

The "StructuredAlgorithms" property lists the functions that use the structure of the representation:

Structured algorithms are typically faster:

Compute the determinant:

Compute the eigenvalues:

When appropriate, structured algorithms return another BlockUpperTriangularMatrix object:

Transposing bu gives a block lower triangular matrix:

The product is no longer a block triangular matrix:

Elements in BlockUpperTriangularMatrix are coerced to the precision of the nonzero elements of the input.

Exact matrix:

Machine-number matrix:

Arbitrary-precision number matrix:

## Generalizations & Extensions(1)

Represent a rectangular block upper triangular matrix:

Show the sizes of the diagonal blocks:

## Applications(1)

The Kronecker product of an upper triangular matrix and a general square matrix is a block upper triangular matrix:

## Properties & Relations(2)

Upper triangular matrices are treated as block upper triangular matrices with 1×1 diagonal blocks:

If a given matrix cannot be transformed into a block triangular form, BlockUpperTriangularMatrix returns the matrix itself: