next up previous contents
Next: Algorytm właściwy Up: Dekompozycja QR (QR factorization) Previous: Ortogonalizacja Gram-Schmidt'a   Spis tresci

Rotacja Givensa

Niech dana będzie macierz $ A$ o wymiarach $ m \times n$ ($ m\geq
n$ ). Dekompozycja QR wymaga wyznaczenia ortogonalnej macierzy $ Q$ takiej, że:

$\displaystyle Q^TA=\left [ \begin{matrix}R \crcr 0 \end{matrix} \right ] $

a $ R$ jest górną macierzą trójkątną $ n \times n$ . A następnie rozwiązania układu $ Rx=Py$ , gdzie $ P$ jest macierzą $ n$ pierwszych wierszy $ Q$ .
Transformacja Householdera ,,czyści" całe kolumny z wyjątkiem pierwszego elementu wektora. Jeśli chcemy ,,wyczyścić" część macierzy zerując naraz tylko jeden element kolumny możemy użyć rotacji Givensa, która jest szczególnie wdzięczna do równoległej implementacji.
Macierz:

$\displaystyle G=\left [ \begin{matrix}
1 & \dots & 0 & \dots & 0 & \dots & 0 \c...
...\vdots \crcr
0 & \dots & 0 & \dots & 0 & \dots & 1 \crcr
\end{matrix} \right ] $

z odpowiednio dobranym $ c=\cos(\varphi)$ oraz $ s=\sin(\varphi)$ dla pewnych kątów $ \varphi$ może zostać użyta do wyzerowania elementu $ a_{ki}$ .
Elementy moga być zerowane kolumna po kolumnie od dołu w następującej kolejności:

$\displaystyle (m,1),(m-1,1),\dots ,(2,1),(m,2),\dots ,(3,2),\dots ,(m,n),\dots
,(n+1,n).$

Wtedy $ Q$ jest iloczynem $ g=(2m+n+1)/2$ macierzy Givensa $ Q=G_1G_2\dots G_g$ Na przykład do anihilacji dolnego elementu wektora $ 2\times 1$ :

$\displaystyle \left [ \begin{matrix}
c & s \crcr
-s & c
\end{matrix} \right ]^T...
...\end{matrix} \right ] =
\left [ \begin{matrix}
r \crcr 0
\end{matrix} \right ]
$

z warunków $ sa+cb=0$ oraz $ c^2+s^2=1$ dostajemy:

$\displaystyle c=\frac{a}{\sqrt{a^2+b^a}},s=\frac{b}{\sqrt{a^2+b^2}}$.



2006-03-26