# Blokmatrix

In de lineaire algebra, een deelgebied van de wiskunde, is een blokmatrix of gepartitioneerde matrix een matrix die gegeven wordt in termen van een aantal kleinere matrices, de blokken, die in bepaald opzicht dezelfde rol spelen als de elementen. Een blokmatrix ontstaat door een matrix zowel verticaal als horizontaal te verdelen en de ontstane rechthoeken als matrices op te vatten.

## Voorbeeld

De matrix
    $P={\begin{bmatrix}1&2&3&4&5\\2&4&3&3&4\\4&1&1&1&3\\3&3&4&4&1\end{bmatrix}}$
kan bijvoorbeeld als volgt opgedeeld worden
    $P={\begin{bmatrix}1&2&\vdots &3&4&\vdots &5\\2&4&\vdots &3&3&\vdots &4\\\dots &\dots &\cdot &\dots &\dots &\cdot &\dots \\4&1&\vdots &1&1&\vdots &3\\3&3&\vdots &4&4&\vdots &1\end{bmatrix}}$
in de blokken:
    $P_{11}={\begin{bmatrix}1&2\\2&4\end{bmatrix}},P_{12}={\begin{bmatrix}3&4\\3&3\end{bmatrix}},P_{13}={\begin{bmatrix}5\\4\end{bmatrix}},P_{21}={\begin{bmatrix}4&1\\3&3\end{bmatrix}},P_{22}={\begin{bmatrix}1&1\\4&4\end{bmatrix}},P_{23}={\begin{bmatrix}3\\1\end{bmatrix}}.$
De matrix P kan dan als blokmatrix geschreven worden als
    $P={\begin{bmatrix}P_{11}&P_{12}&P_{13}\\P_{21}&P_{22}&P_{23}\end{bmatrix}}.$

## Vermenigvuldiging van blokmatrices

Het matrixproduct van blokmatrices met overeenkomende partities heeft dezelfde structuur als het gewone matrixproduct met de blokken als elementen. Het product van de blokmatrix A met q rijpartities en s kolompartities.
    $A={\begin{bmatrix}A_{11}&A_{12}&\cdots &A_{1s}\\A_{21}&A_{22}&\cdots &A_{2s}\\\vdots &\vdots &\ddots &\vdots \\A_{q1}&A_{q2}&\cdots &A_{qs}\end{bmatrix}}$
en de blokmatrixB met s rijpartities en r kolompartities
    $B={\begin{bmatrix}B_{11}&B_{12}&\cdots &B_{1r}\\B_{21}&B_{22}&\cdots &B_{2r}\\\vdots &\vdots &\ddots &\vdots \\B_{s1}&B_{s2}&\cdots &B_{sr}\end{bmatrix}}$,
is de blokmatrix C met q rijpartities en r kolompartities en als blokken:
    $C_{ij}=\sum _{k=1}^{s}A_{ik}B_{kj}.$

## Blokdiagonale matrices

Een blokdiagonale matrix is een vierkante blokmatrix met vierkante blokken op de hoofddiagonaal en elk ander blok gelijk aan de nulmatrix.
Een bloktridiagonale matrix is een andere speciale blokmatrix, die net als de blokdiagonale matrix een vierkante matrix is die vierkante matrices (blokken) heeft in de lagere-, de hoofd- en de bovendiagonaal, terwijl alle andere blokken nulmatrices zijn. Het is in wezen een tridiagonale matrix, maar in plaats van scalairen heeft deze matrix submatrices. Een bloktridiagonale matrix A heeft de vorm
    $\mathbf {M} ={\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}}$
waar A$_k$, B$_k$ and C$_k$ vierkante sub-matrices zijn, respectievelijk op de lagere-, hoofd- en bovendiagonaal.
Bloktridiagonale matrices komt men vaak tegen in numerieke oplossingen van engineeringproblemen (bijvoorbeeld in de computationele vloeistofdynamica). Er bestaan geoptimaliseerde numerieke methoden voor LU-decompositie en efficiënte oplossingsalgoritmes voor vergelijkingssystemen met een bloktridiagonale matrix als coëfficiëntenmatrix. Het Thomas-algoritme, gebruikt voor het vinden van efficiënte oplossingen voor systemen van vergelijkingen met een tridiagonale matrix, kan ook worden toegepast door matrixoperaties te gebruiken die tridiagonale matrices blokken (zie ook Blok LU-decompositie).

## Directe som

Voor elke willekeurige matrices A (van grootte m × n) en B (van grootte p × q), hebben we een directe som van A en B, aangegeven door A $\oplus$ B en gedefinieerd als
    $\mathbf {A} \oplus \mathbf {B} ={\begin{bmatrix}a_{11}&\cdots &a_{1n}&0&\cdots &0\\\vdots &\cdots &\vdots &\vdots &\cdots &\vdots \\a_{m1}&\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}}.$
Bijvoorbeeld,
    ${\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}}.$
Deze operatie generaliseert op natuurlijke wijze naar willekeurig gedimensioneerde arrays (vooropgezet natuurlijk dat A en B hetzelfde aantal dimensies hebben).
Merk op dat elk element in de directe som van twee vectorruimtes van matrices weergegeven kan worden als een directe som van twee matrices.
In andere woorden het is de directe som van A$_1$, …, A$_n$. Het kan ook worden aangegeven als A$_1$ $\oplus$ A$_2$ $\oplus \,\ldots \,\oplus$ A$_n$ of diag(A$_1$, A$_2$,$\ldots$, A$_n$) (dit laatste is hetzelfde formalisme als gebruikt wordt voor de diagonale matrix).

## Toepassingen

In lineaire algebra termen correspondeert het gebruik van een blokmatrix met het uitvoeren van een lineaire transformatie, die kan worden beschreven in termen van corresponderende trosjes van basisvectoren. Dat komt overeen met het idee van het onderscheiden van directe som decomposities van het domein en het bereik. Het is altijd bijzonder significant als een blok gelijk is aan de nulmatrix.
Gegeven de interpretatie via lineaire transformaties en directe sommen, is er een speciaal type blokmatrix dat voorkomt voor vierkante matrices (wanneer m = n). Voor dit type matrices kunnen we een interpretatie van endomorfisme aannemen van een n-dimensionale ruimte V; De blokstructuur waarin de trosjes van rijen en kolommen hetzelfde is, is van belang omdat deze correspondeert met het hebben van een enkelvoudige directe som decompositie op V (in plaats van twee). In dat geval zijn de diagonale blokken bijvoorbeeld in duidelijke zin allemaal vierkant. Dit type structuur is vereist voor de Jordan-normaalvorm.
Deze techniek wordt gebruikt om het aantal berekeningen in matrices te beperken, in kolom-rij expansies, en voor vele informaticatoepassingen, waaronder in VLSI chip ontwerpen. Voorbeelden zijn het Strassen-algoritme voor snelle matrixvermenigvuldiging en de Hamming(7,4) encoding voor foutdetectie en herstel bij datatransmissies.