Rozkład QR – w algebrze liniowej rozkład macierzy
do postaci iloczynu dwóch macierzy
gdzie
jest macierzą ortogonalną
i
jest macierzą trójkątną górną[1]. Na bazie rozkładu QR możliwa jest realizacja metody najmniejszych kwadratów[2] oraz metod rozwiązywania układów równań liniowych[1].
Metoda Householdera
Metoda Householdera pozwala znaleźć rozkład QR dowolnej macierzy prostokątnej m x n
Transformacja Householdera
Niech
i
Wówczas transformacją Householdera nazywamy macierz postaci:
![{\displaystyle H=I-Wvv^{T},\qquad W={\frac {2}{v^{T}v}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9891b56a49baec8ae9b87e7791052fc5994af8f8)
Macierz H jest macierzą symetryczną i ortogonalną (transformacja nie zmienia długości wektora) oraz ma taką własność, że dowolny wektor x wymiaru m jest odbiciem lustrzanym wektora Hx względem hiperpłaszczyzny (wymiaru m-1) prostopadłej do wektora v[3]. Łatwo sprawdzić, że tak jest ponieważ:
![{\displaystyle H^{2}=\left(I-{\frac {2vv^{T}}{v^{T}v}}\right)^{2}=I-{\frac {4vv^{T}}{v^{T}v}}+4\left({\frac {vv^{T}}{v^{T}v}}\right)^{2}=I\qquad ((vv^{T})(v^{T}v)=(vv^{T})^{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c6a2489f18e7646d1d45589c3b483dec217f61c2)
oraz
![{\displaystyle H^{T}=\left(I-{\frac {2vv^{T}}{v^{T}v}}\right)^{T}=I-\left({\frac {2vv^{T}}{v^{T}v}}\right)^{T}=I-{\frac {2vv^{T}}{v^{T}v}}=H\qquad ((vv^{T})^{T}=(vv^{T})).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ffb144ce0570f2a00204af5a3534e050069ce85b)
Z drugiej równości wynika symetria, z pierwszej ortogonalność, ponieważ
Zatem:
![{\displaystyle |Hx|={\sqrt {(Hx)^{T}(Hx)}}={\sqrt {x^{T}(H^{T}H)x}}={\sqrt {x^{T}Ix}}=|x|.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/87813b238e1f9f6be5f2a5719f1f4d3ec05dd212)
Mnożąc dowolny wektor
otrzymujemy:
![{\displaystyle Hx=x-{\frac {2vv^{T}x}{v^{T}v}}=x+(-2{\frac {vv^{T}x}{v^{T}v}})=x-2r.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/efffad0a66a9742dc974c3c4b7db8d9a57c791f8)
Wiadomo, że
jest rzutem prostopadłym wektora x na kierunek w, przy czym wektor w musi być znormalizowany. Zatem w tym wypadku
co po podstawieniu daje powyższą równość.
Rozkład QR
Transformacja Householdera może zostać wykorzystana w celu przeprowadzenia rozkładu QR macierzy A. Metoda polega na iteracyjnym szukaniu transformacji Householdera dla kolejnych wektorów pod diagonalą macierzy A. Rozważmy k-ty krok algorytmu (x oznacza wartość zależną od macierzy A):
![{\displaystyle H_{k-1}H_{k-2}\dots H_{1}A={\begin{pmatrix}x&x&\cdots &x&x&x\\0&x&\cdots &x&x&x\\\cdots &\cdots &\cdots &\cdots &\cdots &\cdots \\0&0&\cdots &{\boldsymbol {x}}&x&x\\0&0&\cdots &{\boldsymbol {x}}&x&x\\0&0&\cdots &{\boldsymbol {x}}&x&x\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6ac472a47a1f8cada64fafb993a499041804aa2e)
W kroku k-tym rozważamy wektor stanowiący część macierzy od k-tego elementu diagonali w dół. Szukamy takiej macierzy
aby spełniona była równość:
![{\displaystyle H_{k}'{\begin{pmatrix}{\boldsymbol {x}}\\{\boldsymbol {x}}\\{\boldsymbol {x}}\end{pmatrix}}={\begin{pmatrix}x\\0\\0\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7ff9f1f41dd712d1793b92eb7899b5c3547cc50)
Macierz
jest macierzą Householdera. Mając
możemy uzyskać macierz
![{\displaystyle H_{k}={\begin{pmatrix}I_{k-1}&0\\0&H_{k}'\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6cb6a626b3430a6f9ef382c71e97b337f122891f)
W ten sposób zerujemy kolejne wektory spod diagonali do momentu aż po
krokach otrzymujemy równość:
gdzie R jest szukaną macierzą trójkątną górną.
Macierz
[4].
Przykład
Znajdźmy rozkład QR macierzy A:
![{\displaystyle A={\begin{pmatrix}12&-51&4\\6&167&-68\\-4&24&-41\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b580c9c1fe2c7f6abf035bc2847b46b4e1ae3c37)
W pierwszym kroku szukamy takiej macierzy
że
gdzie
jest wektorem z pierwszej kolumny macierzy A, natomiast
wektorem do którego przekształcamy ortogonalnie wektor
Wektor
jest jednoznacznie określony poprzez długość i zerowe wartości pozostałych współrzędnych (zawsze istnieje taki obrót wektora
że te współrzędne będą zerowe).
Znajdujemy dowolny wektor prostopadły do hiperpłaszczyzny względem której następuje odbicie wektora
![{\displaystyle v_{1}=a_{1}-|a_{1}|e_{1}=(-2,6,-4)^{T}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26e1ae367120661db45a7b85114ce00bbb498890)
Obliczamy z definicji macierz Householdera:
![{\displaystyle H_{1}=I-{\frac {2v_{1}v_{1}^{T}}{v_{1}^{T}v_{1}}}=I-{\frac {1}{28}}{\begin{pmatrix}4&-12&8\\-12&36&-24\\8&-24&16\end{pmatrix}}={\begin{pmatrix}{\frac {6}{7}}&{\frac {3}{7}}&-{\frac {2}{7}}\\{\frac {3}{7}}&-{\frac {2}{7}}&{\frac {6}{7}}\\-{\frac {2}{7}}&{\frac {6}{7}}&{\frac {3}{7}}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a9d4a0156ee505f0ef1a5f4dca62f3c58bc0b7f2)
Zatem otrzymujemy:
![{\displaystyle H_{1}A={\begin{pmatrix}14&21&-14\\0&-49&-14\\0&168&-77\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6a2ba7b5e50ca4ad72608c5daf1eb308a33b9bff)
Teraz przechodzimy do drugiej iteracji algorytmu, a więc rozważamy podmacierz o wymiarze 2 × 2 powstałą poprzez usunięcie pierwszego wiersza i pierwszej kolumny. W tym wypadku
czyli
i
![{\displaystyle H_{2}'=I-{\frac {2v_{2}v_{2}^{T}}{v_{2}^{T}v_{2}}}=I-{\frac {1}{39200}}{\begin{pmatrix}50176&-37632\\-37632&28224\end{pmatrix}}={\begin{pmatrix}-{\frac {7}{25}}&{\frac {24}{25}}\\{\frac {24}{25}}&{\frac {7}{25}}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7a436783166fda64347fa41ded9e02ed758cf611)
![{\displaystyle H_{2}={\begin{pmatrix}1&0&0\\0&-{\frac {7}{25}}&{\frac {24}{25}}\\0&{\frac {24}{25}}&{\frac {7}{25}}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5f76eff9875fc15921cb8fb818184a3cfb414f20)
Zatem otrzymujemy:
![{\displaystyle R=H_{2}H_{1}A={\begin{pmatrix}14&21&-14\\0&175&-70\\0&0&-35\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/85c6b4710fde70ccc60d742edafd8862d5a5dd08)
![{\displaystyle Q=H_{1}H_{2}={\begin{pmatrix}{\frac {6}{7}}&-{\frac {69}{175}}&{\frac {58}{175}}\\{\frac {3}{7}}&{\frac {158}{175}}&-{\frac {6}{175}}\\-{\frac {2}{7}}&{\frac {6}{35}}&{\frac {33}{35}}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/71f8cf11c0e48081ab2cd142434398a45ebda24e)
Można sprawdzić, że macierz Q jest ortogonalna
R jest macierzą trójkątną górną oraz A = QR. Zatem znaleźliśmy rozkład QR macierzy A.
Zobacz też
Przypisy
Bibliografia
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling: Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press, 1992. ISBN 978-0-521-43108-8.
- Gene H. Golub, Charles F. Van Loan: Matrix Computations. Johns Hopkins University Press, 2012. ISBN 978-1-4214-0794-4.