# Factorització de Cholesky

En àlgebra lineal, la factorització o descomposició de Cholesky, desenvolupada per André-Louis Cholesky durant la Primera Guerra Mundial, és un mètode numèric de factorització de matrius molt emprat per poder resoldre, de forma eficient computacionalment, diversos sistemes d'equacions lineals amb la mateixa matriu associada.

## Definició

Si A és una matriu simètrica i definida positiva, la seva factorització per Cholesky és una expressió de A com a producte d'una matriu triangular inferior per la seva transposada, és a dir:
    $A=L\cdot L^{T}$
Aquesta factorització sempre és possible. Es pot demostrar per inducció sobre l'ordre dels menors principals de la matriu A.
    $A_{[1]}=(a_{1,1})$
Podem factoritzar-lo fàcilment, definint L com:
    $L_{[1]}=({\sqrt {(a_{1,1})}})$
És evident que es compleix, doncs:
    $A_{[1]}=L_{[1]}\cdot L_{[1]}^{T}=({\sqrt {(a_{1,1})}})\cdot ({\sqrt {(a_{1,1})}})=(a_{1,1})$
Suposem, per hipòtesi d'inducció, que és possible factoritzar el menor d'ordre n d'aquesta manera:
    $A_{[n]}=L_{[n]}\cdot L_{[n]}^{T}$
Estudiem, aleshores, si és possible factoritzar així el menor d'ordre n+1; per començar, podem escriure:
    $A_{[n+1]}={\begin{pmatrix}A_{[n]}&c_{[n+1]}\\c_{[n+1]}^{T}&a_{n+1,n+1}\\\end{pmatrix}}$
On $A_{[n]}$ és el menor d'ordre n de la matriu A, $c_{[n+1]}$ és el vector que conté el n primers termes del vector columna (n+1)-èsim de la matriu A i $a_{n+1,n+1}$ és, lògicament, el terme $a_{n+1,n+1}$ de la matriu A. I també podem escriure:
    $L_{[n+1]}={\begin{pmatrix}L_{[n]}&0_{[n+1]}\\f_{[n+1]}&l_{n+1,n+1}\\\end{pmatrix}}$
On $L_{[n]}$ és el menor d'ordre n de la matriu L, $0_{[n+1]}$ és un vector columna amb n components nul·les (doncs la matriu L és triangular inferior), $f_{[n+1]}$ és un vector fila amb n components i $l_{n+1,n+1}$ és, lògicament, el terme $l_{n+1,n+1}$ de la matriu L.
Estudiem ara si podem conèixer tots els elements de la factorització que desitgem i si no arribem a cap contradicció:
    $A_{[n+1]}={\begin{pmatrix}A_{[n]}&c_{[n+1]}\\c_{[n+1]}^{T}&a_{n+1,n+1}\\\end{pmatrix}}=L_{[n+1]}\cdot L_{[n+1]}^{T}={\begin{pmatrix}L_{[n]}&0_{[n+1]}\\f_{[n+1]}&l_{n+1,n+1}\\\end{pmatrix}}\cdot {\begin{pmatrix}L_{[n]}^{T}&f_{[n+1]}^{T}\\0_{[n+1]}^{T}&l_{n+1,n+1}\\\end{pmatrix}}$
Així doncs, obtenim els sistemes d'equacions:
    $1)A_{[n]}=L_{[n]}\cdot L_{[n]}^{T}$
    $2)c_{[n+1]}=L_{[n]}\cdot f_{[n+1]}^{T}$
    $3)c_{[n+1]}^{T}=f_{[n+1]}\cdot L_{[n]}^{T}$
    $4)a_{n+1,n+1}=f_{[n+1]}\cdot f_{[n+1]}^{T}+l_{n+1,n+1}\cdot l_{[n+1,n+1]}$
Si ens hi fixem, aplicant la hipòtesi d'inducció, l'expressió 1) és certa. 2) i 3) són equivalents; quedem-nos amb l'expressió 2). L'única incògnita d'aquesta expressió és el vector $f_{[n+1]}^{T}$. Podem girar la volta a la truita i considerar aquesta igualtat com un sistema d'equacions lineals amb la matriu del sistema triangular inferior (que es pot resoldre mitjançant una substitució endavant) on les incògnites són les components del vector $f_{[n+1]}^{T}$. Per tant, sempre podrem trobar un vector de longitud n que pugui satisfer les expressions 2) i 3). Finalment, queda l'expressió 4), on l'única incògnita que queda és el terme $l_{n+1,n+1}$; però això es redueix a trobar la solució d'una equació de 2n grau sense terme de primer grau, és a dir:
    $l_{n+1,n+1}={\sqrt {a_{n+1,n+1}-f_{[n+1]}\cdot f_{[n+1]}^{T}}}$
$l_{n+1,n+1}$

## Aplicacions

Aquest tipus de factorització és molt útil quan cal resoldre diversos sistemes d'equacions lineals amb la mateixa matriu A, ja que podem resoldre el sistema com si estiguéssim resolent dos sistemes lineals de resolució immediata (un amb una matriu triangular inferior, $L$, i un altre amb una matriu triangular superior, $L^{T}$, que es resolen amb una substitució endavant i una substitució endarrere, respectivament).

## Mètode de Cholesky Generalitzat

El Mètode de Cholesky Generalitzat és un mètode numèric de factorització de matrius molt similar a l'anteriorment exposat, amb la característica que permet estendre la factorització a matrius simètriques no singulars (no necessàriament definides positives, però sempre invertibles).
Si A és una matriu simètrica i invertible o no singular, la seva factorització per Cholesky és una expressió de A com a producte d'una matriu triangular inferior amb uns a la diagonal principal per una matriu diagonal per la transposada de la matriu triangular, és a dir:
    $A=L\cdot D\cdot L^{T}$
La demostració que aquesta factorització és possible per a qualsevol matriu A simètrica i no singular és anàloga a l'anterior, es basa en la inducció sobre l'ordre dels menors principals de la matriu A.
    $A_{[1]}=(a_{1,1})$
Podem factoritzar-lo fàcilment, definint L com la matriu triangular amb uns a la diagonal:
    $L_{[1]}=(1)$
i D com la matriu diagonal:
    $D_{[1]}=(a_{1,1})$
És evident que es compleix, doncs:
    $A_{[1]}=L_{[1]}\cdot D_{[1]}\cdot L_{[1]}^{T}=(1)\cdot (a_{1,1})\cdot (1)=(a_{1,1})$
Suposem, per hipòtesi d'inducció, que és possible factoritzar el menor d'ordre n d'aquesta manera:
    $A_{[n]}=L_{[n]}\cdot D_{[n]}\cdot L_{[n]}^{T}$
Estudiem, aleshores, si és possible factoritzar així el menor d'ordre n+1; per començar, podem escriure el menor d'ordre n+1 de la matriu simètrica A com:
    $A_{[n+1]}={\begin{pmatrix}A_{[n]}&c_{[n+1]}\\c_{[n+1]}^{T}&a_{n+1,n+1}\\\end{pmatrix}}$
On $A_{[n]}$ és el menor d'ordre n de la matriu A, $c_{[n+1]}$ és el vector que conté els n primers termes del vector columna (n+1)-èsim de la matriu A i $a_{n+1,n+1}$ és, lògicament, el terme $a_{n+1,n+1}$ de la matriu A. I podem construir els menors d'ordre n+1:
    $L_{[n+1]}={\begin{pmatrix}L_{[n]}&0_{[n+1]}\\f_{[n+1]}&1\\\end{pmatrix}}$
    $D_{[n+1]}={\begin{pmatrix}D_{[n]}&0_{[n+1]}\\0_{[n+1]}^{T}&d_{n+1,n+1}\\\end{pmatrix}}$
On $L_{[n]}$ és el menor d'ordre n de la matriu L, $D_{[n]}$ és el menor d'ordre n de la matriu D, $0_{[n+1]}$ és un vector columna amb n components nul·les, $f_{[n+1]}$ és un vector fila amb n components i $d_{n+1,n+1}$ és, lògicament, el terme $d_{n+1,n+1}$ de la matriu D.
Estudiem si podem conèixer tots els elements de la factorització que desitgem sense arribar a cap contradicció:
    $A_{[n+1]}={\begin{pmatrix}A_{[n]}&c_{[n+1]}\\c_{[n+1]}^{T}&a_{n+1,n+1}\\\end{pmatrix}}=L_{[n+1]}\cdot D_{[n+1]}\cdot L_{[n+1]}^{T}={\begin{pmatrix}L_{[n]}&0_{[n+1]}\\f_{[n+1]}&1\\\end{pmatrix}}\cdot {\begin{pmatrix}D_{[n]}&0_{[n+1]}\\0_{[n+1]}^{T}&d_{n+1,n+1}\\\end{pmatrix}}\cdot {\begin{pmatrix}L_{[n]}^{T}&f_{[n+1]}^{T}\\0_{[n+1]}^{T}&1\\\end{pmatrix}}$
Així doncs, obtenim els sistemes d'equacions:
    $1)A_{[n]}=L_{[n]}\cdot D_{[n]}\cdot L_{[n]}^{T}$
    $2)c_{[n+1]}=L_{[n]}\cdot D_{[n]}\cdot f_{[n+1]}^{T}$
    $3)c_{[n+1]}^{T}=f_{[n+1]}\cdot D_{[n]}\cdot L_{[n]}^{T}$
    $4)a_{n+1,n+1}=f_{[n+1]}\cdot D_{[n]}\cdot f_{[n+1]}^{T}+d_{n+1,n+1}$
Si ens hi fixem, aplicant la hipòtesi d'inducció, l'expressió 1) és certa. 2) i 3) són equivalents; quedem-nos amb l'expressió 2). L'única incògnita d'aquesta expressió és el vector $f_{[n+1]}$. Tanmateix, podem girar la volta a la truita i pensar que estem resolent un sistema d'equacions de terme independent $c_{[n+1]}$ i matriu $L_{[n]}\cdot D_{[n]}$, que és una matriu triangular inferior (i, per tant, resoldre aquest sistema d'equacions és directe, per substitució endavant). Finalment, queda l'expressió 4), on l'única incògnita que roman oculta és el terme $d_{n+1,n+1}$; però trobar aquest terme es redueix a calcular:
    $d_{n+1,n+1}=a_{n+1,n+1}-f_{[n+1]}\cdot D_{[n]}\cdot f_{[n+1]}^{T}$
Així doncs, és possible factoritzar A de la manera desitjada.

## Referències

* ↑ Mètode dels mínims quadrats

## Bibliografia

* Trefethen, Lloyd N.; Bau, David. SIAM. Numerical Linear Algebra, 1997 [Consulta: 16 agost 2010]. Arxivat 2010-08-02 a Wayback Machine.