C++ Bc. 33: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
mBez shrnutí editace
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 1: Řádek 1:
__NOEDITSECTION__
;[http://en.wikipedia.org/wiki/Cholesky_decomposition Choleskyho rozklad]
== Choleskyho rozklad ==


Napište funkci, která počítá  
Napište funkci, která počítá ''Choleskyho rozklad'' pozitivně semidefinitní matice.
[http://en.wikipedia.org/wiki/Cholesky_decomposition Choleskyho rozklad]
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


<math>\begin{pmatrix}
<math>\begin{pmatrix}
Řádek 29: Řádek 26:
   0 &  0 &  0 &  0 &  1
   0 &  0 &  0 &  0 &  1
\end{pmatrix}
\end{pmatrix}
</math>
</math>


Řádek 45: Řádek 41:
\end{pmatrix},</math>
\end{pmatrix},</math>


kde <math>\mathbf b_{*1} = {1\over \sqrt{a_{11}}} \mathbf a_{*1}</math> (tj. prvky pod diagonálou vydělíme odmocninou z diagonálnho prvku) a
kde <math>\mathbf b_{*1} = {1\over \sqrt{a_{11}}} \mathbf a_{*1}</math> (tj. prvky pod diagonálou vydělíme odmocninou z diagonálního prvku) a
<math>\mathbf B^{(2)} = \mathbf A^{(2)} - \mathbf b_{*1} \mathbf b_{*1}^t</math>. V našem příkladu tedy
<math>\mathbf B^{(2)} = \mathbf A^{(2)} - \mathbf b_{*1} \mathbf b_{*1}^t</math>. V našem příkladu tedy


Řádek 69: Řádek 65:
</math>  
</math>  


Submatice <math>\mathbf B^{(2)}</math> je také pozitivně definitní a stejným způsobem můžeme vypočítat druhý sloupec choleskyho rozkladu a obdobně i zbývající sloupce.
Submatice <math>\mathbf B^{(2)}</math> je také pozitivně definitní a stejným způsobem můžeme vypočítat druhý sloupec Choleskyho rozkladu a obdobně i zbývající sloupce.


Explicitní vzorce pro výpočet koeficentů matice <math>\mathbf L</math> Choleskyho rozkladu jsou
Explicitní vzorce pro výpočet koeficentů matice <math>\mathbf L</math> Choleskyho rozkladu jsou

Aktuální verze z 15. 1. 2009, 16:09

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álního prvku) a . V našem příkladu tedy

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.

Explicitní vzorce pro výpočet koeficentů matice Choleskyho rozkladu jsou


[ Zpět | C++ | Další ]