Block matrix

From Infogalactic: the planetary knowledge core
(Redirected from Block diagonal matrix)
Jump to: navigation, search

In mathematics, a block matrix or a partitioned matrix is a matrix which is interpreted as having been broken into sections called blocks or submatrices.[1] Intuitively, a matrix interpreted as a block matrix can be visualized as the original matrix with a collection of horizontal and vertical lines which break it out, or partition it, into a collection of smaller matrices.[2] Any matrix may be interpreted as a block matrix in one or more ways, with each interpretation defined by how its rows and columns are partitioned.

This notion can be made more precise for an n by m matrix M by partitioning n into a collection rowgroups, and then partitioning m into a collection colgroups. The original matrix is then considered as the "total" of these groups, in the sense that the (i,j) entry of the original matrix corresponds in a 1-to-1 way with some (s,t) offset entry of some (x,y), where x \in \mathit{rowgroups} and y \in \mathit{colgroups}.

Block matrix algebra arises in general from biproducts in categories of matrices.[3]

Example

A 168×168 element block matrix with 12×12, 12×24, 24x12, and 24×24 sub-Matrices. Non-zero elements are in blue, zero elements are grayed.

The matrix

\mathbf{P} = \begin{bmatrix}
1 & 1 & 2 & 2\\
1 & 1 & 2 & 2\\
3 & 3 & 4 & 4\\
3 & 3 & 4 & 4\end{bmatrix}

can be partitioned into 4 2×2 blocks

\mathbf{P}_{11} = \begin{bmatrix}
1 & 1 \\
1 & 1 \end{bmatrix},   \mathbf{P}_{12} = \begin{bmatrix}
2 & 2\\
2 & 2\end{bmatrix},  \mathbf{P}_{21} = \begin{bmatrix}
3 & 3 \\
3 & 3 \end{bmatrix},   \mathbf{P}_{22} = \begin{bmatrix}
4 & 4\\
4 & 4\end{bmatrix}.

The partitioned matrix can then be written as

\mathbf{P} = \begin{bmatrix}
\mathbf{P}_{11} & \mathbf{P}_{12}\\
\mathbf{P}_{21} & \mathbf{P}_{22}\end{bmatrix}.

Block matrix multiplication

It is possible to use a block partitioned matrix product that involves only algebra on submatrices of the factors. The partitioning of the factors is not arbitrary, however, and requires "conformable partitions"[4] between two matrices A and B such that all submatrix products that will be used are defined.[5] Given an (m \times p) matrix \mathbf{A} with q row partitions and s column partitions


\mathbf{A} = \begin{bmatrix}
\mathbf{A}_{11} & \mathbf{A}_{12} & \cdots &\mathbf{A}_{1s}\\
\mathbf{A}_{21} & \mathbf{A}_{22} & \cdots &\mathbf{A}_{2s}\\
\vdots          & \vdots          & \ddots &\vdots \\
\mathbf{A}_{q1} & \mathbf{A}_{q2} & \cdots &\mathbf{A}_{qs}\end{bmatrix}

and a (p\times n) matrix \mathbf{B} with s row partitions and r column partitions


\mathbf{B} = \begin{bmatrix}
\mathbf{B}_{11} & \mathbf{B}_{12} & \cdots &\mathbf{B}_{1r}\\
\mathbf{B}_{21} & \mathbf{B}_{22} & \cdots &\mathbf{B}_{2r}\\
\vdots          & \vdots          & \ddots &\vdots \\
\mathbf{B}_{s1} & \mathbf{B}_{s2} & \cdots &\mathbf{B}_{sr}\end{bmatrix},

that are compatible with the partitions of A, the matrix product


\mathbf{C}=\mathbf{A}\mathbf{B}

can be formed blockwise, yielding \mathbf{C} as an (m\times n) matrix with q row partitions and r column partitions. The matrices in your matrix \mathbf{C} are calculated by multiplying:


\mathbf{C}_{\alpha \beta} = \sum^s_{\gamma=1}\mathbf{A}_{\alpha \gamma}\mathbf{B}_{\gamma \beta}.

Or, using the Einstein notation that implicitly sums over repeated indices:


\mathbf{C}_{\alpha \beta} = \mathbf{A}_{\alpha \gamma}\mathbf{B}_{\gamma \beta}.

Block matrix inversion

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

If a matrix is partitioned into four blocks, it can be inverted blockwise as follows:


\begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \mathbf{A}^{-1}+\mathbf{A}^{-1}\mathbf{B}(\mathbf{D}-\mathbf{CA}^{-1}\mathbf{B})^{-1}\mathbf{CA}^{-1} & -\mathbf{A}^{-1}\mathbf{B}(\mathbf{D}-\mathbf{CA}^{-1}\mathbf{B})^{-1} \\ -(\mathbf{D}-\mathbf{CA}^{-1}\mathbf{B})^{-1}\mathbf{CA}^{-1} & (\mathbf{D}-\mathbf{CA}^{-1}\mathbf{B})^{-1} \end{bmatrix},
\,

where A, B, C and D have arbitrary size. (A and D must be square, so that they can be inverted. Furthermore, A and DCA−1B must be nonsingular.[6])

Equivalently,


\begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} (\mathbf{A}-\mathbf{BD}^{-1}\mathbf{C})^{-1} & -(\mathbf{A}-\mathbf{BD}^{-1}\mathbf{C})^{-1}\mathbf{BD}^{-1} \\ -\mathbf{D}^{-1}\mathbf{C}(\mathbf{A}-\mathbf{BD}^{-1}\mathbf{C})^{-1} & \quad \mathbf{D}^{-1}+\mathbf{D}^{-1}\mathbf{C}(\mathbf{A}-\mathbf{BD}^{-1}\mathbf{C})^{-1}\mathbf{BD}^{-1}\end{bmatrix}.
\,

Block diagonal matrices

A block diagonal matrix is a block matrix which is a square matrix, and having main diagonal blocks square matrices, such that the off-diagonal blocks are zero matrices. A block diagonal matrix A has the form

 
\mathbf{A} = \begin{bmatrix} 
\mathbf{A}_{1} & 0 & \cdots & 0 \\ 0 & \mathbf{A}_{2} & \cdots &  0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & \mathbf{A}_{n} 
\end{bmatrix}

where Ak is a square matrix; in other words, it is the direct sum of A1, …, An. It can also be indicated as A1 \oplus A2 \oplus\,\ldots\,\oplus  An  or  diag(A1, A2,\ldots, An)  (the latter being the same formalism used for a diagonal matrix). Any square matrix can trivially be considered a block diagonal matrix with only one block.

For the determinant and trace, the following properties hold

 \operatorname{det} \mathbf{A} = \operatorname{det} \mathbf{A}_1 \times \ldots \times \operatorname{det} \mathbf{A}_n,
 \operatorname{tr} \mathbf{A} = \operatorname{tr} \mathbf{A}_1 +\cdots +\operatorname{tr} \mathbf{A}_n.

The inverse of a block diagonal matrix is another block diagonal matrix, composed of the inverse of each block, as follows:

\begin{pmatrix}
\mathbf{A}_{1} & 0 & \cdots & 0 \\
0 & \mathbf{A}_{2} & \cdots &  0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & \mathbf{A}_{n} 
\end{pmatrix}^{-1} = \begin{pmatrix} \mathbf{A}_{1}^{-1} & 0 & \cdots & 0 \\
 0 & \mathbf{A}_{2}^{-1} & \cdots &  0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & \mathbf{A}_{n}^{-1} 
\end{pmatrix}.

The eigenvalues and eigenvectors of A are simply those of A_{1} and A_{2} and ... and A_{n} (combined).

Block tridiagonal matrices

A block tridiagonal matrix is another special block matrix, which is just like the block diagonal matrix a square matrix, having square matrices (blocks) in the lower diagonal, main diagonal and upper diagonal, with all other blocks being zero matrices. It is essentially a tridiagonal matrix but has submatrices in places of scalars. A block tridiagonal matrix A has the form

 
\mathbf{A} = \begin{bmatrix}
\mathbf{B}_{1}  & \mathbf{C}_{1}  &         &         & \cdots  &         & 0 \\
\mathbf{A}_{2}  & \mathbf{B}_{2}  & \mathbf{C}_{2}   &         &         &         & \\
       & \ddots & \ddots  & \ddots  &         &         & \vdots \\
       &        & \mathbf{A}_{k}   & \mathbf{B}_{k}   & \mathbf{C}_{k}   &         & \\
\vdots &        &         & \ddots  & \ddots  & \ddots  & \\
       &        &         &         & \mathbf{A}_{n-1} & \mathbf{B}_{n-1} & \mathbf{C}_{n-1}   \\
0      &        & \cdots  &         &         & \mathbf{A}_{n}   & \mathbf{B}_{n}
\end{bmatrix}

where Ak, Bk and Ck are square sub-matrices of the lower, main and upper diagonal respectively.

Block tridiagonal matrices are often encountered in numerical solutions of engineering problems (e.g., computational fluid dynamics). Optimized numerical methods for LU factorization are available and hence efficient solution algorithms for equation systems with a block tridiagonal matrix as coefficient matrix. The Thomas algorithm, used for efficient solution of equation systems involving a tridiagonal matrix can also be applied using matrix operations to block tridiagonal matrices (see also Block LU decomposition).

Block Toeplitz matrices

A block Toeplitz matrix is another special block matrix, which contains blocks that are repeated down the diagonals of the matrix, as a Toeplitz matrix has elements repeated down the diagonal. The individual block matrix elements, Aij, must also be a Toeplitz matrix.

A block Toeplitz matrix A has the form

 
\mathbf{A} = \begin{bmatrix}
\mathbf{A}_{(1,1)}  & \mathbf{A}_{(1,2)}  &         &         & \cdots  &     \mathbf{A}_{(1,n-1)}    & \mathbf{A}_{(1,n)} \\
\mathbf{A}_{(2,1)}  & \mathbf{A}_{(1,1)}  & \mathbf{A}_{(1,2)}   &         &         &         & \mathbf{A}_{(1,n-1)} \\
       & \ddots & \ddots  & \ddots  &         &         & \vdots \\
       &        & \mathbf{A}_{(2,1)}   & \mathbf{A}_{(1,1)}   & \mathbf{A}_{(1,2)}   &         & \\
\vdots &        &         & \ddots  & \ddots  & \ddots  & \\
\mathbf{A}_{(n-1,1)}       &        &         &         & \mathbf{A}_{(2,1)} & \mathbf{A}_{(1,1)} & \mathbf{A}_{(1,2)}   \\
\mathbf{A}_{(n,1)}      & \mathbf{A}_{(n-1,1)}       & \cdots  &         &         & \mathbf{A}_{(2,1)}   & \mathbf{A}_{(1,1)}
\end{bmatrix}.

Direct sum

For any arbitrary matrices A (of size m × n) and B (of size p × q), we have the direct sum of A and B, denoted by A \oplus B and defined as


  \mathbf{A} \oplus \mathbf{B} =
  \begin{bmatrix}
     a_{11} & \cdots & a_{1n} &      0 & \cdots &      0 \\
     \vdots & \cdots & \vdots & \vdots & \cdots & \vdots \\
    a_{m 1} & \cdots & a_{mn} &      0 & \cdots &      0 \\
          0 & \cdots &      0 & b_{11} & \cdots &  b_{1q} \\
     \vdots & \cdots & \vdots & \vdots & \cdots & \vdots \\
          0 & \cdots &      0 & b_{p1} & \cdots &  b_{pq} 
  \end{bmatrix}.

For instance,


  \begin{bmatrix}
    1 & 3 & 2 \\
    2 & 3 & 1
  \end{bmatrix}
\oplus
  \begin{bmatrix}
    1 & 6 \\
    0 & 1
  \end{bmatrix}
=
  \begin{bmatrix}
    1 & 3 & 2 & 0 & 0 \\
    2 & 3 & 1 & 0 & 0 \\
    0 & 0 & 0 & 1 & 6 \\
    0 & 0 & 0 & 0 & 1
  \end{bmatrix}.

This operation generalizes naturally to arbitrary dimensioned arrays (provided that A and B have the same number of dimensions).

Note that any element in the direct sum of two vector spaces of matrices could be represented as a direct sum of two matrices.

Direct product

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Application

In linear algebra terms, the use of a block matrix corresponds to having a linear mapping thought of in terms of corresponding 'bunches' of basis vectors. That again matches the idea of having distinguished direct sum decompositions of the domain and range. It is always particularly significant if a block is the zero matrix; that carries the information that a summand maps into a sub-sum.

Given the interpretation via linear mappings and direct sums, there is a special type of block matrix that occurs for square matrices (the case m = n). For those we can assume an interpretation as an endomorphism of an n-dimensional space V; the block structure in which the bunching of rows and columns is the same is of importance because it corresponds to having a single direct sum decomposition on V (rather than two). In that case, for example, the diagonal blocks in the obvious sense are all square. This type of structure is required to describe the Jordan normal form.

This technique is used to cut down calculations of matrices, column-row expansions, and many computer science applications, including VLSI chip design. An example is the Strassen algorithm for fast matrix multiplication, as well as the Hamming(7,4) encoding for error detection and recovery in data transmissions.

Notes

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. H.D. Macedo, J.N. Oliveira, Typing linear algebra: A biproduct-oriented approach, Science of Computer Programming, Volume 78, Issue 11, 1 November 2013, Pages 2160-2191, ISSN 0167-6423, http://dx.doi.org/10.1016/j.scico.2012.07.012.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.

References

  • Lua error in package.lua at line 80: module 'strict' not found.