PKow
Wyznaczanie wektorów i wartości własnych
Przykład Moj przykład
Algorytm Nie robiący nic
Leż
Niech będzie dana rzeczywista kwadratowa macierz wymiaru . Wektorem własnym oraz odpowiadającą mu wartością własną nazwiemy taką parę, dla której
przy czym .
Zadanie wyznaczania wartości własnych i wektorów własnych macierzy ma bardzo szerokie zastosowania w tak odległych do siebie dziedzinach jak np. analiza odporności konstrukcji mechanicznych (wieżowce, mosty, wagony kolejowe) na wibracje, czy też rankingowanie stron internetowych w wyszukiwarce Google.
Przykład Odporność budynku na trzęsienie ziemi
Rozważmy prosty układ mechaniczny opisujący, naturalnie w pewnym jedynie przybliżeniu, zachowanie się układu ciężkich płyt połączonych ze sobą relatywnie elatycznymi dźwigarami --- co może np. modelować konstrukcję wieżowca.
{}{Model wieżowca poddanego drganiom poprzecznym}
Wiadomo, że jeśli częstotliwości drgań własnych tego wieżowca będą bliskie częstotliwości siły wymuszającej (o niewielkiej amplitudzie), to konstrukcja wpadnie w rezonans i w końcu rozpadnie się wskutek zbyt wielkich przemieszczeń. Wychylenia naszych płyt z położenia równowagi są opisywane układem pewnych równań różniczkowych. Teoria matematyczna takich równań różniczkowych pokazuje, że częstotliwości drgań własnych to nic innego jak wartości własne pewnej {niesymetrycznej} macierzy wymiaru , która powstaje ze współczynników równania różniczkowego opisującego dynamikę tego układu.
Przykład Macierz Google'a
Podstawowy algorytm rankingowania stron WWW w {http://www.wikipedia.org/pagerank}{wyszukiwarce Google} sprowadza się do znalezienia rzeczywistego wektora własnego pewnej silnie rozrzedzonej macierzy (gigantycznego rozmiaru, równego liczbie indeksowanych stron, czyli w chwili pisania tego tekstu około {ilu} stron), odpowiadającego wartości własnej równej 1:
Współrzędne wektora interpretuje się jako wartość rankingową kolejnych stron WWW. Aby wszystko miało sens, współrzędne wektora muszą być z przedziału [0,1]. Pewne twierdzenia matematyczne i subtelny dobór macierzy gwarantują, że taki wektor zawsze istnieje i jest jedyny! Co więcej, wartość 1 jest dominującą wartością własną , a to z kolei ma ważne znaczenie dla tzw. {sec:metoda-potegowa}{metody potęgowej} numerycznego wyznaczania takiego wektora.
Przykład Wyznaczanie miejsc zerowych wielomianu
Jak wiadomo, wartości własne to miejsca zerowe wielomianu charakterystycznego macierzy . Zachodzi także fakt odwrotny, to znaczy miejsca zerowe wielomianu są wartościami pewnej macierzy, np. miejsca zerowe wielomianu
są wartościami własnymi m.in. macierzy stowarzyszonej,
Funkcja Octave'a !compan(p)! wyznacza macierz stowarzyszoną dla zadanego wielomianu o współczynnikach w wektorze . Z tej macierzy korzysta następnie funkcja Octave'a !roots!, która właśnie w taki sposób wyznacza pierwiastki wielomianów: jako wartości własne macierzy stowarzyszonej.
Przykład
Praktyczne zadanie z macierzą symetryczną
W praktyce obliczeniowej spotyka się zazwyczaj kilka typów zagadnień:
- Wyznaczenie dominującej wartości własnej (to znaczy: największej co do
modułu) i odpowiadającego jej wektora własnego (a może kilku wektorów?)
- Wyznaczenie najmniejszej co do modułu wartości własnej i wektorów jej
odpowiadających (zauważmy, że to jest np. zadanie wyznaczenia jądra macierzy osobliwej --- wtedy wiemy a priori, że szukana najmniejsza co do modułu wartość własna to zero)
- Wyznaczenie wartości własnej najbliższej zadanej liczbie (to jest właśnie
odpowiedź na pytanie jak blisko częstości wymuszającej są częstości drgań własnych budynku)
- Wyznaczenie wszystkich wartości własnych (na przykład, w celu znalezienia
wszystkich pierwiastków zadanego wielomianu)
- Wyznaczenie wszystkich wartości i wektorów własnych (tzw. pełne
zagadnienie własne)
Jak domyślamy się, dla macierzy rozrzedzonych dużego wymiaru pełne zagadnienie własne jest zbyt kosztowne, gdyż najczęściej macierz wektorów własnych --- nawet dla macierzy rzadkiej --- jest gęsta.
Ponieważ w zastosowaniach bardzo często pojawiają się macierze rzeczywiste symetryczne (powyższe przykłady pokazują, że nie tylko!) szczegółową analizę metod numerycznych ograniczymy do tego przypadku, gdyż wtedy zachodzi
Twierdzenie o symetrycznym zadaniu włanym
Każda macierz rzeczywista symetryczna wymiaru ma rozkład
gdzie jest ortogonalna (tzn. ), a jej kolumnami są wektory własne , natomiast jest diagonalna z wartościami własnymi na diagonali:
Uwarunkowanie zadania
Twierdzenie Bauer-Fike
Niech będzie diagonalizowalna, to znaczy dla pewnej macierzy zachodzi
a więc (gdyż macierz po prawej stronie jest podobna do ) , są wartościami własnymi . Rozważmy macierz zaburzoną i jakąś jej wartość własną . Wtedy istnieje wartość własna macierzy taka, że
Ponieważ dla rzeczywistej macierzy symetrycznej macierz przejścia jest ortogonalna, , to mamy cond i w konsekwencji zachodzi
Wniosek Wartości własne macierzy symetrycznej są doskonale uwarunkowane
Przy oznaczeniach jak {thm:Bauer-Fike}{twierdzeniu Bauera-Fike'a}, jeśli dodatkowo założymy, że macierz jest rzeczywista i symetryczna, to
Z drugiej strony, dla macierzy niediagonalizowalnych, uwarunkowanie wartości własnych może być dowolnie duże, co ilustruje poniższy
Przykład
Weźmy dla uproszczenia . Wartości własne to zera wielomianu , zatem i w konsekwencji
gdy , a więc uwarunkowanie takiego zadania jest nieskończone: dowolnie mała zmiana macierzy powoduje zaburzenie wartości własnych niewspółmiernie wielkie wobec zaburzenia danych. Dodatkowo, wartości własne i wektory własne macierzy dla ujemnego parametru są zespolone!
{eigencond.png}{Zachowanie się wartości własnych macierzy (z parametrem ) w otoczeniu }
Bardziej spektakularny przykład pochodzi od Wilkinsona:
Przykład Perfidny wielomian Wilkinsona
Niech
Zmiana współczynnika przy o skutkuje presunięciem niektórych miejsc zerowych nawet o kilka jednostek na płaszczyźnie zespolonej! Poniżej pokazujemy to na numerycznym przykładzie, gdzie prócz w/w zaburzenia mamy dodatkowo z zaburzeniami powstałymi wskutek wyznaczenia współczynników wielomianu w arytmetyce zmiennoprzecinkowej.
{wilkinson.png}{Zera oryginalnego i lekko zaburzonego perfidnego wielomianu Wilkinsona.}
Jak widzimy, zera bardzo mało zaburzonego wielomianu mogą stać się wyraźnie nie-rzeczywiste!
Jeśli chodzi o wektory własne, ich wrażliwość na zaburzenia macierzy jest bardziej skomplikowana i zależy m.in. od uwarunkowania wartości własnych (czego łatwo się domyślić) oraz od tego, jak blisko siebie leżą wartości własne.
Lokalizacja wartości własnych
Jak okaże się za chwilę, czasem warto mieć ogólne rozeznanie o tym, gdzie z grubsza leżą wartości własne danej macierzy . W tym celu mogą być nam pomocne dwa fakty:
Fakt
Dowolna wartość własna macierzy spełnia
gdzie jest dowolną normą macierzową indukowaną przez normę wektorową.
Rzeczywiście, skoro istnieje wektor taki, że , to stąd , więc fakt powyższy wynika już z definicji normy macierzy:
Drugie twierdzenie jest równie proste w dowodzie, ale daje trochę więcej informacji o lokalizacji widma.
Twierdzenie Gerszgorina
Wartości własne macierzy leżą w sumie (teoriomnogościowej) dysków na płaszczyźnie zespolonej,
Przykład Koła Gerszgorina
Niech
{gershgorindisks.png}{Lokalizacja wartości własnych macierzy kołami Gerszgorina oraz zgrubna lokalizacja wewnątrz okręgu o promieniu równym . Dokładne wartości własne zaznaczone trójkącikami.}
Przykład Widmo macierzy jednowymiarowego Laplasjanu
Norma daje:
Tw. Gerszgorina daje:
W rzeczywistości,
Metoda potęgowa, odwrotna potęgowa, RQI
Metoda potęgowa
Przypuśćmy, że wartości własne macierzy spełniają
(to znaczy, istnieje dokładnie jedna dominująca wartość własna macierzy .
Załóżmy także, że istnieje baza złożona z wektorów własnych tej macierzy (tak jest np. dla macierzy symetrycznej na mocy {thm:symetric-eig}{twierdzenia o własnościach symetrycznego zadania własnego}).
Kierunek własny jakiejś macierzy ma taką własność, że poddany działaniu przekształcenia wydłuża się razy, wobec tego, dowolny wektor poddany działaniu najbardziej wydłuży się w kierunku . Iterując tę procedurę, powinniśmy dostawać w wyniku wektory, w których coraz bardziej dominuje kierunek . Formalnie, niech
wtedy
i w konsekwencji
Ponieważ z założenia, że istnieje dokładnie jedna dominująca wartość własna, , to wyrażenie w nawiasie dąży do i w konsekwencji wektory dążą, gdy , do kierunku wektora własnego , to znaczy wektora odpowiadającego dominującej wartości własnej (o ile tylko ).
Szybkość zbieżności metody potęgowej jest liniowa, o współczynniku zależnym od stosunku . W patologicznym przypadku, gdy , może więc okazać się, że metoda praktycznie nie jest zbieżna.
W praktyce nie wyznaczamy wzorem , lecz raczej korzystamy z metody iteracyjnej
[title=Metoda potęgowa] = dowolny wektor startowy; k = 0; while( !stop ) { = ; = ; k++; }
Warunek normowania ma m.in. na celu zapobieżenie powstawania nadmiaru i niedomiaru (gdy , to , a gdy , to ). Przy okazji, , a więc mamy także sposób na wyznaczenie przybliżenia dominującej wartości własnej.
Zazwyczaj jako warunek stopu wybiera się kryterium małej poprawki, , lub warunek małego residuum, , gdzie jest przybliżeniem dostępnym na -tej iteracji.
{}{Zasada działania metody potęgowej}
Metoda potęgowa doskonale sprawdza się, gdy macierz jest macierzą rozrzedzoną --- np. w przypadku macierzy Google'a.
Odwrotna metoda potęgowa
Zauważmy, że dla dowolnej macierzy kwadratowej o wartościach własnych i odpowiadających im wektorach własnych , mamy:
- Macierz ma wartości własne oraz wektory
własne ,
- Jeśli dodatkowo jest nieosobliwa, to macierz ma wartości
własne oraz wektory własne
Łącząc te dwie własności mamy, że
Stwierdzenie Transformacja widma macierzy
Macierz (o ile istnieje), to ma wartości własne równe i wektory własne identyczne z .
Skoro tak, to jeśli najbliższą wartością własną jest , wówczas metoda potęgowa zastosowana do macierzy zbiegnie do . To prowadzi do następującego algorytmu, odwrotnej metody potęgowej:
[title=Odwrotna metoda potęgowa] = dowolny wektor startowy; k = 0; while( !stop ) { Rozwiąż układ równań ; = ; k++; }
Metoda Rayleigh
Z własności metody potęgowej, metoda odwrotna potęgowa jest zbieżna tym szybciej, im bliżej jest przesunięcie (w stosunku do pozostałych wartości własnych). Dlatego dobrze byłoby --- dla zwiększenia szybkości zbieżności iteracji --- poprawiać wartość przesunięcia , korzystając z dotychczas wyznaczonego wektora i ilorazu Rayleigh:
[title=Metoda RQI (Rayleigh Quotient Iteration)] = dowolny wektor startowy; = przybliżenie ; k = 0; while( !stop ) { Rozwiąż układ równań ; = ; = ; k++; }
(wybierając normowanie wektora w normie euklidesowej upraszczamy co nieco algorytm).
Wielką zaletą metody RQI jest jej szybkość zbiezności: kwadratowa gdy wartość własna jest pojedyncza, a nawet sześcienna w przypadku macierzy symetrycznej.
Wadą metody RQI jest to, że na każdym jej kroku należy rozwiązywać układ równań z inną macierzą.
Przez pewien czas numerycy odnosili się do tej metody z rezerwą, twierdząc, i słusznie, że im lepszym przybliżeniem będzie , tym bardziej rośnie uwarunkowanie , a tym samym --- błąd numerycznego rozwiązywania układu z tą macierzą będzie coraz większy i metoda będzie tracić stabilność. Tymczasem okazuje się, że --- choć rzeczywiście tak jest --- wektor błędu ma kierunek praktycznie zgodny z kierunkiem poszukiwanego wektora , a tym samym tylko pomaga w zbieżności metody!
Metoda dziel i rządź, metoda QR
{}{Secular equation}
Biblioteki
LAPACK zawiera w sobie kolekcję doskonałych narzędzi do rozwiązywania zadania własnego. {WYmienic}
ARPACK rozwiązuje zadanie własne dla macierzy rozrzedzonych, zwłaszcza symetrycznych.
Funkcja !eig! w Octave wyznacza wszystkie wartości własne (lub pary własne) zadaniej gęstej macierzy. Jak dotąd, tylko MATLAB potrafi skorzystać z ARPACKa dla wyznaczenia fragmentów widma macierzy rzadkiej, za pomocą funkcji !eigs!.