MN12LAB: Różnice pomiędzy wersjami
Linia 265: | Linia 265: | ||
Niech | Niech | ||
<center><math>A = \ | <center><math>A = \begin{pmatrix} | ||
1.08930 & 1.38209 & -1.00037 & 0.69355 & 2.32178 \\ | 1.08930 & 1.38209 & -1.00037 & 0.69355 & 2.32178 \\ | ||
0.14211 & 1.74696 & 1.68440 & 0.30664 & 1.26718 \\ | 0.14211 & 1.74696 & 1.68440 & 0.30664 & 1.26718 \\ | ||
Linia 271: | Linia 271: | ||
0.83517 & 0.74987 & 1.71331 & 1.09765 & -0.44321 \\ | 0.83517 & 0.74987 & 1.71331 & 1.09765 & -0.44321 \\ | ||
1.02132 & -2.62155 & 0.79247 & 1.11408 & 0.48076 \\ | 1.02132 & -2.62155 & 0.79247 & 1.11408 & 0.48076 \\ | ||
\ | \end{pmatrix} | ||
</math></center> | </math></center> | ||
Wersja z 14:15, 8 sie 2006
Wyznaczanie wektorów i wartości własnych
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 {hopla} wartości własnych !hopla! 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 [Uzupelnij]
[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 [Uzupelnij]
[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 XXXX 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 [Uzupelnij]
[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! właśnie w taki sposób wyznacza pierwiastki wielomianów: jako wartości własne macierzy stowarzyszonej.
Przykład [Uzupelnij]
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
- 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 [Uzupelnij]
[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 [Uzupelnij]
[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 i w konsekwencji zachodzi
Wniosek [Uzupelnij]
[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 [Uzupelnij]
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 [Uzupelnij]
[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 [Uzupelnij]
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 [Uzupelnij]
[Gerszgorina] Wartości własne macierzy leżą w sumie (teoriomnogościowej) dysków na płaszczyźnie zespolonej,
Przykład [Uzupelnij]
[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 [Uzupelnij]
[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 [Uzupelnij]
[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ą.
[Gdy złe uwarunkowanie pomaga...] 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}