Rozkład QR

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Rozkład QR – w algebrze liniowej rozkład macierzy A do postaci iloczynu dwóch macierzy A=QR, gdzie Q jest macierzą ortogonalną (QTQ=I) i R jest macierzą trójkątną górnąSzablon:Odn. Na bazie rozkładu QR możliwa jest realizacja metody najmniejszych kwadratówSzablon:Odn oraz metod rozwiązywania układów równań liniowychSzablon:Odn.

Metoda Householdera

Metoda Householdera pozwala znaleźć rozkład QR dowolnej macierzy prostokątnej m x n (mn).

Transformacja Householdera

Niech vRm i v𝟎. Wówczas transformacją Householdera nazywamy macierz postaci:

H=IWvvT,W=2vTv.

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 vSzablon:Odn. Łatwo sprawdzić, że tak jest ponieważ:

H2=(I2vvTvTv)2=I4vvTvTv+4(vvTvTv)2=I((vvT)(vTv)=(vvT)2)

oraz

HT=(I2vvTvTv)T=I(2vvTvTv)T=I2vvTvTv=H((vvT)T=(vvT)).

Z drugiej równości wynika symetria, z pierwszej ortogonalność, ponieważ HTH=HH=I. Zatem:

|Hx|=(Hx)T(Hx)=xT(HTH)x=xTIx=|x|.

Mnożąc dowolny wektor xRm, otrzymujemy:

Hx=x2vvTxvTv=x+(2vvTxvTv)=x2r.

Wiadomo, że r=(wTx)w jest rzutem prostopadłym wektora x na kierunek w, przy czym wektor w musi być znormalizowany. Zatem w tym wypadku w=v/vTv 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):

Hk1Hk2H1A=(xxxxx0xxxx00𝒙xx00𝒙xx00𝒙xx)

W kroku k-tym rozważamy wektor stanowiący część macierzy od k-tego elementu diagonali w dół. Szukamy takiej macierzy HkR3×3 aby spełniona była równość:

Hk(𝒙𝒙𝒙)=(x00)

Macierz Hk jest macierzą Householdera. Mając Hk możemy uzyskać macierz HkRm×m:

Hk=(Ik100Hk)

W ten sposób zerujemy kolejne wektory spod diagonali do momentu aż po min(m1,n) krokach otrzymujemy równość:

Hmin(m1,n)H1A=R, gdzie R jest szukaną macierzą trójkątną górną.

Macierz Q=H1H2Hmin(m1,n)Szablon:Odn.

Przykład

Znajdźmy rozkład QR macierzy A:

A=(1251461676842441)

W pierwszym kroku szukamy takiej macierzy H1, że H1a1=|a1|e1, gdzie a1=(12,6,4)T jest wektorem z pierwszej kolumny macierzy A, natomiast |a1|e1=(14,0,0)T wektorem do którego przekształcamy ortogonalnie wektor a1. Wektor |a1|e1 jest jednoznacznie określony poprzez długość i zerowe wartości pozostałych współrzędnych (zawsze istnieje taki obrót wektora a1 że te współrzędne będą zerowe).

Znajdujemy dowolny wektor prostopadły do hiperpłaszczyzny względem której następuje odbicie wektora a1:

v1=a1|a1|e1=(2,6,4)T.

Obliczamy z definicji macierz Householdera:

H1=I2v1v1Tv1Tv1=I128(412812362482416)=(673727372767276737)

Zatem otrzymujemy:

H1A=(14211404914016877)

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 a2=(49,168)T, czyli |a2|e2=(175,0)T i v2=(224,168)T.

H2=I2v2v2Tv2Tv2=I139200(50176376323763228224)=(72524252425725)
H2=(1000725242502425725)

Zatem otrzymujemy:

R=H2H1A=(1421140175700035)
Q=H1H2=(676917558175371581756175276353335)

Można sprawdzić, że macierz Q jest ortogonalna (QTQ=I), R jest macierzą trójkątną górną oraz A = QR. Zatem znaleźliśmy rozkład QR macierzy A.

Zobacz też

Przypisy

Szablon:Przypisy

Bibliografia