Next: Genetické algoritmy
Up: Třetí fáze, problém nejmenších
Previous: Třetí fáze, problém nejmenších
  Obsah
Problém nejmenších čtverců
Máme zadány matice
a
a hledáme takovou matici
, že pro každou matici
platí
![\begin{displaymath}
\vert\vert {\bf B} - {\bf A}{\bf X'} \vert\vert \geq
\vert\vert {\bf B} - {\bf A}{\bf X} \vert\vert
\end{displaymath}](img243.gif) |
(4.25) |
Pokud neexistuje inverzní matice k matici
použijeme k řešení jednu
z následujících metod.
Moore-Penroseova pseudoinverse
Řešení spočteme
![\begin{displaymath}
{\bf X} = {\bf A}^{+}{\bf B},
\end{displaymath}](img245.gif) |
(4.26) |
kde
je pseudoinverze matice
. Pseudoinverzí
matice
nazýváme takovou matici
, pro kterou platí
Existuje-li k matici A inversní matice, je rovna její pseudoinversi.
Pokud je matice
regulární, pak matice
splňuje podmínky 1-4.
Tato matice bývá označována jako Moore-Penroseova pseudoinverse.
SVD rozklad
Pro každou matici
existují matice
,
a
tak, že
![\begin{displaymath}{\bf A} = {\bf U}{\bf\Sigma}{\bf V}^T\end{displaymath}](img254.gif) |
(4.27) |
a
a
je diagonální matice. Prvky diagonály
se nazývají singulární čísla matice
. Pokud je hodnost matice
rovna
, pak
jsou rovny
nule.
Dosadíme-li za
její SVD rozklad dostáváme
![\begin{displaymath}
{\bf U}{\bf\Sigma}{\bf V}^T{\bf X} = {\bf B}
\end{displaymath}](img259.gif) |
(4.28) |
a tedy
![\begin{displaymath}
{\bf X} = {\bf V}{\bf\Sigma}^{+}{\bf U}^T{\bf B}
\end{displaymath}](img260.gif) |
(4.29) |
kde
a
, pro
a
, pro
.
G.H.Golub a C.Reinsch [10, str. 134-151] navrhli algoritmus na
výpočet SVD rozkladu. Nejprve upravíme matici na bidiagonální tvar a po té se
provádí vlastní rozklad. Redukce na bidiagonální tvar se provádí pomocí
Householderových transformací [8, str. 52-57]
![\begin{displaymath}{\bf P}^{(k)} = {\bf I} - 2\vec{x}^{(k)}\vec{x}^{(k)T} \end{displaymath}](img266.gif) |
(4.30) |
![\begin{displaymath}{\bf Q}^{(k)} = {\bf I} - 2\vec{y}^{(k)}\vec{y}^{(k)T} \end{displaymath}](img267.gif) |
(4.31) |
tak, aby
byla v horním bidiagonálním tvaru.
Matice
má stejná singulární čísla jako matice
. Tedy
je-li
![\begin{displaymath}{\bf J}^0 = {\bf G}{\bf\Sigma}{\bf H}^T \end{displaymath}](img270.gif) |
(4.32) |
pak
![\begin{displaymath}{\bf A} = {\bf P}{\bf G}{\bf\Sigma}{\bf H}^T{\bf Q}^T \end{displaymath}](img271.gif) |
(4.33) |
tak, že
a
a
.
SVD rozklad bidiaogonální matice probíhá jako iterativní diagonalizace
,
kde
a
a
jsou transformační matice složené s Givensových
rotací [8, str. 49-51].
QR rozklad
B.Businger a G.H.Golub [10, str. 111-118] navrhli řešení problému
nejmenších čtverců pomocí Householderových transformací.
Máme matici
, kde
a hodnost matice
je
, a matici
. Hledáme
tak, aby
pro každou matici
platilo
![\begin{displaymath}
\parallel{\bf B}-{\bf A}{\bf X'}\parallel \geq
\parallel{\bf B}-{\bf A}{\bf X}\parallel
\end{displaymath}](img281.gif) |
(4.34) |
Platí, že
, pokud
Zvolíme
tak, aby
![\begin{displaymath}{\bf Q}{\bf A} = {\bf R} = \left(
\begin{array}{c}
{\bf\tilde{R}} \\ {\bf0}
\end{array}\right) ,\end{displaymath}](img285.gif) |
(4.35) |
kde
je horní trojúhelníková matice. Pak
.
Dekompozici lze realizovat pomocí Householderových transformací
![\begin{displaymath}
\begin{array}{cr}
{\bf P}^k={\bf I}-\beta_k\vec{u}^k\vec{u}^{kT} \qquad k=1, \cdots ,n
\end{array}\end{displaymath}](img288.gif) |
(4.36) |
Vektory
a parametry
určíme tak, aby k-tá transformace
vynulovala v k-tém sloupci všechny prvky pod diagonálou.
![$\displaystyle \sigma_k$](img291.gif) |
![$\textstyle =$](img94.gif) |
![$\displaystyle \left( \sum_{i=k}^m ({a}_{ik}^k)^2 \right)$](img292.gif) |
(4.37) |
![$\displaystyle \beta_k$](img293.gif) |
![$\textstyle =$](img94.gif) |
![$\displaystyle \left( \sigma_k(\sigma_k+\vert a_{kk}^k\vert)\right)$](img294.gif) |
(4.38) |
![$\displaystyle u_i^k$](img295.gif) |
![$\textstyle =$](img94.gif) |
![$\displaystyle 0, \quad i<k$](img296.gif) |
(4.39) |
![$\displaystyle u_k^k$](img297.gif) |
![$\textstyle =$](img94.gif) |
![$\displaystyle sgn(a_{kk}^k)\left( \sigma_k+\vert a_{kk}^k\vert \right)$](img298.gif) |
(4.40) |
![$\displaystyle u_i^k$](img295.gif) |
![$\textstyle =$](img94.gif) |
![$\displaystyle a_{ik}^k, \quad i>k$](img299.gif) |
(4.41) |
Praktický výpočet probíhá iterativně. Po určení prvního řešení
, položíme
. Potom
, kde
. Výpočet korekce
je snadný, neboť rozklad matice
už máme.
Next: Genetické algoritmy
Up: Třetí fáze, problém nejmenších
Previous: Třetí fáze, problém nejmenších
  Obsah
Petra Kudova
2001-04-19