Rozkład Choleskiego
Rozkład Choleskiego lub rozkład Banachiewicza[1] jest procedurą rozkładu symetrycznej, dodatnio określonej macierzy na iloczyn postaci:
gdzie jest dolną macierzą trójkątną[2], a jej transpozycją.
Macierz dowolnego typu można rozłożyć na iloczyn dolnej i górnej macierzy trójkątnej postaci stosując metodę LU. Jedynie w przypadku macierzy symetrycznych i dodatnio określonych możliwy jest rozkład Choleskiego[1]. Jeśli jest dodatnio określoną macierzą hermitowską to rozkład Choleskiego ma postać:
Algorytm rozkładu
[edytuj | edytuj kod]Rozpisując iloczyn otrzymujemy:
Współczynniki macierzy są zatem równe:
W ogólności[2]:
W zależności od tego czy kolejne elementy macierzy są wyznaczane wierszami czy kolumnami, powyższy algorytm nosi nazwę algorytmu Choleskiego-Banachiewicza lub algorytmu Choleskiego-Crouta. Ze względu na to, że jest dodatnio określona, wyrażenie pod pierwiastkiem jest zawsze dodatnie.
Zastosowanie
[edytuj | edytuj kod]Podobnie jak rozkład LU, rozkład Choleskiego stosuje się w rozwiązywaniu równań liniowych. Stosuje się go również przy generowaniu wektorów losowych o wielowymiarowym rozkładzie normalnym.
Aby zastosować rozkład Choleskiego do rozwiązywania układów równań z niesymetryczną macierzą główną układu należy pomnożyć lewostronnie układ równań przez transpozycję macierzy głównej układu.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ a b Fortuna, Macukow i Wąsowski 1993 ↓, s. 218.
- ↑ a b Fortuna, Macukow i Wąsowski 1993 ↓, s. 219.
Bibliografia
[edytuj | edytuj kod]- Zenon Fortuna , Bohdan Macukow , Janusz Wąsowski , Metody numeryczne, Warszawa: Wydawnictwa Naukowo-Techniczne, 1993, ISBN 83-204-1551-9 .
Linki zewnętrzne
[edytuj | edytuj kod]- „Numerical Recipes in C” rozdział 2.9 implementacja algorytmu rozkładu Choleskiego w języku C. (en.)