C++ Bc. 33: Porovnání verzí
m + link |
mBez shrnutí editace |
||
Řádek 4: | Řádek 4: | ||
Napište funkci, která počítá | Napište funkci, která počítá | ||
[http://en.wikipedia.org/wiki/Cholesky_decomposition choleskyho rozklad] | [http://en.wikipedia.org/wiki/Cholesky_decomposition choleskyho rozklad] | ||
pozitivně semidefinitní matice | pozitivně semidefinitní matice. | ||
Matice <math>\mathbf A</math> je pozitivně definitní, pokud pro každý nenulový vektor <math>\mathbf x</math> platí <math>\mathbf x^t \mathbf A \mathbf x > 0.</math> Pro každou pozitivně definitní matici existuje jednoznačný symetrický rozklad (Choleskyho rozklad) <math>\mathbf A = \mathbf L \mathbf L^t,</math> kde <math>\mathbf L</math> je dolní trojúhelníková matice. Například | Matice <math>\mathbf A</math> je pozitivně definitní, pokud pro každý nenulový vektor <math>\mathbf x</math> platí <math>\mathbf x^t \mathbf A \mathbf x > 0.</math> Pro každou pozitivně definitní matici existuje jednoznačný symetrický rozklad (Choleskyho rozklad) <math>\mathbf A = \mathbf L \mathbf L^t,</math> kde <math>\mathbf L</math> je dolní trojúhelníková matice. Například |
Verze z 9. 9. 2006, 17:08
Choleskyho rozklad
Napište funkci, která počítá choleskyho rozklad pozitivně semidefinitní matice.
Matice je pozitivně definitní, pokud pro každý nenulový vektor platí Pro každou pozitivně definitní matici existuje jednoznačný symetrický rozklad (Choleskyho rozklad) kde je dolní trojúhelníková matice. Například
První sloupec Choleskyho rozkladu můžeme vypočítat jako
kde (tj. prvky pod diagonálou vydělíme odmocninou z diagonálnho prvku) a . V našem příkladu tedy
prvky vektoru jsou podtrženy. Submatice je také pozitivně definitní a stejným způsobem můžeme vypočítat druhý sloupec choleskyho rozkladu a obdobně i zbývající sloupce.