Zagadnienia

4. Zagadnienie własne IV

W tym rozdziale zajmiemy się jeszcze innymi nich dotychczas poznanymi metodami znajdowania wartości i wektorów własnych. Ponieważ duże znaczenie mają w nich obroty płaszczyzn, zaczniemy właśnie od definicji tych przekształceń, ich własności i pierwszych zastosowań.

4.1. Obroty Givensa

4.1.1. Definicja obrotu

Macierz obrotu o kąt φ w płaszczyźnie rozpiętej na wersorach ei,ej, gdze i<j, jest postaci

Oi,j=1cosφsinφ-sinφcosφ1.

Macierz ta różni się od jednostkowej jedynie wyrazami oi,i=c=oj,j oraz oi,j=s=-oj,i. łatwo sprawdzić, że Oi,j jest przekształceniem ortogonalnym, Oi,jOi,jT=I.

W obliczeniach numerycznych macierze obrotu służą najczęściej do wyzerowania określonej współrzędnej danego wektora. Rzeczywiście, obracając wektor a=a1,,anT w płaszczyźnie rozpiętej na ei i ej zmieniamy jedynie współrzędne i-tą i j-tą. Dokładniej, Oi,ja=b, gdzie

bk=aicosφ+ajsinφ,k=i,-aisinφ+ajcosφ,k=j,ak,ki,j.

Stąd, przyjmując

cosφ=aiai2+aj2,sinφ=ajai2+aj2,

albo liczby do nich przeciwne, dostajemy bi=a22 albo bi=-a22, oraz bj=0. Z powyższych wzorów wynika, że kąt obrotu φ można zawsze tak dobrać, aby φπ/2.

Przekształcenia tak określone nazywamy obrotami Givensa.

Zauważmy, że stosując obroty Givensa kolejno w płaszczyznach rozpiętych na wektorach e1 i ej dla j=2,3,,n-1 możemy przekształcić dany wektor a na kierunek pierwszego wersora, tzn.

O1,nO1,3O1,2a=±a22e1.

Takie operacje wymagają wykonania 6n mnożeń/dodawań i n-1 pierwiastkowań. Przypomnijmy, że ten sam efekt można uzyskać kosztem około 2n mnożeń/dodawań i jednego pierwiastka stosując odbicia Householdera. Wydaje się więc, że obroty Givensa opłaca się stosować jedynie wtedy, gdy wektor a ma niewiele (proporcjonalnie do n) współrzędnych niezerowych. Nie jest to jednak do końca prawdą. Istnieje bowiem pewna modyfikacja podanych wzorów autorstwa Gentlemana pozwalająca istotnie zmniejszyć koszt, którą teraz zaprezentujemy.

4.1.2. Algorytm Gentlemana

Przypuśćmy, że chcemy zastosować serię obrotów Givensa Oik,jk dla k=1,2,,m, gdzie k-ty obrót jest wybrany tak, że jk-ta współrzędna wektora

ak:=Oik,jkOi1,j1a

jest zerowa. Pomysł modyfikacji polega na przedstawieniu każdego z obrotów w postaci

Oik,jk=DkSik,jkDk-1-1,

gdzie D0=I, a Dk są pewnymi nieosobliwymi macierzami diagonalnymi wybranymi tak, by mnożenie przez Sik,jk było prostsze niż mnożenie przez Oik,jk. Wtedy mamy

Oim,jmOi1,j1
=DmSim,jmDm-1-1D2Si2,j2D1-1D1Si1,j1D0-1
=DmSim,jmSi2,j2Si1,j1.

Macierze diagonalne Dk, a tym samym i przekształcenia Sik,jk, zdefiniujemy indukcyjnie dla k=1,2,,m. Załóżmy, że zdefiniowaliśmy już Dk-1=diagd1,,dn. Niech Oik,jk będzie obrotem o kąt φ oraz c=cosφ, s=sinφ.

Dla uproszczenia zapisu podstawimy D:=Dk-1, D:=Dk=diagd,,dn oraz p:=ik, q:=jk. Dalej mamy Op,q=Oik,jk=oi,ji,j=1n, Sp,q=Sik,jk=si,ji,j=1n. Ponieważ Sp,q=D-1Op,qD to

si,j=djdioi,j=cdp/dp,i=j=p,cdq/dq,i=j=q,sdq/dp,i=p,j=q,-sdp/dq,i=q,j=p,dj/di,i=jp,q,0,wpp.

Przypomnijmy, że obrót Oik,jk jest wybrany tak, że aqk=0. Zauważmy, że dla

z:=D-1ak-1=Sik-1,jk-1Si1,j1a

mamy

ak=Op,qak-1=DSp,qD-1Dz=DSp,qz.

Stąd warunek aqk=0 jest równoważny warunkowi Sp,qzq=0, czyli

szpdp=czqdq.

Jeśli teraz zq=0 to przyjmujemy D:=D i Sp,q:=I. W przeciwnym przypadku, uwzględniając równość s2+c2=1, dostajemy

c2=1/t,t:=1+dq2zq2dp2zp2,s2=1/t,t:=1+dp2zp2dq2zq2.

Mamy teraz dwa przypadki.

(i) Jeśli 0<zq2dq2zp2dp2 to kładziemy dp=cdp, dq=cdq i dl=dl dla lp,q. Wtedy sl,l=1 dla lp,q oraz

sp,psp,qsq,psq,q=1α-β1,

gdzie

α=zqdq2zpdp2,β=zqzp.

(ii) Jeśli 0zp2dp2<zq2dq2 to kładziemy dp=sdq, dq=sdp i dl=dl dla lp,q. Wtedy sl,l=1 dla lp,q oraz

sp,psp,qsq,psq,q=α1-1β,

gdzie

α=zpdp2zqdq2,β=zpzq.

Macierz Sp,q ma podobną strukturę jak Op,q. Obecność dwóch jedynek pozwalaja jednak zaoszczędzić dwa mnożenia przy operacji Sp,qx w porównaniu do Op,qx. Ponadto, co jest ważniejsze, obliczanie wielkości α i β (ew. α i β) definiujących Sp,q nie wymaga pierwiastkowania. Rzeczywiście, w kolejnych krokach procesu obliczeniowego wystarczy pamiętać współczynniki dl2. Współczynniki te wyliczane są rekurencyjnie zgodnie ze wzorami dl2=dl2 dla lp,q, a dla l=p,q

dl2=dl2/tjeśli (i),dl2/tjeśli (ii).

Zauważmy, jeszcze, że takie rozbicie na przypadki (i) i (ii) pozwala nie tylko uniknąć dzielenia przez zero, ale również uniknąć możliwego niedomiaru. Wielkość t jeśli zachodzi (i) oraz t jeśli zachodzi (ii) jest w przedziale 1/2,1.

Możnaby się spytać gdzie jest zysk obliczeniowy. Na końcu procesu dysponujemy bowiem jedynie macierzą Dm2 i aby pomnożyć przez Dm należy najpierw wykonać n pierwiastkowań. Nie jest to jednak zawsze prawdą.

Na przykład, jeśli chcemy przekształcić dany wektor a na kierunek wersora e1 przy pomocy obrotów Givensa to po wykonaniu serii m=n-1 przekształceń

S1,nS1,3S1,2a

jedynie pierwsza współrzędna otrzymanego wektora nie jest zerowa. Mnożenie przez Dm sprowadza się więc do operacji na jego pierwszej współrzędnej, to zaś wymaga obliczenia tylko jednego pierwiastka kwadratowego.

Podobnie, używając obrotów Givensa można kosztem porównywalnym do algorytmu bazującego na odbiciach Householdera przekształcić daną nieosobliwą macierz kwadratową A do postaci trójkątnej górnej (albo, równoważnie, znaleźć jej rozkład ortogonalno-trójkątny). Rzeczywiście, dokonuje się tego wykonując najpierw na macierzy serię m=n-1n/2 przekształceń

Sn-1,nSn-2,nSn-2,n-1S2,nS2,3S1,nS1,2A,

gdzie Si,j jest tak dobrana, aby wyzerować współrzędną j,i aktualnej macierzy, a następnie mnożąc kolejne wiersze otrzymanej macierzy trójkątnej górnej przez pierwiastki z kolejnych elementów diagonalnych macierzy Dm2. Całość wymaga więc obliczenia n pierwiastków kwadratowych, podobnie jak w algorytmie Householdera. (Należy przy tym pamiętać, aby nie wykonywać niepotrzebnie operacji na elementach zerowych!)

4.2. Metoda Jacobiego

Metoda Jacobiego jest najstarszą z istniejących metod numerycznych znajdowania wartości własnych macierzy symetrycznych. Ma jednak nie tylko znaczenie historyczne. Chociaż jest stosunkowo wolno zbieżna to można ją stosować gdy chcemy obliczyć wartości własne z bardzo dobrą dokładnością w obecności błędów zaokrągleń.

Zakładamy, że ARn,n jest macierzą symetryczną. Podobnie jak w metodzie QR, metoda Jacobiego startuje z macierzy A0=A i produkuje ciąg macierzy podobnych Ak dla k=1,2,3,, który zbiega do macierzy diagonalnej

Λ=diagλ1,λ2,,λn

składającej się z wartości własnych A. Różnica polega na tym, że pojedyncze kroki metody wykonuje się używając obrotów Givensa,

Ak=Oik,jkTAk-1Oik,jk=Oik,jkTOik-1,jk-1TAk-2Oik,jkOik-1,jk-1
==Oik,jkTOi1,j1TA0Oi1,j1Oik,jk.

Oznaczając Ok=Oi1,j1Oik,jk mamy więc Ak=OkTAOk.

Jako miarę odchylenia od macierzy diagonalnej Λ w naturalny sposób przyjmiemy połowę sumy kwadratów elementów pozadiagonalnych, czyli

ωk:=ωAk=i<jai,jk2,

gdzie ai,jki,j=1n. Wielkość ωk dobrze charakteryzuje również błąd przybliżenia wartości własnych macierzy A przez elementy diagonalne macierzy Ak. Rzeczywiście, niech

Dk=diaga1,1k,,an,nk

i Rk=Ak-Dk. Wtedy

Dk=OkTAOk-OkTOkRkOkTOk=OkTA+EkOk,

gdzie Ek=-OkRkOkT oraz

EkF=RkF=2ωk.

Wyrazy diagonalne macierzy Dk są więc wartościami własnymi macierzy A+Ek, którą możemy potraktować jako zaburzoną macierz A. Korzystając z twierdzenia Weyla 1.3 dostajemy, że istnieje takie uporządkowanie λp1,,λpn wartości własnych macierzy A, że dla wszystkich i mamy

ai,ik-λpiEk2EkF=2ωk.

Stąd wniosek, że poszczególne obroty Oik,jk powinniśmy wybierać tak, aby maksymalizować różnicę ωk-1-ωk. Aby odpowiedzieć na pytanie który obrót osiąga ten cel, przeanalizujmy pojedynczy krok. Dla prostoty zapisu oznaczymy p:=ik, q:=jk, A:=Ak-1, A:=Ak=Op,qTAOp,q, gdzie Op,q jest obrotem o kąt φ, c=cosφ, s=sinφ, c2+s2=1.

Zauważmy, że mnożenie z lewej strony przez obrót Op,qT zmienia jedynie wiersze p-ty i q-ty macierzy, a mnożenie z prawej strony przez Op,q zmienia kolumny p-tą i q-tą. Dlatego dla ip,q i jp,q wyrazy ai,j i ai,j są sobie równe. Jeśli zaś ip,q i j=p,q to

ai,p=ap,i=cai,p-sai,q,ai,q=aq,i=sai,p+cai,q,

a stąd

ai,p2+ai,q2=ai,p2+ai,q2

i podobnie ap,i2+aq,i2=ap,i2+aq,i2. Otrzymujemy

ωk-1-ωk=ωA-ωA=ap,q2-ap,q2.

Dla danych p<q wielkości c i s definiujące obrót należy więc wybrać tak, aby

ap,q=0.

Jeśli ap,q=0 to powyższą równość realizuje obrót zerowy. Załóżmy więc, że ap,q0. Bezpośredni rachunek pokazuje, że wtedy

ap,pap,qaq,paq,q=c2ap,p-2scap,q+s2aq,qc2-s2ap,q+scap,p-aq,qc2-s2ap,q+scap,p-aq,qs2ap,p+2scap,q+c2aq,q.

Stąd równość ap,q=0 zachodzi wtedy gdy

c2-s2ap,q+scap,p-aq,q=0.

Jeśli podstawimy t=s/c=φ\tg to ostatnia równość jest równoważna równaniu kwadratowemu

t2+2βt-1= 0,β=aq,q-ap,p2ap,q.

Rozwiązując otrzymujemy następujące wzory:

c=11+t2,s=tc,gdziet=signββ+1+β2.

Zauważmy jeszcze, że taka postać rozwiązania pozwala obliczyć s i c z małym błędem względnym w arytmetyce maszyny cyfrowej.

Pozostaje do ustalenia jak wybierać kolejne p,q. W oryginalnej wersji algorytmu p,q wybierane są tak, że

ap,q=maxi<jai,j.

Ponieważ wtedy ap,q2ωA/N, gdzie N=nn-1/2 to

ωA=ωA-ap,q2ωA1-1/N.(4.1)

Mamy więc zapewnioną zbieżność liniową, chociaż iloraz zbieżności jest bliski jedynce dla dużych wymiarów n. Taki wybór jest jednak zbyt kosztowny, bo wymaga znalezienia w każdym kroku elementu największego co do modułu wśród N elementów. Dlatego stosowane są inne strategie. Na przykład,

1,2,1,3,2,3,1,4,2,4,3,4,,1,i,,i-1,i,,1,n,,n-1,n,

i dalej cyklicznie, aż do osiągnięcia żądanej dokładności. W tym przypadku kłopot polega na tym, że obroty wykonuje się również wtedy, gdy ap,q2 jest znacznie mniejsze od ωA, co nie jest opłacalne. Aby temu zapobiec, można wprowadzić pewien próg δ i nie wykonywać obrotów gdy ap,q2<δ. Na przykład, możemy wziąć δ=ωA/N. Wtedy, po wykonaniu każdego kroku spełniona jest nierówność (4.1).

4.3. QR dla macierzy trójdiagonalnej

Metodę Jacobiego stosuje się do pełnej, rzeczywistej macierzy symetrycznej. W tym podrozdziale zatrzymamy się na przypadku, gdzie A=ATRn,n jest dodatkowo trójdiagonalna,

A=T=a1b1b1bn-1bn-1an.

Przypomnijmy, że każdą macierz symetryczną można sprowadzić do postaci trójdiagonalnej przez podobieństwa ortogonalne. W rozdziale 2.1.1 pokazaliśmy jak to zrobić przy pomocy odbić Householdera. Ale równie dobrze możemy użyć obrotów Givensa. Rzeczywiście, najpierw wybieramy obroty O2,i dla i=3,4,,n tak, aby mnożenie

O2,nTO2,4TO2,3TA=:A

spowodowało wyzerowanie kolejno elementów 3,1,4,1,,n,1. (Pamiętamy o algorytmie Gentlemana!) Ponieważ mnożenie z prawej strony przez O2,i zmienia jedynie kolumny 2-gą oraz i-tą to po operacji

AO2,3O2,4O2,n

wyzerowane elementy w pierwszej kolumnie się nie zmienią. Dalej postępujemy indukcyjnie dla kolejnych kolumn, od 2-giej do n-2-giej, i ostatecznie dostajemy macierz trójdiagonalną T=OTAO, gdzie

O=O2,3O2,nO3,4O3,nOn-2,n-1On-2,nOn-1,n,

przy czym mnożenie z lewej przez Oi,jT zeruje element i-1,j.

Oczywiście, wszystkie metody dla macierzy pełnej można stosować również dla macierzy trójdiagonalnej. Jednak ze względu na prostszą strukturę macierzy niektóre metody znacznie się upraszczają. Pokażemy to na przykładzie metody QR z rozdziału 3.2.

W oryginalnej metodzie QR (z przesunięciami lub bez) rozkład ortogonalno-trójkątny macierzy A=QR dokonuje się przy pomocy odbić Householdera. Dla macierzy trójdiagonalnej T wygodnie jest użyć do tego celu obrotów Givensa Oi,i+1T zerujących kolejno elementy i+1,i dla i=1,2,,n-1. Wtedy

R=On-1,nTOn-2,n-1TO2,3TO1,2TT

jest macierzą trójkątną górną. Teraz istotne jest, że po wykonaniu drugiego kroku metody QR, czyli mnożenia

O1,2O2,3On-1,nR

otrzymana macierz T pozostaje trójdiagonalna. Rzeczywiście, skoro R jest trójkątna górna, a mnożenie z lewej strony przez Oi,i+1 kombinuje jedynie wiersze i-ty i i+1-szy to T jest macierzą górną Hessenberga, a ponieważ jest również symetryczna, to jest trójdiagonalna.

Koszt jednego kroku metody QR dla symetrycznej macierzy trójdiagonalnej T jest więc proporcjonalny do n.

Mamy własność ogólniejszą. W procesie iteracyjnym metody QR macierz trójdiagonalna pozostaje w każdym kroku trójdiagonalna niezależnie od zastosowanego algorytmu rozkładu na iloczyn ortogonalno-trójkątny. Wynika to w szczególności stąd, że, jak pamiętamy, rozkład taki jest wyznaczony jednoznacznie z dokładnością do macierzy diagonalnej z elementami ±1. (Jako ćwiczenie, można to pokazać bezpośrednio w przypadku gdy rozkład dokonywany jest przy użyciu odbić Householdera.)

Oczywiście wszystkie pozostałe fakty na temat metody QR pokazane wcześniej dla macierzy pełnych, w szczególności te dotyczące wyboru przesunięcia i szybkości zbieżności, pozostają w mocy gdy macierz jest trójdiagonalna.

4.4. Rozkład według wartości szczególnych (SVD)

Na końcu serii wykładów na temat zadania własnego zajmiemy się znajdowaniem wartości szczególnych danej macierzy, a to dlatego, że zadanie to i metody jego rozwiązania wiążą się ściśle z zadaniem i metodami znajdowania wartości własnych macierzy symetrycznych.

4.4.1. Twierdzenie o rozkładzie

Najpierw przypomnimy twierdzenie o rozkładzie według wartości szczególnych, czyli SVD (ang. Singular Value Decomposition). Będziemy zakładać, bez zmniejszenia ogólności, że liczba kolumn macierzy A nie przekracza liczby jej wierszy, co najczęściej występuje w praktyce. W przeciwnym przypadku wystarczy zastosować poniższe twierdzenie dla macierzy transponowanej AT.

Twierdzenie 4.1

Dla dowolnej macierzy ARm,n, gdzie mn, istnieją macierze ortogonalne URm,m i VRn,n takie, że

A=UΣVT,

gdzie ΣRm,n jest macierzą diagonalną,

Σ=Σ0,Σ=diagσ1,σ2,,σnRn,n,

σ1σ2σk>σk+1==σn=0, a k jest rzędem macierzy A.

Dowód

Ponieważ macierz ATA jest symetryczna i nieujemnie określona to istnieje baza ortonormalna vii=1n jej wektorów własnych, a odpowiadające jej wartości własne są nieujemne (patrz twierdzenia 1.1). Oznaczmy te wartości własne odpowiednio przez σi2,

σ1σk>σk+1==σn=0,

przy czym k=rankATA=rankA. Zauważmy, że

AviTAvj=viTATAvj=σj2viTvj=0ij,σj2i=j.

To oznacza, że wektory ui:=Avi/σi, 1ik, tworzą układ ortonormalny i można go uzupełnić wektorami uk+1,,um do bazy ortonormalnej w Rm.

Zdefiniujmy teraz macierze ortogonalne

V=V1,V2Rn,n,V1=v1,,vkRn,k,V2=vk+1,,vnRn,n-k,
U=U1,U2Rm,m,U1=u1,,ukRm,k,U2=uk+1,,unRm,m-k.

Wtedy, oznaczając Σ=diagσ1,,σkRk,k, mamy

UTAV=U1TU2TAV1,AV2=U1TU2TU1Σ,0=Σ000=Σ,

albo, równoważnie, A=UΣVT.

Wielkości σi, 1in, to właśnie wartości szczególne macierzy A. Są one wyznaczone jednoznacznie. Rzeczywiście, jeśli mamy dwa rozkłady, U1Σ1V1T=A=U2Σ2V2T, to

VΣ1TΣ1=Σ2TΣ2V,V=V2TV1.

Porównując wyrazy diagonalne po obu stronach powyższej równości dostajemy σi1=σi2 dla wszsytkich i.

Zanotujmy jeszcze, że mając rozkład SVD można np. łatwo rozwiązać liniowe zadanie najmniejszych kwadratów, tzn. znaleźć wektor x* minimalizujący b-Ax2 po wszystkich xRn. (Jeśli istnieje wiele takich wektorów to bierzemy ten o najmniejszej normie.) Mamy bowiem

b-Ax2=UUTb-UΣVTx2=c-Σy2,

c=UTb, y=VTx. Stąd x*=VTy*, gdzie

yi*=ci/σi,1ik,0,1in.

4.4.2. Dlaczego nie pomnożyć ATA?

Z dowodu twierdzenia 4.1 wynika, że σ12,,σn2 są wartościami własnymi macierzy symetrycznej i nieujemnie określonej ATA, a kolumny macierzy ortogonalnej V tworzą odpowiednio bazę ortonormalną w Rn wektorów własnych tej macierzy. Podobnie, σ12,,σn2,0,,0m-n są wartościami własnymi AAT, a kolumny U tworzą bazę ortonormalną w Rm wektorów własnych. Wydaje się więc, że wartości szczególne (i w razie potrzeby cały rozkład SVD) można łatwo wyznaczyć wykonując najpierw mnożenie A:=ATA lub A:=AAT, a następnie aplikując do macierzy A jedną z rozpatrzonych wcześniej metod dla zadania własnego. Należy jednak przestrzec przed takim mechanicznym działaniem.

Przykład 4.1

Niech A=110ε. Dla ,,małych” ε wartości szczególne tej macierzy są bliskie 2 i ε/2. Jeśli ε jest na tyle małe, że 1+ε2 jest w arytmetyce fl reprezentowane przez 1 to macierz ATA=1111+ε2 jest reprezentowana przez macierz 1111, która jest już osobliwa - jej druga wartość szczególna jest zerowa.

Z uwagi na możliwą zmianę rzędu macierzy, jak w przytoczonym przykładzie, stosuje się nieco zmodyfikowane algorytmy znajdowania wartości własnych, które unikają jawnych mnożeń ATA lub AAT. Pokażemy to najpierw, nie wdając się w szczegóły, na przykładzie metody Jacobiego z rozdziału 4.2.

Przypomnijmy, że metoda Jacobiego zastosowana bezpośrednio do macierzy A=ATA konstruuje ciąg macierzy podobnych A=A0,A1,,Ak,, gdzie Ak=Oik,jkTAk-1Oik,jk, a Oik,jk jest tak dobranym obrotem Givensa, aby wyzerować element ik,jk i jednocześnie, wobec symetrii, także jk,ik. Oznaczmy A0=A i Ak=Ak-1Oik,jk dla k1. Wtedy Ak=AkTAk. Pomysł polega na tym, aby zamiast obliczać jawnie Ak=Oik,jkTAk-1TAk-1Oik,jk, w kolejnych krokach obliczać i pamiętać jedynie Ak=Ak-1Oik,jk. Jest to możliwe, bowiem wyznaczenie rotacji Oik,jk wymaga jedynie znajomości elementów

aik,ikk-1=l=1mal,ikk-12,ajk,jkk-1=l=1mal,jkk-12,aik,jkk-1=l=1mal,ikk-1al,jkk-1,

które można obliczyć korzystając z powyższych wzorów.

4.4.3. SVD dla macierzy dwudiagonalnych

W tym podrozdziale pokażemy algorytm, który można traktować jako wariant metody QR zastosowanej do macierzy ATA. Zanim jednak przejdziemy do samego algorytmu, poczynimy kilka pomocniczych uwag teoretycznych.

Niech T0 będzie macierzą symetryczną i dodanio okteśloną, T0=T0T>0. Rozpatrzmy proces iteracyjny, nazwijmy go LR, który startuje z macierzy T0 i w kolejnych krokach k=1,2,

  • (i) wybiera przesunięcie τk, mniejsze od najmniejszej wartości własnej Tk-1 (np. τk=0),

  • (ii) dokonuje rozkładu Banachiewicza-Cholesky'ego

    Tk-1-τk2I=BkTBk,

    gdzie Bk jest macierzą trójkątną górną z dodatnimi elementami na głównej przekątnej,

  • (iii) produkuje Tk=BkBkT+τk2I.

(Przypomnijmy, że rozkładu Banachiewicza-Cholesky'ego dokonujemy zmodyfikowanym algorytmem eliminacji Gaussa.) Oczywiście, macierze Tk są do siebie podobne, bo

Tk=BkBkT+τk2I=BkTk-1-τk2IBk-1+τk2I=BkTk-1Bk-1.

Zachodzi ciekawsza własność.

Lemat 4.1

Dwa kroki iteracji LR z tym samym przesunięciem τ są równoważne jednemu krokowi iteracji QR z przesunięciem τ.

Dowód

Bez zmniejszenia ogólności przyjmijmy, że k=0 i τ1=τ2=τ. Z jednej strony, z rozkładu QR mamy T0-τ2I2=QRTQR=RTR, gdzie elementy na głównej przekątnej macierzy R są dodatnie, a z drugiej z rozkładu LR

T0-τ2I2=B1TB1B1TB1=B1TT1-τ2IB1
=B1TB2TB2B1=B2B1TB2B1.

Wobec jednoznaczności rozkładu Banachiewicza-Cholesky'ego mamy więc R=B2B1. Stąd macierz powstała w wyniku jednego kroku iteracji QR wynosi

T=RQ+τ2I=RQRR-1+τ2I
=RT0-τ2IR-1+τ2I=RT0R-1
=B2B1B1TB1+τ2IB2B1-1
=B2B1B1TB1B1-1B2-1+τ2B2B1B2B1-1
=B2B1B1TB2-1+τ2I=B2T1-τ2IB2-1+τ2I
=B2B2TB2B2-1+τ2I=B2B2T+τ2I
=T2-τ2I+τ2I=T2,

jak w tezie lematu.

Powyższy lemat pokazuje, że rozważania teoretyczne dotyczące iteracji QR można przenieść na iteracje LR. Dlatego dalej nie będziemy się już zajmować analizą teoretyczną LR, a przejdziemy do opisu algorytmu te iteracje wykorzystującego.

Zakładamy, że ARm,n jest kolumnowo regularna, czyli rankA=n, oraz dwudiagonalna. Dokładniej, ai,j=0 dla ij+1 i dla ji+2,

A=a1b1a2bn-1an.

Oczywiście, wobec kolumnowej regularności macierzy mamy aj0. Założenie o dwudiagonalności wydaje się mocno ograniczające. W istocie jednak tak nie jest, bo każdą macierz można sprowadzić do takiej postaci nie zmieniając jej wartości szczególnych i kontrolując odpowiednie wektory własne, co pokażemy na samym końcu.

Algorytm działa podobnie jak iteracje LR z przesunięciami, ale zamiast tworzyć jawnie macierze Tk, podobne do ATA, pracuje bezpośrednio na macierzach Bk. Przyjmujemy B0=DA, gdzie DRn,m jest macierzą diagonalną z elementami na głównej przekątnej dj=signaj, 1jn. Wtedy B0Rn,n jest macierzą dwudiagonalną z dodatnimi elementami na głównej przekątnej oraz

T0=B0TB0=ATDTDA=ATA

jest macierzą trójdiagonalną. Zobaczmy teraz jak mając macierz dwudiagonalną Bk możemy skonstruować Bk+1. Ponieważ Tk jest trójdiagonalna to Bk+1 musi być dwudiagonalna. (W szczególności, wyniknie to również z dalszych rachunków.) Dla uproszczenia zapisu, oznaczmy elementy przekątniowe macierzy Bk i Bk+1 odpowiednio przez aj i aj, 1jn, a elementy nad główną przekątną przez bj i bj, 1jn-1. Przyjmijmy dodatkowo b0=b0=bn=bn=0. Macierze Bk i Bk+1 związane są równaniem

Bk+1TBk+1+τk+12I=Tk=BkBkT+τk2I.

Porównując wyrazy przekątniowe po obu stronach tej równości otrzymujemy

aj2+bj-12+τk+12=aj2+bj2+τk2,1jn,

a porównując wyrazy nad przekątną

ajbj=aj+1bj2,1jn-1.

Stąd, podstawiając δ=τk+12-τk2, mamy następujące wzory na aj i bj. Dla j=1,2,,n-1 obliczamy

aj:=aj2+bj2-bj-12-δ,bj:=aj+1bj/aj

i na końcu an:=an2-bn-12-δ.

Ponieważ obliczanie pierwiastków jest stosunkowo kosztowne, wzory te opłaca się zmodyfikować tak, aby nie obliczać pierwiastków w każdej iteracji, a jedynie na końcu całego procesu iteracyjnego. Można to osiągnąć pracując na kwadratach aj i bj. Rzeczywiście, wprowadzając zmienne pj=aj2 i qj=bj2, otrzymujemy następującą procedurę dla jednego kroku iteracyjnego:

. begin
. . for j=1 to n-1 do
. . begin
. . . pj:=pj+qj-qj-δ;
. . . qj:=qjqj+1/qj
. . end;
. . pn:=pn-qn-1-δ
. end;
Koszt jednego kroku iteracyjnego jest stały. Stąd, jeśli macierz wyjściowa A jest dwudiagonalna to całkowity koszt algorytmu jest proporcjonalny do liczby iteracji.

A co jeśli A nie jest dwudiagonalna? Wtedy trzeba ją wstępnie przekształcić do postaci dwudiagonalnej nie zmieniając wartości szczególnych. W tym celu możemy użyć np. odbić Householdera. Najpierw zerujemy wyrazy w pierwszej kolumnie, oprócz wyrazu diagonalnego, poprzez pomnożenie macierzy A z lewej strony przez odbicie HL,1Rm,m przekształcające pierwszą kolumnę A na kierunek e1. Oznaczmy A~1=a~i,j=HL,1A. Następnie wybieramy odbicie H~R,1Rn-1,n-1 tak, aby przekształcało wektor a~1,2,a~1,3,a~1,nTRn-1 na kierunek e1Rn-1 i mnożymy A~1 z prawej przez HR,1T=10T0H~R,1TRn,n. Ponieważ to mnożenie nie zmienia pierwszej kolumny A~1, w powstałej macierzy A1=HL,1AHR,1T elementy w pierwszej kolumnie i w pierwszym wierszu, poza 1,1 i 1,2, są wyzerowane. Dalej postępujemy indukcyjnie zerując na przemian odpowiednie elementy w kolumnach i wierszach. Ostatecznie, po n-1 krokach otrzymujemy macierz

A=U1AV1T,gdzieU1=HL,n-1HL,1,V1=HR,n-2HR,1,

która jest już dwudiagonalna. Jeśli teraz A=U2ΣV2T to A=U1TU2ΣV1TV2T, a więc A i A mają te same wartości szczególne. Ponadto,

A=UΣVT,gdzieU=U1TU2,V=V1TV2.

Zanotujmy jeszcze, że dowolną macierz można sprowadzić w podobny sposób do postaci dwudiagonalnej przy pomocy obrotów Givensa. Zarówno w przypadku zastosowania obrotów Givensa jak i odbić Householdera koszt jest proporcjonalny do mn2.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.