6.6 Simetrični problem lastnih vrednosti Če je A = A T, potem so lastne vrednosti realne, matrika pa se da diagonalizirati. Schurova forma za simetrično matriko je diagonalna matrika. Lastne vrednosti označimo tako, da velja λ 1 λ 2 λ n. Lastne vektorje x 1,..., x n lahko izberemo tako, da tvorijo ortonormirano bazo.
Rayleighov kvocient Za x 0 in A = A T definiramo Rayleighov kvocient Lastnosti Rayleighovega kvocienta: ρ(a, x) = xt Ax x T x. a) Za α 0 je ρ(a, x) = ρ(a, αx). b) ρ(x i, A) = λ i. c) Za vsak x 0 velja λ 1 ρ(a, x) λ n. d) Če si mislimo, da je x približek za lastni vektor, je ρ(a, x) najboljša aproksimacija za lastno vrednost v smislu, da je min σ Ax σx 2 dosežen pri σ = ρ(a, x).
Pomembni izreki za simetrični problem lastnih vrednosti Izrek 1. [Courant-Fischerjev minimaks izrek] λ i = min S R n dim(s)=n i+1 max x S x 0 ρ(a, x) = max R R n dim(r)=i min x R x 0 ρ(a, x). Izrek 2. [Weylov izrek] Če sta A, E simetrični matriki in so λ 1 λ n lastne vrednosti A, λ 1 λ n pa lastne vrednosti A + E, potem za i = 1,..., n velja λ i λ i E 2. Izrek 3. [Cauchyjev izrek o prepletanju] r r podmatrika matrike A, potem velja Če je A simetrična matrika in je A r vodilna λ r+1 (A r+1 ) λ r (A r ) λ r (A r+1 ) λ 2 (A r+1 ) λ 1 (A r ) λ 1 (A r+1 ). Izrek 4. Če je A simetrična matrika, x 2 = 1 in β približek za lastno vrednosti, potem ima matrika A vsaj en lastni par (q, α), ki zadošča (β qλi)
6.7 QR metoda V primeru simetrične matrike je zgornja Hessenbergova matrika tridiagonalna. Za redukcijo na tridiagonalno obliko še vedno porabimo O(n 3 ), potem pa en korak QR iteracije lahko izvedemo v O(n) namesto v O(n 2 ) pri nesimetričnem problemu. Pri QR iteraciji torej najprej poiščemo ortogonalno matriko Q, da je T tridiagonalna, potem pa delamo QR z enojnim premikom. Naj bo a (k) 1 b (k) 1 b (k) 1 a (k) 2 b (k) 2 T k =.......... b (k) n 2 a (k) n 1 b (k) n 1 b (k) n 1 a (k) n = Q T AQ Kako izberemo premik: σ k = a (k) n : V tem primeru imamo za skoraj vse matrike zagotovljeno kubično konvergenco, a vseeno obstajajo primeri, ko metoda ne konvergira.
Wilkinsonov premik: Za σ k vzamemo tisto lastno vrednost matrike [ a (k) n 1 b (k) n 1 b (k) n 1 a (k) n ki je bližja a (k) n. Sedaj imamo za vse matrike dokazano vsaj linearno konvergenco, v praksi pa imamo za skoraj vse matrike kubično konvergenco (a brez dokaza). Obdiagonalne elemente postavimo na 0, kadar velja b (k) j ɛ( a (k) j + a (k) j+1 ). ], Ostale metode Za simetrične tridiagonalne matrike imamo poleg QR še nekaj posebnih metod: Uporaba inercije in Sylvestrovega izreka. Deli in vladaj. RRR (relative robust representation).
6.8 Jacobijeva metoda Ta metoda je uporabna le za simetrične matrike. Matriko A z množenji z Givensovimi rotacijami z leve in desne poskusimo spraviti čim bližje diagonalni matriki. Tvorimo zaporedje ortogonalno podobnih matrik A = A 0, A 1, A 2,..., kjer je A k+1 = R T pq A kr pq, Givensovo (Jacobijevo) rotacijo R pq določimo tako, da uničimo element a pq. Iz zveze [ ] [ ] [ ] [ ] c s app a pq c s âpp 0 = s c s c 0 â qq a pq a qq dobimo, da je c = cos(θ), s = sin(θ), kjer je ctg(2θ) = a(k) pp a(k) qq 2a (k) pq Pri vsakem množenju se spremenita p-ta in q-ta vrstica ter stolpec matrike,.
Definicija 5. off(a) 2 = n a jk 2. j,k=1 j k Lema 6. Če A = R T pq AR pq dobimo iz A z Jacobijevo rotacijo R pq, potem je off(a ) 2 = off(a) 2 2a 2 pq. Z vsako Jacobijevo rotacijo se tako zmanjša off(a). Kako uničujemo elemente: klasična varianta: vedno največjega, najhitrejša konvergenca, a veliko primerjanja; ciklična varianta: v vedno enakem vrstnem redu, lahko slabo; pragovna varianta: v danem vrstnem redu, a uničimo le tiste elemente, ki so po absolutni vrednosti čez neko mejo, ki jo zmanjšamo v vsakem sprehodu. Iteriramo, dokler ni off(a (k) ) pod neko mejo.
6.9 Računanje singularnega razcepa Za matriko A R m n bi radi izračunali singularni razcep A = UΣV T. Ker velja dobimo preprosto idejo: 1) izračunamo A T A, A T A = V Σ T ΣU T, 2) rešimo lastni problem A T A = V ΛV T, odtod dobimo V, 3) za Σ vzamemo m n matriko, ki ima v zgornjem bloku kvadratni koren Λ, 4) rešimo sistem UΣ = AV za matriko U. [ ] 1 1 Računanje na ta način ni numerično stabilno. Če vzamemo npr. A = 0, kjer je [ ] η [ ] 1 1 1 1 η = 1 2 u, potem je AT A =, v premični piki pa se to zaokroži v. 1 1 + η 1 1 Numerično izračunane singularne vrednosti so zato 2 in 0, točne pa so 2 in η. Pri majhnih singularnih vrednostih lahko torej pride do velike relativne napake.
Prevedba na dvakrat večjo matriko Računanju A T A se poskušamo izogniti. Lema 7. Naj bo B kvadratna matrike n n s singularnimi vrednostmi in vektorji Bv i = σ i u i, i = 1,..., n. Lastne vrednosti matrike C = [ 0 A T A 0 [ ] so ±σ i, ustrezni lastni vektorji pa 1 vi 2, i = 1,..., n. ±u i ] Dokaz. Naj bo A = UΣV T singularni razcep za A. Potem velja [ 0 A T ] [ ] [ V V V V = A 0 U U U U ] [ ] Σ 0. 0 Σ Tako lahko računamo singularni razcep brez računanja A T A a z dvakrat večjo matriko.
Redukcija na bidiagonalno obliko Pri računanju SVD za A (razen pri Jacobijevi metodi) matriko najprej reduciramo na bidiagonalno obliko. Postopek je: 1) poišči ortogonalni matriki U 1, V 1, da bo A = U 1 BV T 1 2) izračunaj SVD za B: B = U 2 ΣV T 2, 3) SVD razcep za A je A = (U 1 U 2 )Σ(V 1 V 2 ) T. Če je B = a 1 b 1...... a n 1 B T [ P T 0 B 0 b n 1 a n in B bidiagonalna,, potem po ustrezni permutaciji velja ] P = 0 a 1 a 1 0 b 1 b 1 0... a 2...... b n 1 0 a n a n 0.
Jacobijeva metoda Spet delamo s polno matriko A. Mislimo si, da delamo Jacobijevo metodo za računanje lastnih vrednosti na A T A, pri čemer spet ne računamo A T A. Če delamo jac(a T A, p, q) to pomeni, da iz A T A dobimo R T pq AT AR pq. delamo z A in v enem koraku iz A dobimo AR pq. Zato lahko Za rotacijo potrebujemo b pp = (A T A) pp, b pq = (A T A) pq, b qq = (A T A) qq. Po rotaciji (p, q) se v A spremenita stolpca p in q. V poštev pride le pragovna varianta, saj bi morali pri klasični izračunati vse elemente A T A, da bi lahko poiskali ustrezno rotacijo. Končamo, ko velja b pq ɛ b pp b qq za vse p q. Na koncu dobimo: σ i = A(:, i) 2, (to je v bistvu b ii ), U = [u 1 u n ], kjer je u i = 1 σ i A(:, i).
6.10 Posplošeni problemi lastnih vrednosti Rešujemo Ax = λbx. Denimo, da imamo poseben primer, kjer je A = A T in B s.p.d.. V tem primeru B razcepimo po Choleskem v B = V V T in dobimo, Ax = λv V T x V 1 Ax = λv T x V 1 AV T V T x = λv T x Tako smo dobili simetričen lastni problem Cy = λy, kjer je C = V 1 AV T y = V T x. Če bi vzeli kar preprosto B 1 Ax = λx, pa bi izgubili simetričnost. in
Ax = λw T DW x Rešujemo Ax = λbx, kjer je B = W T GW, G s.p.d. in W pravokotna matrika polnega ranga. Potem 1. razcep Choleskega G = LL T, 2. QR razcep L T W = QR, 3. dobimo Ax = λr T Rx, odtod pa R T AR 1 Rx = λrx. Končni problem je Cy = λy, kjer je C = R T AR 1 in y = Rx.
A T DAx = ω 2 B T MBx Rešujemo A T DAx = ω 2 B T MBx, kjer sta A, B pravokotni matriki in D, M s.p.d.. Potem 1. razcep Choleskega D = G T G, 2. razcep Choleskega M = R T R, 3. dobimo (GA) T (GA)x = ω 2 (RB) T (RB)x, 4. uporabimo posplošeni singularni razcep GA = UCX T, RB = V SX T, kjer sta U, V ortogonalni, C, S diagonalni in X nesingularna matrika, 5. dobimo C T Cy = ω 2 S T Sy, kjer je y = X T x. Končna rešitev je ω k = c k sk za k = 1,..., n.
Kvadratni problem lastnih vrednosti Iščemo rešitve za λ 2 Ax + λbx + Cx = 0, x 0, det A 0. Dobimo 2n lastnih vrednosti. Načini reševanja so npr. a) prevedba na standardni nesimetrični lastni problem kjer so M = [ Mu = λu ] 0 I A 1 C A 1, u = B b) prevedba na posplošeni simetrični problem lastnih vrednosti Mz = λnz [ ] x λx kjer so M = [ B C C 0 ], z = [ ] x, N = λx [ A 0 0 C ].
Zgled uporabe kvadratnega problema lastnih vrednosti Za zgled vzemimo nihanje dušenega sistema mas in vzmeti. Če predpostavimo q 0 = q n+1 = 0, potem iz Newtonovega zakona dobimo enačbe m i q i (t) = k i ( qi (t) q i 1 (t) ) k i+1 ( qi (t) q i+1 (t) ) c i q i (t), i = 1,..., n, iz katerih sestavimo M q(t) + C q(t) + Kq(t) = 0,
kjer je M = m 1..., C = c 1..., K = m n k 1 + k 2 k 2 k 2............ k n c n. k n k n + k n+1 M je masna matrika, C matrika dušenja, K pa togostna matrika. V primeru, ko so vse lastne vrednosti enostavne, ima splošna rešitev homogene diferencialne enačbe M q(t) + C q(t) + Kq(t) = 0, obliko q(t) = 2n k=1 α k e λ k t x k, kjer so α 1,..., α 2n poljubne konstante, λ 1,..., λ n so lastne vrednsoti, x 1,..., x 2n pa lastni vektorji za λ 2 Mx + λcx + Kx = 0.
6.11 Matlab ukazi [X,D]=eig(A): Vrne diagonalno matriko D z lastnimi vrednostmi in matriko X, katere stolpci so lastni vektorji. d=eig(a): Vrne vektor lastnih vrednosti matrike A. [Q,H]=hess(A): Vrne ortogonalno matriko Q in zgornjo Hessenbergovo matriko H, da je A = QHQ T. [Q,T]=schur(A): Vrne Schurov razcep matrika A, kjer je T kvazi zgornja trikotna matrika, Q pa ortogonalna matrika, da je A = QT Q T. d=eig(a,b): Vrne vektor lastnih vrednosti posplošenega problema lastnih vrednosti Ax = λbx. [X,D]=eig(A,B): Vrne diagonalno matriko D z lastnimi vrednostmi in matriko X, katere stolpci so lastni vektorji posplošenega problema lastnih vrednosti Ax = λbx. [U,V,X,C,S] = gsvd(a,b): Vrne posplošeni razcep singularnih vrednosti za matriki A in B, kjer sta U in V ortogonalni, X je nesingularna, C in S pa sta nenegativni diagonalni matriki, tako da je A = UCX T, B = V SX T, C T C + S T S = I.