In algebra lineare la decomposizione di Cholesky è la fattorizzazione di una matrice hermitiana e definita positiva in una matrice triangolare inferiore e nella sua trasposta coniugata. Essa si può considerare come un caso speciale della più generale decomposizione LU. Il nome di questa decomposizione ricorda il matematico francese André-Louis Cholesky (1875-1918).
Sia
una matrice quadrata, hermitiana e definita positiva su campo
; tale
può essere decomposta come:
![{\displaystyle \mathbf {A} =\mathbf {L} \mathbf {L} ^{*}\qquad (\mathbf {A} \in \mathbb {K} ^{m\times m})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3ea34e58a9a6e287d5cb4a08623cc04bbbe97691)
con
matrice triangolare inferiore con elementi diagonali positivi e
la matrice coniugata trasposta di
.
Se la matrice
è reale e simmetrica, la coniugata trasposta di
coincide con la trasposta e la decomposizione si semplifica:
![{\displaystyle \mathbf {A} =\mathbf {L} \mathbf {L} ^{T}\qquad (\mathbf {A} \in \mathbb {R} ^{n\times n})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/235a5aa21cf543eefa5c380e13ef1c72504865b3)
L'algoritmo di Cholesky, usato per calcolare la matrice di decomposizione
, è una versione modificata dell'algoritmo di Gauss.
L'algoritmo ricorsivo inizia con il considerare:
![{\displaystyle \mathbf {A} ^{(1)}:=\mathbf {A} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/177733fb20fa41aeba18700e5232cfeec4e96998)
![{\displaystyle \mathbf {A} ^{(i)}:={\begin{pmatrix}a_{i,i}&\mathbf {b} _{i}^{*}\\\mathbf {b} _{i}&\mathbf {B} ^{(i)}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d88eff4853d1ea3caa1477e5dc648dd6beb80b72)
![{\displaystyle \mathbf {L} _{i}:={\begin{pmatrix}{\frac {1}{\sqrt {a_{i,i}}}}&0\\-{\frac {1}{a_{i,i}}}\mathbf {b} _{i}&\mathbf {I} \end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6fa41ff37b9922d9e8d5ef88830068a996d0ee48)
![{\displaystyle \mathbf {A} ^{(i)}:=\mathbf {L} _{i}^{-1}{\begin{pmatrix}1&0\\0&\mathbf {B} ^{(i)}-{\frac {1}{a_{i,i}}}\mathbf {b} _{i}\mathbf {b} _{i}^{*}\end{pmatrix}}(\mathbf {L} _{i}^{-1})^{*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1cdf64a25ee985e6289d65fe4cb09e80d5e2a7d8)
Si definisce per i successivi
:
![{\displaystyle \mathbf {A} ^{(i+1)}:=\mathbf {B} ^{(i)}-{\frac {1}{a_{i,i}}}\mathbf {b} _{i}\mathbf {b} _{i}^{*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0bd17b16911b7647b87dd127a12f052c8c199239)
in modo che:
![{\displaystyle \mathbf {A} ^{(i)}=\mathbf {L} _{i}^{-1}{\begin{pmatrix}1&0\\0&\mathbf {A} ^{(i+1)}\end{pmatrix}}(\mathbf {L} _{i}^{-1})^{*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/65aa81966357ebe17fc394e20478c23e5a3bcc42)
La ricorsione termina dopo n passi dove
. Si vede che la matrice triangolare inferiore
è calcolata come:
![{\displaystyle \mathbf {L} :=\mathbf {L} _{1}\mathbf {L} _{2}\dots \mathbf {L} _{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b97ce1f73a8083de6e40770077bf921ccffff1fc)
L'algoritmo di Cholesky Banachiewicz dà una formula per calcolare direttamente le entrate della matrice triangolare inferiore
. Esso inizia formando l'angolo superiore sinistro della matrice
e procede a calcolare la matrice riga per riga:
L'algoritmo di Cholesky-Crout fornisce un procedimento un po' differente per calcolare le entrate della matrice triangolare inferiore
. Inizia formando l'angolo superiore sinistro della matrice
e procede a calcolare la matrice colonna per colonna:
Un esempio pratico per una decomposizione di Cholesky di una matrice 2x2:
- (EN) S. J. Julier and J. K. Uhlmann. A General Method for Approximating Nonlinear Transformations of ProbabilityDistributions.
- (EN) S. J. Julier and J.K. Uhlmann, A new extension of the Kalman filter to nonlinear systems, in Proc. AeroSense: 11th Int. Symp. Aerospace/Defence Sensing, Simulation and Controls, 1997, pp. 182–193.