11.5 Metoda karakteristik za hiperbolične PDE Hiperbolična kvazi linearna PDE ima obliko au xx + bu xy + cu yy = f, (1) kjer so a, b, c, f funkcije x, y, u, u x in u y, ter velja b 2 4ac > 0. Če predpostavimo, da je u na območju Ω zvezna funkcija x in y, potem za diferencial velja du = u u dx + dy. (2) x y Dve različni realni rešitvi karakteristične enačbe a družini karakteristik dy dx ( dy dx = λ in dy dx = µ. ) 2 ( ) b dy dx + c = 0 določata dve Vzdolž karakteristike drugi parcialni odvodi niso definirani in velja navadna diferencialna enačba a dy d(u x ) f dx dy + c dx d(u y ) = 0.
Metoda karakteristik Vzdolž karakteristik C 1 in C 2 velja a λ d(u x ) f dy + c d(u y ) = 0, (3) a µ d(u x ) f dy + c d(u y ) = 0. (4) C 1 S C 2 Q P Γ Začnemo z vrednosti u, u x in u y na krivulji Γ, ki ni karakteristika. Na njej izberemo dve točki P in Q. Iz enačb (2), (3) in (4) izračunamo vrednosti v naslednji točki S, ki jo dobimo kot presečišče karakteristik C 1 in C 2, ki gresta skozi P in Q.
Algoritem metode karakteristik v grobem T S R Q P Γ 1. Začnemo na krivulji Γ, ki ni karakteristika in na kateri poznamo vrednosti u, u x in u y (bodisi iz začetnih pogojev ali pa iz prejšnjih računov). Na krivulji Γ izberemo točke P, Q, R, itd. 2. Iz (2) poiščemo koordinate x in y naslednjih točk S(x S, y S ), T (x T, y T ),..., ki so presečišča karakteristik C 1 in C 2 skozi ustrezne pare točk na Γ. 3. Iz (3) in (4) izračunamo vrednosti u x in u y v točkah S, T,..., potem pa iz (2) izračunamo vrednosti u. 4. Ponovimo prejšnje korake z novimi točkami in novo krivuljo Γ, ki gre skoznje.
Algoritem metode karakteristik: korak 2 Točka S(x S, y S ) je presečišče C 1 karakteristike skozi P in C 2 karakteristike skozi Q. velja S P dy = S P λdx, S Q dy = S Q µdx. Če je PDE linearna, sta λ in µ funkciji samo x in y. V tem primeru je mogoče možno integrala analitično integrirati. Kadar analitično integriranje ni možno, uporabimo kakšno kvadraturno formulo, npr. trapezno, kjer dobimo: y S y P = y S y Q = ( ) λs + λ P (x S x P ), (5) 2 ( ) µs + µ Q (x S x Q ). (6) 2 Dobimo enačbi za x S, y S, u S, (u x ) S in (u y ) S, saj sta λ S in µ S odvisna od a S, b S in c S. Če sta λ in µ linearni funkciji x, potem po trapeznem pravilu točno izračunamo x S, y S.
Algoritem metode karakteristik: korak 3a Za (u x ) S in (u y ) S velja S P S Q a λ d(u x ) a µ d(u x ) S P S Q f dy + f dy + S P S Q c d(u y ) = 0, c d(u y ) = 0. Če je PDE linearna, lahko enačbi mogoče analitično integriramo. Sicer pa spet uporabimo npr. trapezno pravilo, ki nam da (a S λ S + a P λ P ) [(u x ) S (u x ) P ] + (c S + c P ) [(u y ) S (u y ) P ] (f S + f P )(y S y P ) = 0, (7) (a S µ S + a Q µ Q ) [(u x ) S (u x ) Q ] + (c S + c Q ) [(u y ) S (u y ) Q ] (f S + f Q )(y S y Q ) = 0. (8)
Algoritem metode karakteristik: korak 3b Z integriranjem (2) vzdolž PS dobimo S P du = S P u xdx + S P u ydy. trapezno pravilo, dobimo u S u P = Če uporabimo ( ) ( ) (ux ) S + (u x ) P (uy ) S + (u y ) P (x S x P ) + (y S y P ). (9) 2 2 Vrednost u S lahko dobimo tudi z integriranjem vzdolž QS, kjer dobimo u S u Q = ( ) ( ) (ux ) S + (u x ) Q (uy ) S + (u y ) Q (x S x Q ) + (y S y Q ). (10) 2 2 Zgornji enačbi ne vrneta iste vrednosti u S, je pa razlika pri majhni velikosti mreže majhna. Tako smo dobili nelinearni sistem 5 enačb za neznanke x S, y S, u S, (u x ) S in (u y ) S. To so enačbe (5,6,7,8) in (9) (ali (10)). Sistem rešimo z eno izmed metod za nelinearne enačbe, npr. z Newtonovo metodo. Če je PDE linearna, lahko iz (5,6) izračunamo x S, y S, potem pa ostanejo še tri enačbe za tri neznanke. Nadalje, če so a, b, c in f konstante, najprej rešimo enačbi (7,8), potem pa u izračunamo iz (9).
Metoda karakteristik in robni pogoji δω C 2 S C 1 P Γ Kadar naslednja točka leži na robu, lahko uporabimo le eno karakteristiko. Na robu se zgodi, da se karakteristika C 1 odbije v C 2 in obratno. Denimo, da je S presečišče roba δω in karakteristike C 1 iz P. Korak 2: Poiščemo presečišče karakteristike C 1 in roba. sistem enačbe (5) in enačbe roba. To naredimo tako, da rešimo Korak 3: Vrednost u S dobimo iz robnega pogoja. Z odvajanjem robnega pogoja dobimo tudi eno izmed vrednosti (u x ) S ali (u y ) S, drugo pa potem izračunamo iz enačbe (7).
12.1 Iterativne metode za reševanje linearnih sistemov Sistem Ax = b zapišemo v ekvivalentni obliki x = Rx + c in ga rešujemo iterativno x (r+1) = Rx (r) + c. Matriko R imenujemo iteracijska matrika. Upamo, da bo pri čim blažjih pogojih zaporedje {x (r) } konvergiralo proti rešitvi sistema Ax = b. Izrek 1. Zaporedje x (r+1) = Rx (r) + c, r = 0, 1,..., za poljuben x (0) konvergira natanko tedaj, ko velja ρ(r) < 1 (za vse lastne vrednosti λ matrike R velja λ < 1). Dokaz. Naj bo x točna rešitev. Potem iz x = R x + c in x (r+1) = Rx (r) + c sledi x x (r+1) = R( x x (r) ) in naprej x x (r+1) = R 2 ( x x (r 1) ) = = R r+1 ( x x (0) ). Očitno je potreben in zadosten pogoj za konvergenco lim k R k = 0, to pa je ekvivalentno temu, da je ρ(r) < 1.
Posledica 2. Zadosten pogoj za konvergenco zaporedja x (r+1) = Rx (r) + c, r = 0, 1,..., za poljuben x (0) je R < 1. Kako pridemo do R? En način je, da sistem Ax = b zapišemo kot Mx = Nx + b, kjer je A = M + N in dobimo R := M 1 N. Sistem seveda rešujemo v obliki Mx (r+1) = Nx (r) + b, r = 0, 1,..., matriko M pa izberemo tako, da znamo sistem z matriko M rešiti hitreje od polnega sistema. Iterativne metode pridejo še posebno v poštev, ko imamo velike razpršene sisteme, kjer je veliko elementov enakih 0, neničelni elementi pa nimajo kakšne posebne oblike (npr. pasovne). Pri direktnih metodah (LU, razcep Choleskega, QR) se razpršenost ponavadi izgubi, zato te metode niso primerne.
Jacobijeva metoda Sistem Ax = b lahko pri pogoju a ii 0, i = 1,..., n, zapišemo kot x 1 = 1 a 11 (b 1 a 12 x 2 a 13 x 3 a 1n x n ) x 2 = 1 a 22 (b 2 a 21 x 1 a 23 x 3 a 2n x n ). x n = 1 a nn (b n a n1 x 1 a n2 x n a n,n 1 x n 1 ) Od tod sledi Jacobijeva metoda x (r+1) k = 1 b k a kk n i=1, i k a ki x (r) i, k = 1,..., n. Če zapišemo A = L + D + U, kjer je L spodnji trikotnik matrike A (brez diagonale), D diagonala, U pa zgornji trikotnik matrike A, potem je M = D in N = L + U. Jacobijeva iteracijska matrika je R J = D 1 (L + U).
Gauss Seidlova metoda Ko po vrsti računamo x (r+1) 1,..., x (r+1) n, bi lahko pri računanju x (r+1) k uporabili že izračunane vrednosti x (r+1) 1,..., x (r+1). Tako dobimo Gauss-Seidlovo metodo k 1 x (r+1) k = 1 a kk b k k 1 i=1 a ki x (r+1) i n i=k+1 a ki x (r) i, k = 1,..., n. Sedaj je M = L + D, N = U in R GS = (L + D) 1 U. Pri Jacobijevi metodi lahko vse elemente vektorja x (r+1) računamo hkrati in je zato zelo primerna za paralelizacijo. Pri Gauss-Seidlovi metodi to ni možno. Izrek 3. Če je A strogo diagonalno dominantna po vrsticah, kar pomeni a ii > n j=1,j i a ij, i = 1,..., n, potem Jacobijeva in Gauss-Seidlova metoda konvergirata. Izrek 4. Gauss-Seidlova metoda konvergira za hermitsko pozitivno definitno matriko A.
Zgled Za sistem 12x 1 3x 2 + x 3 = 10 x 1 + 9x 2 + 2x 3 = 10 x 1 x 2 + 10x 3 = 10 in začetni približek x (0) = [1 0 1] T izračunamo dva koraka po Jacobijevi in Gauss-Seidlovi metodi. Pri Jacobijevi metodi dobimo 0.75 1.00833.. x (1) = 1 0.9, x (2) = 0.99444.., 1.025 pri Gauss-Seidlovi metodi pa 0.75 x (1) = 0.9722.., x (2) = 1.022.. Točen rezultat je x = [1 1 1] T. 0.991203.. 0.994084.., 1.0002881
SOR metoda Pri metodi SOR računamo x (r+1)sor k = x (r) k + ω ( x (r+1)gs k ) x (r) k, kjer je ω relaksacijski parameter, za katerega se izkaže, da mora biti 0 < ω < 2. ω = 1 je SOR kar Gauss-Seidlova metoda. Pri Dobimo x (r+1) k = x (r) k + ω 1 a kk ( b k k 1 i=1 a ki x (r+1) i n i=k a ki x (r) i ), k = 1,..., n. Gre za pospešitev Gauss-Seidlove metode, ideja pa je, da bo, če je zaporedje monotono, za primerni parameter ω > 1 približek x (r+1)sor bližje rešitvi kot x (r+1)gs, če pa zaporedje alternira, bo boljši približek pri 0 < ω < 1. Optimalni ω je težko oceniti.
Konsistentna urejenost Definicija 5. Matrika A = L + D + U je konsistentno urejena, če so lastne vrednosti matrike C(α) = D 1 ( 1 α L + αu) neodvisne od α. Definicija 6. Matrika A ima lastnost A, če obstaja taka permutacijska matrika P, da je [ ] P AP T A11 A = 12, A 21 A 22 kjer sta A 11 in A 22 diagonalni matriki. Lastnost A pomeni tudi, da je matrika konsistentno urejena. Zgled 1. Matrika oblike T A = I I T......... I, I T
kjer je T = 4 1 1 4......... 1 1 4 ima lastnost A. Takšno matriko srečamo pri reševanju Poissonove enačbe., Izrek 7. Če je A konsistentno urejena in µ = ρ(r J ), potem velja: 1) ρ(r GS ) = µ 2, 2 2) ω opt = 1 + 1 µ 2, ρ(r SOR(ω opt )) = ω opt 1, 3) ρ(r SOR (ω)) = { ω 1, za ω opt ω < 2 1 ω + 1 2 ω2 µ 2 + ωµ 1 ω + 1 4 ω2 µ 2, za 0 < ω ω opt.
4 1 1 1 4 1 1 Zgled 2. Za matriko A = 1 4 1 1 4 1 1 1 4 1 1 1 4 velja ρ(r J ) = 0.6036, ρ(r GS ) = 0.3634, ω opt = 1.1128, graf ρ(r SOR (ω)) pa je
12.2 Metode podprostorov Krilova Gre za razred metod za reševanje sistema Ax = b ali za računanje lastnih vrednosti A, kjer namesto direktnega dostopa do matrike potrebujemo le podprogram, ki zna za poljuben vektor x izračunati Ax. Definicija 8. Za dano matriko A in vektor b je podprostor Krilova K k (A, b) = Lin(b, Ab,..., A k 1 b). Namesto v R n iščemo približke v projekciji problema na K k (A, b). Naj bo Q k = [ q 1 q k ] matrika z ortonormiranimi stolpci, ki so baza za K k (A, b). Potem kot približek za rešitev Ax = b vzamemo x k = Q k z za nek z R k, npr.: Vzamemo x k, ki minimizira r k 2, kjer je r k = b Ax k. Za A A T je to metoda GMRES, za A = A T pa MINRES. Če je A s.p.d., vzamemo x k, ki minimizira r k A 1. To je metoda CG (konjugirani gradienti) Izberemo x k tako, da bo r k K k (A, b). Za A A T je to varianta GMRES, za A = A T pa SYMMLQ.
Arnoldijev algoritem Ortogonalna podobnostna redukcija A na Hessenbergovo obliko je A = Q T HQ, kjer je Q ortogonalna, H pa zgornja Hessenbergova oblika. Radi bi izračunali le prvih k stolpcev Q in H. Iz AQ = HQ dobimo Aq j = j+1 i=1 h ij q i. S skalarnim množenjem s q i, i = 1,..., j, dobimo h ij = q T i Aq j. Vektor q j+1 dobimo iz h j+1,j q j+1 = Aq j j h ij q i. i=1
Arnoldijev algoritem Vse skupaj lahko zapišemo v obliki algoritma q 1 = b/ b 2, j = 1, 2,..., k z = Aq j i = 1,..., j h ij = q T i z z = z h ij q i h j+1,j = z 2 Prekini, če je h j+1,j = 0. q j+1 = z/h j+1,j V algoritmu se skriva modificirana Gram-Schmidtova ortogonalizacija. Algoritem se konča pri izbranem k ali pa, ko je h j+1,j = 0.
Trditev 9. Arnoldijev algoritem se lahko izvaja do j = k, kjer je k = dim K n (A, b). Za j = 1,..., k velja AQ j = Q j H j + h j+1,j [0 0 q j+1 ], kjer je H j vodilna j j podmatrika H, stolpci Q j = [q 1 K j (A, b). q j ] pa so ON baza za Zahtevnost Arnoldijevega algoritma je k množenj z matriko in O(k 2 n) za ostale zadeve, Množenje z matriko je za polno matriko O(n 2 ), za razpršeno pa je lahko tudi samo O(n). Po k korakih Arnoldijeve metode iz H = Q T AQ = [ Q T k AQ k Q T u AQ k Q T k AQ ] u Q T u AQ u = [ ] Hk H ku, H uk H u poznamo H k in H uk, ki ima same ničle in zgoraj desno h k+1,k. Velja AQ j = Q j+1 Hj, kjer H j dobimo tako, da H j dodamo še vrstico [0 0 h j+1,j ].
Lanczoseva metoda Če je A simetrična, je tudi H simetrična, torej tridiagonalna in Arnoldijev algoritem se občutno poenostavi. Pišemo H = T in T = α 1 β 1 β 1 α 2... β 2...... β n 2 α n 1 β n 1 β n 1 a n. Sedaj iz AQ = QT dobimo kjer je α j = q T j Aq j. Aq j = β j 1 q j 1 + α j q j + β j q j 1,
Lanczoseva metoda Vse skupaj lahko zapišemo v obliki Lanczoseve metode q 1 = b/ b 2, β 0 = 0, q 0 = 0 j = 1, 2,..., k z = Aq j α j = q T j z z = z α j q j β j 1 q j 1 β j = z 2 Prekini, če je β j = 0. q j+1 = z/β j Spet, če je dim K n (A, b) = k, dobimo β k = 0. Po k korakih Lanczoseve metode iz T = Q T AQ = [ Tk T T uk T uk T u ] poznamo T k in T uk, ki ima same ničle in zgoraj desno β k.
GMRES - posplošeni minimalni ostanek Pri GMRES približek x k za Ax = b dobimo iz začetnega približka x 0 tako, da x k oblike x k = x 0 + Q k y k minimizira r k 2 = b Ax k 2. Denimo, da smo s Arnoldijevim algoritmom že dobili Q k in H k. Sedaj iščemo ustrezen y R k. Če je q 1 = r 0 / r 0 2, velja b A(x 0 +Q k y k ) 2 = r 0 AQ k y k 2 = r 0 Q k+1 Hk y k 2 = r 0 2 e 1 H k y k 2. Algoritme za GMRES v grobem je: 1. izberi x 0, določi dimenzijo k za podprostor Krilova, izračunaj r 0 = b Ax 0. 2. naredi k korakov Arnoldijeve metode z začetnim vektorjem q 1 = r 0 / r 0 2, dobimo H k in Q k+1. 3. po metodi najmanjših kvadratov poišči y k, ki minimizira r 0 2 e 1 H k y k 2. Končni približek je potem x k = x 0 + Q k y k. Varianta GMRES za simetrične matrike, kjer se namesto Arnoldijeve metode uporabi Lanczoseva, je MINRES.