Zagadnienia

2. Zagadnienie własne II

Kolejne dwa wykłady poświęcimy konkretnym metodom numerycznym rozwiązywania zagadnienia własnego.

2.1. Uwagi wstępne

Ponieważ wartości własne macierzy A są zerami jej wielomianu charakterystycznego, narzucająca się metoda poszukiwania wartości własnych polegałaby na wyliczeniu współczynników tego wielomianu, na przykład w bazie potęgowej, a następnie na zastosowaniu jednej ze znanych metod znajdowania zer wielomianu. Dla wielomianów o współczynnikach rzeczywistych mogłaby to być np. metoda bisekcji, metoda Newtona (siecznych), albo pewna kombinacja obu method. Należy jednak przestrzec przed dokładnie takim postępowaniem. Rzecz w tym, że zera wielomianu mogą być bardzo wrażliwe na zaburzenia jego współczynnikówi. Dobrze ilustruje to następujący przykład.

Przykład 2.1

Załóżmy, że A jest macierzą symetryczną formatu 20×20 o wartościach własnych 1,2,,20. Zapisując wielomian charakterystyczny w postaci potęgowej mamy

detA-λI=k=120λk-k=k=020wkλk.

Okazuje się, że zaburzenie współczynnika w19 mogą powodować 1010 razy większe zaburzenie wartości własnej λ16=16.

Nie znaczy to oczywiście, że metody bazujące na obliczaniu wielomianu charakterystycznego, czy jego pochodnych trzeba z gruntu odrzucić. Trzeba tylko pamiętać, aby przy obliczeniach korzystać bezpośrednio ze współczynników ai,j macierzy A, ponieważ, jak wiemy z poprzedniego rozdziału, zadanie jest ze względu na te współczynniki dobrze uwarunkowane.

Z drugiej strony zauważmy, że policzenie wyznacznika macierzy pełnej wprost z definicji jest raczej kosztowne. Dlatego w praktyce metody wyznacznikowe są zwykle poprzedzone prekomputingiem polegającym na sprowadzeniu macierzy przez podobieństwa ortogonalne do prostszej postaci, z której wyznacznik można już obliczyć dużo tańszym kosztem niż dla macierzy pełnej. Tego typu precomputing ma również zastosowanie w innych metodach, w którym np. trzeba wykonywać mnożenie macierzy przez wektor.

Jedną z takich wygodnych postaci macierzy jest postać Hessenberga, a dla macierzy hermitowskich postać trójdiagonalna.

2.1.1. Sprowadzanie macierzy do postaci Hessenberga

Macierz A=ai,jCn,n jest postaci Hessenberga (,,prawie” trójkątną górną) jeśli wszystkie wyrazy ai,j dla ij+2 są zerami, tzn.

A=a1,1a1,2a1,n-1a1,na2,1a2,2a2,n-1a2,n0a3,2a3,n-1a3,n00an,n-1an,n.

Oczywiście, jeśli macierz jest hermitowska, A=AH, to postać Hessenberga jest równoważna postaci trójdiagonalnej

A=c1b200b¯2c2b300b¯3c3000cn.(2.1)

Aby daną macierz A sprowadzić do postaci Hessenberga przez podobieństwa ortogonalne (a więc nie zmieniając wartości własnych), możemy zastosować znane nam odbicia Householdera. Przypomnijmy, że dla dowolnego niezerowego wektora aCn istnieje macierz ortogonalna (odbicie Householdera) P=PH=P-1Cn,n postaci P=I-2uuH, gdzie u2=1, która przekształca a na kierunek pierwszego wersora, tzn. Pa=e1, =a2. (Odbicia Householdera zostały dokładnie przedstawione na wykładzie Analiza Numeryczna I.)

Niech A=ai,jCn,n będzie dowolną macierzą. Algorytm konstruuje najpierw odbicie P1Cn-1,n-1 dla wektora a2,1,a3,1,,an,1T, a następnie biorąc macierz

P^1=10T0P1Cn,n

oblicza A1=P^1AP^1H. łatwo zobaczyć, że wtedy elementy i,1 dla i=3,4,,n w macierzy A1 są równe zeru.

Postępując indukcyjnie załóżmy, że dostaliśmy już macierz Ak=ai,jk, 1kn-3, w której elementy ai,jk dla ij+2, 1jk, są wyzerowane. W kroku k+1-szym algorytm konstruuje odbicie Pk+1Cn-k,n-k dla wektora ak+2,k+1k,,an,k+1kT, a następnie biorąc macierz

P^k+1=Ik0T0Pk+1Cn,n

oblicza Ak+1=P^k+1AkP^k+1H. Wtedy wszystkie elementy ai,jk+1 dla ij+2, 1jk+1, są zerami. Po n-2 krokach otrzymana macierz A~=An-1 jest postaci Hessenberga.

Jasne jest, że jeśli A=AH to opisany algorytm prowadzi do macierzy trójdiagonalnej, A~=A~H. (Obliczenia można wtedy w każdym kroku wykonywać jedynie na głównej diagonali i pod nią.)

Dodajmy jeszcze, że koszt sprowadzenia macierzy przez podobieństwa ortogonalne do postaci Hessenberga/trójdiagonalnej jest proporcjonalny do n3.

2.2. Metoda Hymana

Przy pomocy metody Hymana możemy w zręczny sposób obliczyć wartości i pochodne wielomianu charakterystycznego detA-λI dla macierzy Hessenberga A=ai,jCn,n. Bez zmniejszenia ogólności będziemy zakładać, że wszystkie elementy ai+1,i0. W przeciwnym przypadku wyznacznik można obliczyć jako iloczyn wyznaczników macierzy Hessenberga niższych rzędów.

Metoda Hymana polega na dodaniu do pierwszego wiersza macierzy A-λI wiersza i-tego pomnożonego przez pewien współczynnik qi=qiλ, dla i=2,3,,n tak, aby wyzerować elementy 1,i dla i=1,2,,n-1. Ponieważ

A-λI=a1,1-λa1,2a1,n-1a1,na2,1a2,2-λa2,n-1a2,n0a3,2a3,n-1a3,n00an,n-1an,n-λ,

mamy następujące równania na qi:

a1,1-λ+a1,2q2=0,
a1,1+a2,1q2++ai-1,iqi-1+ai,i-λqi+ai+1,iqi+1=0,(2.2)

dla i=2,3,,n-1. Stąd, definiując dodatkowo q1=1, dostajemy następujące równania rekurencyjne:

q2λ=-a1,1-λa2,1,
qi+1λ=-a1,iq1++ai-1,iqi-1+ai,i-λqiai+1,i.

Po opisanym przekształceniu macierzy A-λI zmieni się jedynie jej pierwszy wiersz; wyrazy a1,i, 1in-1, zostaną wyzerowane, a a1,n zostanie przekształcony do

a^1,n=a1,nq1++an-1,nqn-1+an,n-λqn.

Rozwijając wyznacznik względem (przekształconego) pierwszego wiersza otrzymujemy

detA-λI=-1n+1a2,1a3,2an,n-1a1,nq1++an-1,nqn-1+an,n-λqn,

a stąd zera wielomianu charakterystycznego są równe zerom wielomianu

qn+1λ=-a1,nq1++an-1,nqn-1+an,n-λqn.

Oczywiście, wartości qn+1λ można obliczać stosując wzory rekurencyjne (2.2) przedłużając je o i=n, przy dodatkowym formalnym podstawieniu an+1,n=1.

Aby móc zastowoać netodę Newtona (stycznych) do znalezienia zer wielomianu qn+1 potrzebujemy również wiedzieć jak obliczać jego pochodne. To też nie jest problem, bo rekurencyjne wzory na pochodne można uzyskać po prostu różniczkując wzory (2.2). Dodajmy, że koszt obliczenia wartości qn+1λ i qn+1λ jest proporjonalny do n2, co jest istotnym zyskiem w porównaniu z kosztem n3 obliczania wyznacznika pełnej macierzy za pomocą faktoryzacji metodą eliminacji Gaussa.

Formuły na obliczanie wyznacznika detA-λI i jego pochodnych uproszczają się jeszcze bardziej gdy macierz A jest dodatkowo hermitowska, czyli jest macierzą trójdiagonalną postaci (2.1). Wtedy, stosując zwykłe rozumowanie rekurencyjne, łatwo się przekonać, że kolejne minory główne (czyli wyznaczniki macierzy kątowych) spełniają zależności

p0λ= 1,p1λ=c1-λ,
piλ=ci-λpi-1λ-bi2pi-2λdlai=2,3,,n.

Różniczkując otrzymane wzory otrzymujemy formuły na pochodne kolejnych minorów po λ. Wartości wielomianu detA-λI=pnλ oraz jego pochodnych można więc obliczać kosztem liniowym w n.

Sprawę konkretnej implementacji metod iteracyjnych bisekcji i/lub Newtona do wyznaczenia zer wielomianu detA-λI tutaj pomijamy. Ograniczymy się jedynie do stwierdzenia, że nie jest to rzecz całkiem trywialna.

2.3. Metoda potęgowa

2.3.1. Definicja metody

Metoda potęgowa zdefiniowana jest w następujący prosty sposób. Rozpoczynając od dowolnego wektora x0Cn o normie x02=1 obliczamy kolejno dla k=0,1,2,

yk:=Axk,xk+1:=ykyk2.

Równoważnie możemy napisać

xk=Akx0Akx02.

Wektory xk stanowią kolejne przybliżenia wektora własnego. Odpowiadającą mu wartość własną przybliżamy wzorem

ηk:=xkHAxk=xkHyk.

2.3.2. Analiza zbieżności

Analizę metody potęgowej przeprowadzimy przy założeniu, że macierz A jest diagonalizowalna. Oznaczmy przez μi, 1is, różne wartości własne macierzy A, a przez Vi odpowiadające im podprzestrzenie własne,

V1V2Vs=Cn.(2.3)

Założymy, że μ1 jest dominującą wartością własną oraz

μ1μ2>μs.

Przedstawmy x0 jednoznacznie w postaci

x0=j=1svj

gdzie vjVj. Dla uproszczenia, będziemy zakładać, że każda ze składowych

vj0.

Podkreślmy, że nie jest to założenie ograniczające, bo w przeciwnym przypadku składowe zerowe po prostu ignorujemy w poniższej analizie zbieżności. Poza tym, jeśli wektor początkowy jest wybrany losowo, to teoretyczne prawdopodobieństwo takiego zdarzenia jest zerowe. Co więcej, nawet jeśli jedna ze składowych znika to wskutek błędów zaokrągleń w procesie obliczeniowym składowa ta w wektorze x1 będzie z pewnością niezerowa. (Mamy tu do czynienia z ciekawym zjawiskiem, kiedy błędy zaokrągleń pomagają!)

Prosty rachunek pokazuje, że

Akx0=j=1sAkvj=j=1sμjkvj=μ1kv1+j=2sμjμ1kvj.

Ponieważ każdy z ilorazów μj/μ1<1 to xk zbiega do wektora własnego v1/v12, a ηk do dominującej wartości własnej μ1. Przyjrzyjmy się od czego zależy szybkość zbieżności.

Odległość distxk,V1 wektora xk od podprzestrzeni V1 można oszacować z góry przez odległość xk od spanv1, która z kolei jest równa długości rzutu P1xk tego wektora na podprzestrzeń ortogonalną do v1,

P1xk=xk-v1Hxkv122v1.

Oznaczając

βk:=v1+j=2sμjμ1kvj2

mamy limkβk=v12 oraz

P1xk=1βkv1+j=2sμjμ1kvj-v122+j=2sμjμ1kv1Hvjv1v122
=1βkj=2sμjμ1kvj-v1Hvjv122v1
μjμ1k1v12v2-v1Hv2v122v1k.

Biorąc normę i stosując nierówność trójkąta dostajemy

distxk,V1=P1xk2 2ρ1kv22v12k,

gdzie

ρ1:=μ2μ1< 1.

Zbieżność jest więc liniowa z ilorazem ρ1.

Zobaczmy teraz jak bardzo ηk różni się od μ1. Mamy

ηk=xkHAxk=μ1β2v1H+j=2sμjμ1kvjHv1+j=2sμjμ1k+1v1Hvj
=μ1β2v122+j=22μjμ1kvjHv1+μjμ1v1Hvj+i,j=2sμikμjk+1μ12k+1viHvj.

Stąd wynika, że błąd μ1-ηk zależy od iloczynów skalarnych vjHv1 oraz od stosunków

ρj:=μj+1μ1,1js-1.

Dokładniej, niech

:=min2js:vjHv10

albo =s+1 jeśli powyższy zbiór jest pusty. Jeśli teraz =s+1 albo mamy jednocześnie 2s i ρ<ρ12 to

μ1-ηkμ1ρ12k+1v22v12

i zbieżność jest liniowa z ilorazem ρ12. Jeśli zaś 2s i ρρ12 to

μ1-ηkμ1ρkv22v12

i zbieżność jest liniowa z ilorazem ρ. W szczególności, jeśli v2Hv10 to zbieżość jest z ilorazem ρ1.

Dla macierzy rzeczywistych i symetrycznych możemy stosunkowo łatwo pokazać dokładne nierówności na błąd metody potęgowej.

Twierdzenie 2.1

Załóżmy, że macierz A=ATRn,n. Niech γk będzie kątem pomiędzy wektorem k-tego przybliżenia xk otrzymanego metodą potęgową i podprzestrzenią własną V1 odpowiadającą dominującej wartości własnej μ1. Wtedy

tanγkρ1tanγk-1

oraz

μ1-ηkmax2jsμ1-μjsin2γk.
Dowód

Ponieważ macierz jest symetryczna, podprzestrzenie własne Vj zdefiniowane w (2.3) są parami ortogonalne. Dlatego

xk=Akx0Akx02=v1+j=2sμjμ1kvjv122+j=2sμjμ12kvj22.

Tangens kąta γk jest równy stosunkowi długości składowej wektora xk w podprzestrzeni V2Vs do długości składowej tego wektora w podprzestrzeni V1. Mamy więc

tanγk=j=2sμjμ12kvj22v1221/2max2jsμjμ1tanγk-1.

Aby pokazać pozostałą część twierdzenia, przedstawmy xk w postaci xk=j=1szj, gdzie zjVj. Wtedy j=1szj22=xk22=1 oraz

xkTAxk=j=1sμjzj22=μ1+j=2sμj-μ1zj22,

a stąd

μ1-ηkmax2jsμ1-μjj=2szj22=max2jsμ1-μjsin2γk.

Przypomnijmy, że sinγktanγk przy czym mamy asymptotyczną równość gdy γk0. Ponieważ macierz A jest symetryczna to mamy również μi-μj2A2. Z twierdzenia 2.1 wynika więc, że

tanγkρ1ktanγ0,orazμ1-ηk 2ρ12kA2tan2γ0.

Metoda potęgowa nie opłaca się gdy wymiar n nie jest duży, albo macierz A jest pełna. Inaczej jest, gdy n jest ,,wielkie”, np. rzędu co najmniej kilkuset, a macierz A jest rozrzedzona, tzn. ma jedynie proporcjonalnie do n elementów niezerowych. Z taką sytuacją mamy do czynienia, gdy np. macierz jest pięciodiagonalna. Wtedy istotne dla metody mnożenie Ax można wykonać kosztem proporcjonalnym do n i poświęcając tyle samo pamięci (wyrazy zerowe można zignorować).

2.4. Odwrotna metoda potęgowa i deflacja

Odwrotna metoda potęgowa albo metoda Wielandta, polega na zastosowaniu (prostej) metody potęgowej do macierzy A-σI-1. Dokładniej, startując z przybliżenia początkowego x0 o jednostkowej normie drugiej obliczamy kolejno dla k=0,1,2,

yk:=A-σI-1xk,xk+1:=ykyk2,

oraz ηk:=xkHAxk.

Od razu nasuwają się dwie uwagi. Po pierwsze, iteracja odwrotna ma sens tylko wtedy gdy parametr σ jest tak dobrany, że macierz A-σI jest nieosobliwa, co jest równoważne warunkowi σμi dla wszystkich i. Po drugie, w realizacji numerycznej, dla znalezienia wektora yk nie odwracamy macierzy A-σI, ale rozwiązujemy układ równań A-σIy=xk, co czyni metodę tak samo kosztowną co iteracja prosta.

Analiza iteracji odwrotnych przebiega podobnie do analizy iteracji prostych dla macierzy A-σI-1. Nietrudno zauważyć, że macierz ta ma te same wektory własne co A, a jej wartości własne wynoszą

μiσ=1μi-σ,1is.

(To wynika bezpośrednio z równości A+σIvi=μi+σvi.) Dlatego iteracje odwrotne zbiegają do wektora własnego odpowiadającego wartości własnej μi* takiej, że

μi*-σ=min1isμi-σ,

przy czym szybkość zbieżności zależy teraz od wielkości

ρjσ:=μi*-σminii*μi-σ

(a nie od ρj=μj+1/μ1, jak w iteracji prostej).

Niewątpliwą zalety odwrotnej metody potęgowej jest to, że zbiega do wartości własnej najbliższej σ, przy czym im σ bliższe μi* tym lepiej. Metoda jest więc szczególnie efektywna w przypadku gdy znamy dobre przybliżenia wartości własnych macierzy A. Niestety, taka informacja nie zawsze jest dana wprost.

Pamiętając, że kolejne przybliżenia wartości własnej w metodzie potęgowej są obliczane przy pomocy ilorazów Rayleigha, dobrym pomysłem na przesunięcie wydaje się być wzięcie w k-tym kroku iteracji odwrotnej

σ=ηk=xkHAxk.

Rzeczywiście. Niech γk będzie kątem pomiędzy xk a podprzestrzenią własną Vi*. Zakładając, że ηk jest dostatecznie blisko μi* oraz przyjmując δ=minii*μi*-μi, na podstawie twierdzenia 2.1 mamy

tanγk+1μi*-ηkminii*μi-ηktanγkμi*-ηkδ-μi*-ηktanγk
2A2tan3γkδ-2A2tan2γk2δA2tan3γk.

Zamiast zbieżności kwadratowej, jak w prostej metodzie potęgowej, dostaliśmy (asymptotycznie!) zbieżność sześcienną.

Metoda potęgowa, prosta lub odwrotna, pozwala wyznaczyć tylko jedną wartość własną, powiedzmy μ1, oraz odpowiadający jej wektor własny. Naturalne jest teraz pytanie o to jak postępować, aby znaleźć inne pary własne. Jednym ze sposobów jest zastosowanie deflacji.

Jeśli macierz jest hermitowska, A=AH, oraz znaleźliśmy wektor własny v1 odpowiadający wartości własnej μ1, to możemy ponowić proces metody potęgowej ograniczając go do podprzestrzeni prostopadłej do v1 wymiaru n-1. Osiągamy to startując z wektora x0 prostopadłego do v1, tzn.

x0:=vv2,v:=w-v1v1Hw,

gdzie w0 jest wybrany losowo. Przy idealnej realizacji procesu konstruowany ciąg xk należałby do podprzestrzeni prostopadłej do v1. W obecności błędów zaokrągleń należałoby to wymusić poprzez reortogonalizację,

yk:=yk-v1v1Hyk,

wykonywaną np. co kilka kroków. Po znalezieniu drugiej pary własnej, proces deflacji możemy kontynuować, ograniczając się do odpowiedniej podprzestrzeni własnej wymiaru n-2.

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.