Wyznaczanie wartości i wektorów własnych macierzy (problem własny)
Plan wykładu:
1. Pojęcia podstawowe, definicje
2. Metoda Kryłowa poszukiwania pierwiastków równania charakterystycznego
3. Lokalizacja (szacowanie) wartości własnych – tw. Gerschgorina 4. Proste metody iteracyjne
a)Metoda potęgowa dla wartości własnej o największym module b)przyśpieszanie zbieżności
c) redukcja macierzy metodą Hottelinga d) redukcja macierzy metodą Wielandta
5. Sprowadzanie macierzy symetrycznych/hermitowskich do postaci trójdiagonalnej
a) metoda Hauseholdera b) Metoda Lanczosa
6. Sprowadzanie macierzy symetrycznych/hermitowskich do postaci macierzy Hessenberga
7. Wyznaczanie wartości i wektorów własnych macierzy trójdiagonalnych i macierzy Hessenberga
a) Metoda bisekcji
b) Rozkład LR i QR, rozkład QR metodą Hauseholdera 8.Uogólniony problem własny, przesuwanie widma 9. Rozkład SVD
2 Pojęcia podstawowe
Często przy tworzeniu modeli matematycznych wykorzystywanych do symulacji zjawisk
fizycznych czy zachowania się układu, zachodzi potrzeba rozwiązania tzw. problemu własnego (np. rów. Schrodingera):
- A jest macierzą kwadartową o nxn - xk jest wektorem własnym macierzy odpowiadającym wartości własnej k
Nie zawsze układ równań, którego chcemy znaleźć rozwiązanie, przyjmuje tak prostą postać. Nierzadko mamy do czynienia z tzw.
uogólnionym problemem własnym:
Jeśli macierz B jest nieosobliwa to problem uogólniony można przekształcić
do postaci:
Ax
k= ¸
kx
ka
ij; ¸
k; x
(k)m2 C
A ¢ x = ¸B ¢ x
B
¡1Ax = ¸x
Liczbę nazywamy wartością własną macierzy jeśli istnieje taki niezerowy wektor x dla którego zachodzi:
Wektor x nazywamy (prawostronnym) wektorem własnym przynależnym do wartości własnej . Ciąg wszystkich wartości własnych nazywamy widmem macierzy A i oznaczamy: Sp(A).
Z powyższej definicji wynika:
Macierz (A-I) jest osobliwa, więc:
Wyznacznik ten jest wielomianem stopnia n zmiennej
:
Każda wartość własna k jest pierwiastkiem
wielomianu charakterystycznego macierzy A.
Ax = ¸x
(A ¡ ¸I)x = 0
det(A ¡ ¸I) = 0
w(¸) = det(A ¡ ¸I) =
= ( ¡1)
n(¸
n+ a
n¡1¸
n¡1+ : : : + a
0)
A = [a
ii]
3 Def. Wartości i wektory własne macierzy
transponowanej AT nazywamy lewostronnymi wartościami i lewostronnymi wektorami własnymi macierzy A.
Wyznacznik macierzy po jej transponowaniu nie ulega zmianie. Dlatego widmo macierzy A jest równe widmu lewostronnemu.
Tw. Jeżeli p jest prawostronną wartością własną macierzy, a l jest jej lewostronną wartością własną oraz gdy
Wówczas wektor własny xl jest ortogonalny do lewostronnego wektora własnego xp.
Dla macierzy symetrycznej A=AT wektory własne są zarazem wektorami lewostronnymi.
Jeżeli więc wektory własne przynależą do różnych wartości własnych to są do siebie ortogonalne.
¸
p6= ¸
l(¸
p6= ¸
l)
Def. Macierze A i B są podobne jeśli istnieje nieosobliwa macierz podobieństwa P, że:
Tw. Jeżeli macierze A i B są podobne to mają identyczne widmo wartości własnych.
Tw. Macierz Qmxn (m≥ n) nazywamy ortogonalną jeśli:
Tw. Jeżeli macierz Qnxn jest ortogonalna to:
Tw. Macierz symetryczna A jest ortogonalnie podobna do macierzy diagonalnej D:
Tw. Wartości własne macierzy symetrycznej są rzeczywiste.
Def. Macierz o elementach zespolonych i własności
nazywamy macierzą hermitowską.
Wartości własne macierzy hermitowskiej są rzeczywiste a wektory własne są do siebie ortogonalne.
P
¡1AP = B
Q
TQ = I
n£n= I
n£nQ
TAQ = D x x x
Tlx x x
p= 0
x
x x
TlAx x x
p= ¡
A
Tx x x
l¢
Tx x x
p= ¸
lx x x
Tlx x x
p(¸
l¡ ¸
p)x x x
lx x x
p= 0 x
x x
TlAx x x
p= ¸
px x x
Tlx x x
pA = (A
T)
¤) a
ii2 R
4 Tw. Dla dowolnej macierzy A istnieje macierz
nieosobliwa P, która może mieć elementy zespolone i zachodzi pomiędzy nimi związek
Powyższa macierz definiuje postać kanoniczną Jordana
Jk jest macierzą zdefiniowaną następująco
i jest wartością własną macierzy A i może wystąpić w wielu macierzach Jk.
k = 1; 2; : : : ; K · n
J
k= 2 6 6 6 6 4
¸
i1 0 : : : 0 0 0 ¸
i1 : : : 0 0 : : : : : : : : : : : : : : : : : :
0 0 0 : : : ¸
i1 0 0 0 : : : 0 ¸
i3 7 7 7 7 5
Wyznaczniki
są dzielnikami elementarnymi macierzy A.
Liczba m jest stopniem macierzy Jk. Dla m=1 macierz Jk stanowi dzielnik liniowy.
Jeśli wszystkie wartości własne macierzy A są różne to wszystkie dzielniki elementarne są liniowe.
Iloczyn skalarny (wewnętrzny)
Iloczyn zewnętrzny
det(J
k¡ ¸I) = (¸
i¡ ¸)
mP
¡1AP = 2 6 6 4
J
10 : : : 0 0 J
2: : : 0 : : : : : : : : : : : :
0 0 : : : J
k3 7 7 5
haaa; bbbi = aaa
Tbbb = [®
1; ®
2; : : : ; ®
n] 2 6 6 6 4
¯
1¯
2.. .
¯
n3 7 7 7 5
a
a a ihbbb = aaabbb
T= 2 6 6 6 4
®
1®
2.. .
®
n3 7 7 7 5
[¯
1; ¯
2; : : : ; ¯
n]
= 2 6 6 4
®
1¯
1®
1¯
2: : : ®
1¯
n®
2¯
1®
2¯
2: : : ®
2¯
n: : : : : : : : : : : :
®
n¯
1®
n¯
2: : : ®
n¯
n3
7 7
5
5 Tw. (Schura) Suma kwadratów modułów wartości
własnych jest ograniczona od góry przez kwadrat normy euklidesowej:
Tw. Widmo macierzy ulega przesunięciu po dodaniu do niej macierzy jednostkowej pomnożonej przez liczbę:
widmo:
zostaje zastąpione przez:
Tw. (Cayleya-Hamiltona) Jeśli
jest równaniem charakterystycznym macierzy A to
X
n i=1j¸j
2· kAk
2ESp(A + cI) = Sp(A) + c Sp(A) = f¸
1; ¸
2; : : : g
Sp(A + cI) = f¸
1+ c; ¸
2+ c; : : : g
Metoda Kryłowa poszukiwania zer równania charakterystycznego
Korzystając z tw. CH
Co dla dowolnego wektora y daje
układ n równań na n niewiadomych
Do jego utworzenia potrzeba jednak n3 obliczeń, oraz n3/3 aby go rozwiązać.
Uwaga:
Wyznaczenie zer wielomianu charakterystycznego może być źle uwarunkowane.
w(¸) = det(A ¡ ¸I) = 0
w(A) = 0
w(¸) = ¸
n+
n
X
¡1 i=0b
i¸
i= 0
w(A) = A
n+
n
X
¡1 i=0b
iA
i= 0
b
0; b
1; b
2; : : : ; b
n¡1A
nyyy +
n
X
¡1 i=0b
iA
iyyy = 0
6 Lokalizacja wartości własnych
Tw. (Gershgorina) Niech Ci oznaczają koła domknięte na płaszczyźnie zespolonej o
środkach w punktach aii (elementy diagonalne macierzy A) i promieniach równych sumie
modułów elementów z danego (i-tego) wiersza:
Wówczas:
Jeżeli k kół Ci tworzy zbiór rozłączny z pozostałymi kołami, to w zbiorze tym leży dokładnie k wartości wlasnych macierzy A.
Wnioski:
1. Jeżeli macierz jest symetryczna i diagonalnie dominująca o nieujemnych elementach na
diagonali, to jest nieujemnie określona, a jeśli jest ona dodatkowo nieosobliwa to jest dodatnio określona. Macierz symetryczna silnie
diagonalnie dominująca jest dodatnio określona wtedy i tylko wtedy gdy elementy na diagonali są dodatnie.
2. W każdym kole rozłącznym z pozostałymi leży dokładnie jedna wartość własna.
C
i= fz : jz ¡ a
iij · X
nj=1 j6=i
ja
ijjg
Sp(A) ½ [
n i=1C
iWartości własne macierzy A leżą na płaszczyźnie
zespolonej i zawarte są w kole o środku w 0 i promieniu równym promieniowi spektralnemu tej macierzy.
Ponieważ:
więc można przyjać że:
Widma wartości własnych i lewostronnych wartości własnych są identyczne. Aby otrzymać lepsze
oszacowanie położenia wartości własnych można więc zastosować twierdzenie Geshgorina dla AT. Koła
zawierające wartości własne mają środki w aii i promienie równe sumie modułów pozostałych elementów
w i-tych kulmnach.
Przykład. Podać lokalizację wartości własnych macierzy
½(A) · kAk
p; p = 1; 2; 1; E
¸
i2 fz : jzj · kAk
pg
A = 2
4 ¡2 ¡1 0
2 0 0
0 0 2
3
5
7 a) najgorsze oszacowanie – lokalizacja w kole o promieniu 4
b) tw. Gershgorina – lokalizacja w kole o promieniu 3
c) tw. Gershgorina dla AT – jedno z kół jest odseparowane (C'3) i zdegenerowane
znajduje się w nim dokładnie jedna wartość własna (=2) - najlepsze oszacowanie
8 Metody wyznaczania wartości
i wektorów własnych macierzy
Proste metody iteracyjne
Metoda potęgowa I jej modyfikacje Macierze o elementach
I wartościach
własnych rzeczywistych
Macierze symetryczne
(w tym hermitowskie) Macierze niesymetryczne
Redukcja macierzy do postaci trójdiagonalnej
Redukcja macierzy do postaci Hessenberga
Metoda Hauseholdera
Redukcja do postaci diagonalnej metodą Jacobiego
Metoda Givensa
Rozkład QR Metoda Lanczosa
(macierze rzadkie)
Wartości i wektory własne
9 Metoda potęgowa wyznaczania
pojedynczych wartości własnych i wektorów własnych.
Załóżmy że istnieje n liniowo niezależnych wektorów własnych macierzy A, stanowią bazę przestrzeni liniowej
Wówczas dla dowolnego wektora v0
Jeślii stanowią wartości własne macierzy
Zakładamy że wartości własne tworzą ciąg
Jeśli 1 jest dominującą wartością własną, oraz wektor v0 ma składową w kierunku x1 to wówczas zachodzi
vvv
0= X
ni=1
a
ix x x
ix x x
1; x x x
2; x x x
3; : : : ; x x x
nAvvv
0= X
ni=1
a
i¸
ix x x
ivvv
m= A
mvvv
0= X
ni=1
a
i¸
mix x x
ij¸
1j ¸ j¸
2j ¸ j¸
3j ¸ : : : ¸ j¸
nj
Z czego można wysnuć wniosek że wartość własną można obliczyć następująco
Dla dowolnego wektora y nieortogonalnego do x1. Zazwyczaj y ma 1 na pozycji elementu o największym module w vm+1 a na pozostałych 0.
Jaka jest zbieżność metody?
Zależy od (i/1)m ale również od współczynników ai czyli od wyboru v0. Jeśli wartość własna o największym module jest zespolona to ciąg nie jest zbieżny.
Jak wyznaczyć wektor własny x1? Ponieważ
więc unormowany wektor własny będzie miał postać
m
lim
!1A
mvvv
0¸
m1= a
1x x x
1¸
1= lim
m!1
yyy
Tvvv
m+1yyy
Tvvv
mx x x
1= vvv
mjvvv
mj vvv
m= ¸
m1"
a
1x x x
1+ X
ni=2
µ ¸
i¸
1¶
ma
ix x x
i#
vvv
m¼ ¸
m1a
1x x x
110 Jeśli wartość własna jest pierwiastkiem
wielokrotnym rówanania charakterystycznego to metoda jest zbieżna bo składnik z 1 dominuje
Uwaga: problem pojawia się gdy 1=-j tj.
identyczne moduły generują oscylacje (wtedy wybieramy ciąg wektorów v2k)
Przyśpieszanie zbieżności - iloraz Rayleigha Jeśli macierz jest symetryczna to jej wektory własne są ortogonalne. Załóżmy, że są również
ortonormalne
Wtedy
Oraz
co daje lepszą zbieżność niż wariant podstawowy metody
vvv
m= A
mvvv
0= ¸
m1X
ki=1
a
ix x x
i+
X
n i=k+1¸
mia
ix x x
ivvv
TmAvvv
m= vvv
Tmvvv
m+1= X
ni=1
a
2i¸
2m+1ix
x x
Tix x x
j= ±
ijvvv
Tmvvv
m= X
ni=1
a
2i¸
2mivvv
Tmvvv
m+1vvv
Tmvvv
m= ¸
1+ O
"µ
¸
i¸
1¶
2m#
Wyznaczanie pozostałych wartości własnych a) metoda redukcji wektora
Jeśli znamy wartość własną o największym module to możemy wykorzystać ten fakt przy wyznaczaniu kolejnej największej co do modułu wartości własnej tj. 2
Ponieważ wektory vm+1 oraz 1vm są bliskie więc metoda może być w pewnych przypadkach nieużyteczna.
b) metoda zerowania składowej Znając 1 możemy zdefiniować wektor
Czyli z v0 usuwamy składową w kierunku x1. Wektor w0 nie ma składowej w kierunku x1 więc ciąg wm powinien być zbieżny do 2 oraz x2. Ze względu na błędy zaokrągleń jednak usuwa się co pewną ilość iteracji składową x1 tj.
w w w
m= vvv
m+1¡ ¸
1vvv
m=
X
n i=2a
i(¸
i¡ ¸
1)¸
mix x x
iw w w
0= (A ¡ ¸
1I)vvv
0zzz
m= (A ¡ ¸
1I)w w w
m11 Aby wyznaczyć kolejne wartości własne
korzystamy z wektora
Taki proces staje się mało wydajny dla kolejnych wartości własnych.
c) redukcja macierzy
Tw. Jeśli 1 jest wartością własną macierzy A i x1 odpowiadającym jej wektorem własnym oraz dla dowolnego wektora v o własności
Macierz zredukowana
Ma te same wartości co macierz A oprócz 1 która jest zerem.
w
w w
0= (A ¡ ¸
1I)(A ¡ ¸
2I)vvv
0W
1= A ¡ ¸
1x x x
1vvv
Tvvv
Tx x x
1= 1
przykład: redukcja Hotellinga
Za wektor v przyjmujemy lewy wektor własny
przynależny do wartości własnej 1. Ale na ogół nie znamy lewych wektorów.
Metoda jest więc skutecza tylko w przypadku macierzy symetrycznych, wtedy lewe wektory są identyczne z prawymi
lub rekurencyjnie
vvv = x x x
1W
1= A ¡ ¸
1x x x
1x x x
T1W
0= A
i = 1; 2; : : : ; n ¡ 1
W
i= W
i¡1¡ ¸
i¡1x x x
i¡1x x x
Ti¡112 Redukcja macierzy gęstej do prostszej
postaci - macierzy trójdiagonalnej lub macierzy Hessenberga
Macierz pierwotną przekształcamy iteracyjnie
tak aby końcowa macierz B była macierzą podobną do A0
a następnie w łatwy sposób wyznaczamy wartości i wektory własne macierzy B
Uwagi:
a) nakład obliczeń potrzebnych do
wyznaczenia xi oraz i macierzy B powinien być jak najmniejszy
A = A
0! A
1! A
2! : : : ! A
mb) algorytm numerycznego rozwiązania problemu własnego macierzy B nie może być gorzej
uwarunkowany niż dla A
Dla
problem własny B będzie gorzej uwarunkowany niż dla A. Ale ponieważ
więc uwarunkowanie algorytmu zależy od postaci Pi
A
i= P
i¡1A
i¡1P
i; i = 1; 2; : : : ; m
B = A
m= P
¡1AP P = P
1P
2: : : P
mB = P
¡1AP
¢A = P ¢BP
¡1cond(P ) >> 1
cond(P ) = cond(P
1: : : P
m)
· cond(P
1) : : : cond(P
m) jBj · jP
¡1j ¢ jAj ¢ jP j = cond(P )jAj
j¢Aj · cond(P )j¢Bj j¢Aj
jAj · (cond(P ))
2j¢Bj jBj
B + ¢B = P
¡1(A + ¢A)P
Byyy = ¸yyy
x x x = Pyyy = P
1: : : P
myyy
Ax x x = ¸x x x
13 Redukcja macierzy hermitowskiej do
postaci trójdiagonalnej metodą Hauseholdera
Pierwotna macierz hermitowska
Transformujemy
Przy pomocy macierzy Hauseholdera
Dokonujemy transformacji Ai-1 do Ai. Ai-1 ma postać
A
H= A = A
0A
H= (A
T)
¤a a a
i=
2 6 6 6 6 4
®
i+1;i¢
¢
¢
®
ni3 7 7 7 7 5
Zauważmy że w kolejnym kroku należy dokonać transformacji
a) (n-i) elementowego wektora ai b) macierzy kwadratowej
rzędu (n-i)
A ~
i¡12
4 J
i¡1ccc ccc
H±
i3 5 =
2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4
±
1° ¹
2¢ ¢ ¢ 0 0
°
2. .. ... ¢ ¢
¢ . .. ... ... ¢ ¢
¢ . .. ... ... ¢ ¢
¢ . .. ... ¹°
i¡10 0 ¢ ¢ ¢ °
i¡1±
i¡1° ¹
i0 ¢ ¢ ¢ 0 °
i±
i3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 A
i= P
i¡1A
i¡1P
iP
i= P
iH= P
i¡1= I ¡ ¯
iu u u
iu u u
HiA
i¡1= 2 6 6 6 4
J
i¡1ccc 0 ccc
H± a a a
Hi0 a a a
iA ~
i¡13 7 7 7 5
= [®
jk]
14 Trzeba utworzyć macierz Hauseholdera
rzędu (n-i)
taką aby transformowała wektor ai
Macierz Hauseholdera konstruujemy następująco
¯ = 8 <
:
1
¾(¾+j®i+1;ij)
¾ 6= 0
0 ¾ = 0
¾ = kaaa
ik
2= v u u t
X
n j=i+1j®
jij
2k = ¡¾e
i'() ®
i+1;i= e
i'j®
i+1;ij
u u u =
2 6 6 6 6 6 6 4
e
i'(¾ + j®
i+1;ij)
®
i+2;i.. .
®
n;i3 7 7 7 7 7 7 5
Dokonujemy transformacji
P ~
iP ~
ia a a
i= k ¢ eee
1P ~
i= I ¡ ¯uu uu uu
HP
i¡1A
i¡1P
i= P
iA
i¡1P
i=
= 2 6 6 6 4
J
i¡1ccc 0 ccc
H±
ia a a
HiP ~
i0 P ~
ia a a
iP ~
iA ~
i¡1P ~
i3 7 7 7 5
= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4
±
1° ¹
20 0
°
2. .. ... .. . 0
. .. ... ¹°
i¡10 0 °
i¡1±
i¡1° ¹
i0 : : : 0 °
i±
i° ~
i+10 : : : 0
°
i+10
0 .. . P ~
iA ~
i¡1P ~
i0
3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 P
i=
2 6 6 6 4
I 0 0 0 1 0 0 0 P ~
i3 7 7 7 5
gi ¡ 1
15 Jak dokonać efektywnego mnożenia macierzy
(zwykłe jest nieekonomiczne)?
Definiujemy dwa wektory pomocnicze
ponieważ
oraz z faktu, że Ai-1 jest hermitowska wynika
°
i+1= k
p pp = ¯ ~ A
i¡1u u u qqq = pp p ¡ ¯
2 (ppp
Hu u u)u u u
¯ ¸ 0
p pp
Hu u u = ¯u u u
HA ~
i¡1u u u = (ppp
Hu u u)
HPrzeprowadzając proces przekształcania macierzy do końca dostaniemy macierz B
Metoda Hauseholdera jest stabilna numerycznie.
B = A
n¡2= 2 6 6 6 6 4
±
1° ~
2¢ ¢ ¢ 0
°
2. .. ... ...
.. . . .. ... ~°
n0 ¢ ¢ ¢ °
n±
n3 7 7 7 7 5 P ~
i= I ¡ ¯uu uu uu
HP ~
iA ~
i¡1P ~
i= (I ¡ ¯uu uu uu
H) ~ A
i¡1(I ¡ ¯uu uu uu
H)
= A ~
i¡1¡ ¯ ~ A
i¡1uu uu uu
H¡ ¯uu uu uu
HA ~
i¡1+ ¯
2uu uu uu
HA ~
i¡1uu uu uu
HP ~
iA ~
i¡1P ~
i= ~ A
i¡1¡ pu pu pu
H¡ up up up
H+ ¯up up up
Huu uu uu
H= ~ A
i¡1¡ uuu µ
ppp ¡ ¯
2 (ppp
Hu u u)u u u
¶
H¡ µ
ppp ¡ ¯
2 (ppp
Hu u u)u u u
¶ u u u
H= ~ A
i¡1¡ uq uq uq
H¡ qu qu qu
H16 Redukcja macierzy (rzadkiej) hermitowskiej
do postaci trójdiagonalnej metodą Lanczosa Naszym zadaniem jest znalezienie wartości i wektorów własnych macierzy stopnia n
Jeśli jednak n jest bardzo duże (np.rzędu ~105 ) a nas interesuje jedynie mały wycinek widma
wartości (wektorów) własnych (np. m=50) to wtedy należy zredukować macierz do postaci trójdiagonalnej stopnia m.
W metodzie Lanczosa wykorzystujemy do tego celu podprzestrzeń Kryłowa
Zakładamy że wektory rozpinające podprzestrzeń
są ortonormalne
¸
1; ¸
2; : : : ; ¸
n2 R x x x
1; x x x
2; : : : ; x x x
n2 C
nqqq 2 C
nK
m(qqq; A) = span[qqq; Aqqq; : : : ; A
m¡1qqq]
m ¸ 1
K
0(qqq; A) = f000g dimK
m= m
K
m= span[qqq
1; qqq
2; : : : ; qqq
m] qqq
Hiqqq
j= ±
ij=
½ 1 i = j 0 i 6= j
Metoda Lanczosa jest metodą iteracyjną – w każdej iteracji poszukujemy nowego wektora bazowego (wymiar podprzestrzeni zwiększa się o 1)
Sposób postępowania.
Wybieramy dowolny wektor startowy
zakładamy taże
a następnie wykonujemy rekurencyjnie ciąg obliczeń korzystając z relacji:
Procedura zatrzyma się gdy
Wówczas wymiar wygenerowanej podprzestrzeni
qqq
12 C
n; qqq
16= 000
°
1qqq
0= 0
Aqqq
i= °
iqqq
i¡1+ ±
iqqq
i+ °
i+1qqq
i+1i ¸ 1
±
i= qqq
HiAqqq
i°
i+1= krrr
ik rrr
i= Aqqq
i¡ ±
iqqq
i¡ °
iqqq
i¡1qqq
i+1= rrr
i°
i+1, °
i+16= 0
±
i; °
i2 R
°
i+1= 0
m = max
i
dim K
i(qqq; A)
17 Schemat rekurencyjny można zapisać
macierzowo
Gdy warunek
jest spełniony wówczas zachodzi
Q
i= [qqq
1; : : : ; qqq
i]
J
i= 2 6 6 6 6 6 6 4
±
1°
20
°
2±
2. ..
. .. ... °
i0 °
i±
i3 7 7 7 7 7 7 5
AQ
i= Q
iJ
i+ [0; : : : ; 0; °
i+1q
i+1]
= Q
iJ
i+ °
i+1qqq
i+1eee
Tii = 1; 2; : : : ; m
eee
i= [0; 0; : : : ; 1]
T2 R
i°
i+1= 0
Q
HiQ
i= I
AQ
m= Q
mJ
mWartości własne Jm są wartościami własnymi A
W skrajnym przypadku metoda nie zatrzyma się sama i wówczas
Macierz Qn jest macierzą unitarną, a macierz Jn jest macierzą trójdiagonalną podobną do A.
Uwagi praktyczne:
1)można zredukować liczbę operacji wprowadzając wektor pomocniczy
wtedy
ponieważ
J
mzzz = ¸zzz; zzz 6= 000
m = n
rrr
i= u u u
i¡ ±
iqqq
i±
i= qqq
HiAqqq
i= qqq
Hiu u u
iqqq
Hiqqq
i¡1= 0 u
u u
i= Aqqq
i¡ °
iqqq
i¡1x x x = Q
mzzz 6= 0
Ax x x = AQ
mzzz = Q
mJ
mzzz = ¸Q
mzzz = ¸x x x
18 2. Jeśli nie interesują nas wektory własne A to
można nie przechowywać wektorów qi
W każdej iteracji (i->i+1) procedura wymaga obliczenia 5 iloczynów skalarnych oraz 1 przemnożenia wektora przez macierz A.
3. Jeśli interesuje nas jedynie
Wartości (wektorów) własnych macierzy A to wówczas nie czekamy aż i+1=0 ale przerywamy procedurę wcześniej.
Wykorzystujemy tu fakt, że zbieżność metody dla skrajnych wartości własnych jest bardzo szybka.
4. Ze względu na błędy zaokrągleń wektory rozpinające podprzestrzeń Kryłowa przestają być ortogonalne (gdy rośnie wymiar podprzestrzeni). Konieczne staje się
przeprowadzenie tzw. ortogonalizacji nowego wektora bazy
do już wyznaczonych
Przeprowadzenie reortogonalizacji jest kosztowne.
m << n
qqq ~
i+1qqq
i+1= ~ qqq
i+1¡ X
i j=1(qqq
Hjqqq ~
i+1)qqq
j19 Przesuwanie widma (shift-invert)
Ax = ¸Bx
(A ¡ ¾B)x = (¸ ¡ ¾)Bx
y = Bx
(A ¡ ¾B)
¡1¢ = (A ¡ ¾B)B
¡1y = (¸ ¡ ¾)y
B ¢ = 1
¸ ¡ ¾ y = B(A ¡ ¾B)
¡1y
Cy = ~ ¸y
C = B(A ¡ ¾B)
¡1¸ = ~ 1
¸ ¡ ¾
np. zastosowanie w metodzie Lanczosa Iteracyjnie wyznaczamy kolejne wektory q(i) czyli:
Najpierw szukamy wektora w(i)
W tym celu należy rozwiązać układ równań
np. przy użyciu CG lub ILU, wtedy
Rozwiązanie układu w każdej iteracji jest tanie dzieki czemu zastosowanie modyfikacji
„shift-invert” pozwala zmniejszyć ilość iteracji około 10-krotnie.
Cq
(i)= q
(i+1)B(A ¡ ¾B)
¡1q
(i)= q
(i+1)(A ¡ ¾B)
¡1q
(i)= w
(i)q
(i)= (A ¡ ¾B)w
(i)Bw
(i)= q
(i+1)wprowadzamy oznaczenie
i do rozwiązania pozostaje nam standardowy problem
¾ 6= ¸ ¡ shift/przesuniecie
= : (¸ ¡ ¾)
20 Redukcja macierzy do postaci macierzy
Hessenberga (górnej) metodą eliminacji Gaussa
Naszym zadaniem jest przekształcenie w sposób rekurencyjny macierzy A
do postaci Hessenberga
T – macierz trójdiagonalna U – macierz trójkątna górna Uwagi:
1) każda macierz kwadratowa jest ortogonalnie podobna do macierzy Hessenberga
2) ponieważ macierz A jest
przekształcana przez podobieństwo więc przekształcenie macierzy
hermitowskiej do postaci
Hessenberga prowadzi do uzyskania macierzy trójdiagonalnej ze względu na symetrię A. Macierz trójdiagonalna jest hermitowska.
A = A
0! A
1! : : : ! A
n¡2= B
HA
i= P
i¡1A
i¡1P
iW każdej iteracji macierz przekształcenia Pi konstruujemy z dwóch macierzy:
a) macierzy permutacji
macierz do niej odwrotna
¼
rs= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4
1 0
. ..
1
0 1
1
. ..
1
1 0
1
. ..
1 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5
à r
à s
¼
rs¡1= ¼
rsB
H=
2 6 6 6 6 4
¤ ¤ ¤ ¤ ¤
¤ ¤ ¤ ¤ ¤ 0 ¤ ¤ ¤ ¤ 0 0 ¤ ¤ ¤ 0 0 0 ¤ ¤
3 7 7 7 7
5 = T + U
21 b) macierzy eliminacji
z warunkiem
Macierz odwrotna Gj-1
G
j= 2 6 6 6 6 6 6 6 6 6 6 6 6 4
1
. ..
1
l
j+1;j1
.. . . ..
l
nj1
3 7 7 7 7 7 7 7 7 7 7 7 7 5
l
ij· 1
G
¡1j= 2 6 6 6 6 6 6 6 6 6 6 6 6 4
1
. ..
1
¡l
j+1;j1
.. . . ..
¡l
nj1
3 7 7 7 7 7 7 7 7 7 7 7 7 5
Jakie są skutki mnożenia macierzy Gj oraz rs z A?
1. - zamienia wiersze r i s w A
2. - zamienia kolumny r i s w A
2. - odejmuje wiersz j-ty przemnożony przez lrj od wiersza r w A
3. - przemnaża kolumnę r-tą przez lrj a następnie dodaje do
kolumny j-tej w A
¼
rs¡1A
G
¡1jA
AG
jA¼
rs22 Załóżmy, że w macierzy Ai-1 (i-1) pierwszych
kolumn posiada postać Hessenberga
A
i¡1= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4
¤ ¢ ¢ ¢ ¢ ¤ ¤ ¢ ¢ ¢ ¤
¤ ¢ ¢ ¢ ¢
¢ ¢ ¢ ¢ ¢
¢ ¢ ¢ ¢ ¢
¢ ¢ ¢ ¢ ¢
0 ¤ ¤ ¤ ¢ ¢ ¢ ¤
0 ¢ ¢ ¢ 0 ¤ ¤ ¢ ¢ ¢ ¤
¢ ¢
¢ ¢
¢ ¢
0 ¤ ¢ ¢ ¢ ¤
3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5
= 2 6 6 6 4
B
i¡1d d d A b
i¡1ccc ±
ibbb 0 a a a A ~
i¡13 7 7
7 5 a a a = 2 6 6 6 4
®
i+1;i.. .
®
ni3
7 7
7 5
23 Dokonujemy przekształcenia
macierz przekształcenia jest zdefiniowana w poniższy sposób
Macierz przekształcenia Pi nie zmienia postaci Hessenberga w (i-1) pierwszych kolumnach.
Zmienia natomiast kolumnę i-tą tj. zeruje elementy w tej kolumnie od i+2 do n.
A
i= P
i¡1A
i¡1P
iP
i¡1= G
¡1i+1¼
r;i+1¡1P
i= ¼
r;i+1G
i+1r ¸ i + 1
a a a = ¹ 2 6 6 6 4
¤ 0 .. . 0
3 7 7 7 5
Aby określić które wiersze należy zamienić wierszami, najpierw trzeba określić element o największym module w a
Po wyznaczeniu wartości r zamieniamy miejscami wiersze (r ↔ i+1) oraz kolumny (r ↔ i+1) w Ai-1
Dzięki temu element o największym module w wektorze a znajduje się teraz na jego pierwszym miejscu.
Jak określić Gj+1?
Warunek: trzeba wyzerować wszystkie elementy w a poza jego pierwszym elementem
Przeprowadzając drugi etap przekształcenia
Dostajemy macierz Hessenberga w i kolumnach macierzy Ai.
j®
rij = max
i+1·j·n
j®
jij; r ¸ i + 1
P
i¡1¢ 2 6 6 6 4
d d d
±
ia a a
3 7 7 7 5 =
2 6 6 6 4
d d d
±
ia ¹ a a
3 7 7 7 5
A
0= ¼
r;i+1¡1A
i¡1¼
r;i+1= [®
0jk]
l
j;i+1=
8 <
:
®0ji
®0i+1;i
®
i+1;i6= 0 0 ®
i+1;i= 0 j = i + 2; i + 3; : : : ; n
A
i= G
¡1i+1A
0G
i+1= P
i¡1A
¡1P
i24 Uwagi:
1) Po n-2 iteracjach macierz A zostaje przekształcona do postaci Hessenberga (górnej).
2) Metoda eliminacji Gaussa jest stabilna numerycznie i wymaga wykonania
operacji mnożenia
3) Redukcję macierzy do postaci Hessenberga można przeprowadzić także przy użyciu metody Hauseholdera lub Givensa
W metodzie Givensa trzeba wykonać
a w metodzie Hausholdera
operacji mnożenia
Ze względu na błędy numeryczne, w obu metodach macierz Hessenberga jest macierzą podobną do A+E
M = 2
3 n
3+ O(n
2)
M = 10
3 n
3+ O(n
2)
M = 5
3 n
3+ O(n
2)
kE
Givensk · k
1"n
3=2kAk; k
1» 1
kE
Hauseholderk · k
2"n
2kAk; k
2» 1
25 Wyznaczanie wartości własnych
macierzy
Wyznaczanie wartości własnych
macierzy trójdiagonalnej hermitowskiej metodą bisekcji
Po zredukowaniu macierzy A do postaci
chcemy znaleźć sposób na wyznaczenie wartości własnych J.
Jeśli warunek
to macierz jest nieredukowalna.
W przeciwnym wypadku można ją zapisać w postaci
J = 2 6 6 6 6 6 6 4
±
1° ¹
20
°
2. .. ...
. .. ... ¹°
n0 °
n±
n3 7 7 7 7 7 7 5
°
i6= 0; i = 2; : : : ; n
Macierze
są nieredukowalne. Ponadto widmo wartości własnych J pokrywa się z widmem macierzy nieredukowalnych Ji, można więc badać je osobno.
Szukamy wielomianu charakterystycznego Ji: W() rozwijając wyznacznik względem kolejnych kolumn macierzy
Macierz jest hermitowska więc
Do znalezienia wartości własnych można wykorzystać metodę bisekcji.
J
i; k = 1; : : : ; k
J = 2 6 6 6 6 6 6 4
J
10
J
2. ..
0 J
k3 7 7 7 7 7 7 5
±
i; j°
ij
22 R
!
i(¸) = det(J
i¡ ¸I)
!
0(¸) = 1
!
1(¸) = ±
1¡ ¸ : : : : : : : : :
!
i(¸) = (±
i¡ ¸)!
i¡1(¸) ¡ j°
i2j!
i¡2(¸) i = 2; 3; : : : ; n
W (¸) = !
n(¸)
26 Sposób postępowania:
1) wybieramy dowolną liczbę i obliczamy wartość wielomianu charakterystycznego rekurencyjnie
2) następnie korzystamy z poniższych twierdzeń:
Tw. Jeżeli elementy , 3, ..., n (pozadiagonalne) są niezerowe, to wartości własne macierzy J są
pojedyncze.
Tw. Jeżeli elementy 2, 3, ..., n (pozadiagonalne) są niezerowe, to ciąg wartości
… n
spełnia warunki:
a) jeżeli i dla pewnego i<n, to i-1i+1
b) jeżeli n jest różne od 0, to liczba zmian znaków sąsiednich liczb
01n
jest równa liczbie wartości własnych macierzy J mniejszych od
c) Jeżeli n, to jest wartością własną macierzy J, a ponadto jest tyle wartości własnych
mniejszych niż ile nastąpiło zmian znaków w ciągu 01n-1
Metoda bisekcji jest bardzo dokładna. Wadą jest uzyskiwanie dużych wartości ciągu:
01n jeśli znacznie różni się od wartości własnych J. Zaletą natomiast możliwość obliczenia wartości własnej o określonym indeksie k. Liczba iteracji potrzebna do wyznaczenia k wynosi:
–przedział poszukiwań wartości własnej
–dokładność wyznaczenia wartości własnej Wektory własne
Znając wartość własną macierzy J wektor własny wyznaczamy według wzorów:
gdzie: i – elementy diagonalne J
i – elementy pozadiagonalne J
IT = log
2¯
0¡ ®
0½
x
1= 1
x
2= ¸ ¡ ±
1°
2x
i+1= (¸ ¡ ±
i)x
i¡ °
ix
i¡1°
i+1; i = 2; 3; : : : ; n ¡ 1
27 Wyznaczanie wartości własnych
metodą LR
W metodzie tej iteracyjnie przekształcamy macierz A uzyskując ciąg
W którym ostatni element stanowi macierz trójkątna górna (Hessenberga). Elementy diagonalne macierzy Am stanowią natomiast ciąg wartości własnych macierzy A czyli
W każdej iteracji wyznaczamy rozkład Ai na iloczyn macierzy trójkątnej dolnej L z
jedynkami na diagonali oraz macierzy trójkątnej górnej R:
Przekształcamy macierz w następujący sposób
Macierze Ai oraz Ai+1 są podobne
A = A
1! A
2! A
3! : : : ! A
mA
i= L
iR
iA
i+1= L
i+1R
i+1= R
iL
i ilim
!1a
(i)jj= ¸
jA
i= L
iR
i; L
¡1iA
i= R
i; A
iR
¡1i= L
iA
i+1= R
iL
i= L
¡1iAL
i= R
iAR
i¡1Wadą jest to że rozkład LiRi może nie istnieć lub może istnieć ale jego znalezienie jest źle uwarunkowane. W obu przypadkach algorytm przerywa działanie.
Wyznaczanie wartości własnych metodą QR
Metoda wywodzi się z metody LR, przy czym macierz L zastąpiono macierzą ortogonalną Q przez co metoda jest stabilna numerycznie.
gdzie: Ri jest macierzą trójkątna górną, a Qi jest macierzą ortogonalną
W metodzie QR otrzymujemy ciąg macierzy
Macierze te są do siebie podobne więc mają te same wartości własne. Jeśli m jest duże wówczas
spodziewamy się że na diagonali Am będą znajdować się wartości własne A.
Tw. Jeżeli macierz A jest symetryczna i dodatnio określona, to algorytm QR generuje ciąg macierzy A(1),A(2),... zbieżny do macierzy diagonalnej.
Wadą metody QR jest wolna zbieżność dla macierzy pełnych. Metoda jest szybkozbieżna dla
macierzy trójdiagonalnych i macierzy Hessenberga.
Q
HQ = I A
i= Q
iR
iA
1= A
A = A
1! A
2! A
3! : : : ! A
mA
i+1= R
iQ
i28 Algorytm QR dla macierzy
Hessenberga.
Macierzą (górną) Hessenberga jest macierz, którą można zapisać w postaci:
Każda macierz kwadratowa jest ortogonalnie podobna do macierzy
Hessenberga, więc ma ona to samo widmo wartości własnych co macierz H.
Wyznaczamy ciąg macierzy:
Wszystkie Hi są macierzami Hessenberga
wobec czego wszystkie macierze Hi, i=1,2,3,.. są podobne. Elementy na diagonali kolejnych Hi dążą do wartości własnych macierzy H1=H.
Jeżeli macierz H ma pojedyncze wartości własne takie, że są pomiędzy nimi pary sprzężone o identycznych modułach, to nie wszystkie elementy poddiagonalne dążą do 0. W granicy otrzymuje się macierz:
H = T + U
H
i= Q
iR
iH
i+1= R
iQ
i; i = 1; 2; 3; : : :
H
i+1= Q
TiH
iQ
iH
1= 2 6 6 6 6 4
¤ ¤ ¢ ¢ ¢
¤ ¤ ¢ ¢ ¢ 0 0 ¤ ¢ ¢ 0 0 0 ¤ ¤ 0 0 0 ¤ ¤
3 7 7 7 7 5
gwiazdki - elementy ustalone
kropki – elementy, których wartości mogą się zmieniać.
Wartości własne leżą wtedy bezpośrednio na
diagonali lub są wartościami własnymi macierzy 2x2 leżących na diagonali.
Wadą metody może być powolna zbieżność.
Zwiększenie wydajności uzyskuje się dokonując przesunięcia widma wartości własnych
Wartość ki wybiera się jako równe otrzymanym już wartościom własnym
lub wartości ki oraz ki+1 jako równe wartościom własnym macierzy 2x2 znajdujących się w prawym dolnym rogu macierzy Hi.
H
i¡ k
iI = Q
iR
iH
i+1= R
iQ
i+ k
iI
k
i= a
inn29 Metoda Hauseholdera rozkładu QR
Definiujemy macierz Hauseholdera w postaci
która ma własność
Macierz Hausholdera posłuży do znalezienia rozkładu QR.
Określamy ciąg macierzy P(1),P(2),P(3),...P(n-1) przy pomocy których definiujemy macierz R (górną trójkatną):
¿ = kzk
2( kzk
2¡ ®)
P
(n¡1)P
(n¡2): : : P
(1)A = R
Zakładamy
Macierz H(1) jest macierzą Hauseholdera sprowadzającą pierwsza kolumnę macierzy A (a(1)1)do postaci:
Przez P(2) oznaczamy
Macierz H(2) sprowadza pierwszą kolumnę macierzy o wymiarze (n-1)x(n-1) utworzonej z wierszy i kolumn o numerach 2,3,4,...,n macierzy P(1)A (a(2)1) do postaci
Postępujemy w ten sposób otrzymując kolejno P(3),P(4), itd.
P
(1)= H
(1)®
(1)ka
(1)1k
2[1; 0; 0; : : : ; 0]
T1£nP
(2)= 2 6 6 4
1 .. . 0 : : : : : : : : :
0 .. . H
(2)3 7 7 5
®
2ka
(2)1k
2[1; 0; 0; : : : ; 0]
T1£(n¡1)H = I ¡ 1
¿ u u uu u u
Hu u u = zzz ¡ ®kzzzk
2eee
1zzz = [z
1; z
2; : : : ; z
n]
Teee
1= [1; 0; : : : ; 0]
THzzz = ® kzzzk
2[1; 0; 0; : : : ; 0]
T® = §1 = ¡sign(z
1)
30 Macierz P(n-1) ma postać
A macierz H(n-1) ma wymiar 2x2.
Po wyznaczeniu wszystkich macierzy P(i), rozkład A=QR wyznaczamy według
wzorów
Liczba operacji potrzebnych do uzyskania rozkładu Hauseholdera wynosi
a) mnożenie
b) dodawanie
c) pierwiastkowanie
P
(n¡1)= 2 6 6 4
1 1
1
H
(n¡1)3 7 7 5
Q = P
(1)P
(2)P
(3): : : P
(n¡1)R = Q
TA
M = 2
3 n
3+ 2n
2¡ 2
3 n ¡ 2 D = 2
3 n
3+ 10
3 n ¡ 4 p = n ¡ 1
Uwagi:
1) inne metody pozwalające uzyskać rozkład QR to metoda Grama-Schmidta i Givensa
2) jeśli macierz A jest symetryczna to rozkład QR zachowuje jej symetrię natomiast rozkład LR nie
3) jeśli macierz A jest symetryczna i dodatniookreślona to można stosować rozkład LLT wówczas algorytm LR zachowuje symetrię macierzy A
4) metoda szybka dla macierzy Hessenberga i trójdiagonalnej
Wyznaczanie wektorów własnych dla rozkładu QR Uwaga: nie zakładamy postaci macierzy pierwotnej A W metodzie QR dostajemy ciąg przekształceń
co można uogólnić