Hosszú Ádám Tamás. Rosszul kondicionált egyenletrendszerekre alkalmazott iterációs módszerek

Hasonló dokumentumok
Saj at ert ek-probl em ak febru ar 26.

Gauss-Seidel iteráció

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Konjugált gradiens módszer

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

Numerikus módszerek 1.

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

rank(a) == rank([a b])

NUMERIKUS MÓDSZEREK I. BEUGRÓ KÉRDÉSEK

Lineáris egyenletrendszerek

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

LNM folytonos Az interpoláció Lagrange interpoláció. Lineáris algebra numerikus módszerei

Matematika (mesterképzés)

Vektorok, mátrixok, lineáris egyenletrendszerek

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Numerikus módszerek 1.

Ortogonalizáció. Wettl Ferenc Wettl Ferenc Ortogonalizáció / 41

15. LINEÁRIS EGYENLETRENDSZEREK

1 Lebegőpontos számábrázolás

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Hajlított tartó elmozdulásmez jének meghatározása Ritz-módszerrel

1. feladatsor Komplex számok

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Numerikus módszerek beugró kérdések

A KroneckerCapelli-tételb l következik, hogy egy Bx = 0 homogén lineáris egyenletrendszernek

Matematika A2 vizsga mgeoldása június 4.

Mátrixhatvány-vektor szorzatok hatékony számítása

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

25 i, = i, z 1. (x y) + 2i xy 6.1

Szinguláris értékek. Wettl Ferenc április 12. Wettl Ferenc Szinguláris értékek április / 35

Numerikus módszerek 1.

Lin.Alg.Zh.1 feladatok

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Modellek és Algoritmusok - 2.ZH Elmélet

Szinguláris értékek. Wettl Ferenc április 3. Wettl Ferenc Szinguláris értékek április 3. 1 / 28

Numerikus matematika. Irodalom: Stoyan Gisbert, Numerikus matematika mérnököknek és programozóknak, Typotex, Lebegőpontos számok

Legkisebb négyzetek módszere, Spline interpoláció

Gauss elimináció, LU felbontás

1. Az euklideszi terek geometriája

Lineáris algebra numerikus módszerei

Lineáris leképezések. 2. Lineáris-e az f : R 2 R 2 f(x, y) = (x + y, x 2 )

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Összeállította: dr. Leitold Adrien egyetemi docens

3. el adás: Determinánsok

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

LINEÁRIS ALGEBRA (A, B, C) tematika (BSc) I. éves nappali programtervező informatikus hallgatóknak évi tanév I. félév

Szalai Eszter. Mátrix felbontások és alkalmazásaik

2. gyakorlat. A polárkoordináta-rendszer

10. Előadás. Megyesi László: Lineáris algebra, oldal. 10. előadás Sajátérték, Kvadaratikus alak

Numerikus módszerek 1.

Utolsó el adás. Wettl Ferenc BME Algebra Tanszék, Wettl Ferenc (BME) Utolsó el adás / 20

1. Példa. A gamma függvény és a Fubini-tétel.

Gyakorló feladatok I.

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Explicit hibabecslés Maxwell-egyenletek numerikus megoldásához

Bázistranszformáció és alkalmazásai 2.

1.1. Vektorok és operátorok mátrix formában

Normák, kondíciószám

1.9. B - SPLINEOK B - SPLINEOK EGZISZTENCIÁJA. numerikus analízis ii. 34. [ a, b] - n legfeljebb n darab gyöke lehet. = r (m 1) n = r m + n 1

9. Előadás. (9. előadás) Lineáris egyr.(3.), Sajátérték április / 35

Lagrange-féle multiplikátor módszer és alkalmazása

Lin.Alg.Zh.1 feladatok

Lineáris egyenletrendszerek

January 16, ψ( r, t) ψ( r, t) = 1 (1) ( ψ ( r,

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Eötvös Loránd Tudományegyetem Természettudományi Kar

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

1. Absztrakt terek 1. (x, y) x + y X és (λ, x) λx X. műveletek értelmezve vannak, és amelyekre teljesülnek a következő axiómák:

Rang, sajátérték. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ február 15

Sorozatok és Sorozatok és / 18

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Numerikus matematika vizsga

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Matematika szigorlat június 17. Neptun kód:

Opkut deníciók és tételek

Alkalmazott algebra - SVD

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Keresztmetszet másodrendű nyomatékainak meghatározása

Kronecker-modulusok kombinatorikája és alkalmazások

1. Homogén lineáris egyenletrendszer megoldástere

3. Lineáris differenciálegyenletek

Analízis. 1. fejezet Normált-, Banach- és Hilbert-terek. 1. Definíció. (K n,, ) vektortér, ha X, Y, Z K n és a, b K esetén

Rekurzív sorozatok oszthatósága

2. SZÉLSŽÉRTÉKSZÁMÍTÁS. 2.1 A széls érték fogalma, létezése

Mer legesség. Wettl Ferenc Wettl Ferenc Mer legesség / 40

Numerikus módszerek I. zárthelyi dolgozat, 2009/10. I. félév, A. csoport, MEGOLDÁSOK

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Numerikus módszerek 1.

Átírás:

Eötvös Loránd Tudományegyetem Természettudományi Kar Hosszú Ádám Tamás Rosszul kondicionált egyenletrendszerekre alkalmazott iterációs módszerek BSc Szakdolgozat Témavezet : Dr. Gáspár Csaba Numerikus Analízis Tanszék Budapest, 203

Köszönetnyilvánítás Ezúton szeretném megköszönni Dr. Gáspár Csabának hogy elvállalta a témavezet i feladatkört, és a konzultációk során iránymutatásával, tanácsaival nagymértékben segítette a dolgozat elkészítését. 2

Tartalomjegyzék. Bevezetés 4 2. Klasszikus iterációs módszerek 6 2.. Fixpont iteráció................................. 6 2.2. Az egyszer iteráció............................... 7 2.3. A Jacobi-, és a Gauss-Seidel-iteráció...................... 7 2.4. A konjugált gradiens módszer......................... 8 3. Krylov-altérre épül módszerek 0 3.. Az Arnoldi-iteráció............................... 0 3.2. A GMRES-módszer............................... 2 3.3. Az LSQR-módszer............................... 6 3.4. A BiCG-módszer................................ 2 3.5. BiCGStab.................................... 26 4. Összehasonlítás 30 4.. Az alapmegoldások módszere......................... 30 5. Összefoglalás 36 6. A módszerek MATLAB-kódjai 37 3

. fejezet Bevezetés A gyakorlatban s r n merülnek fel Ax = b alakú lineáris egyenletrendszerek, melyeknek a b jobboldala mért adatokat tartalmaz. A mérési eljárás illetve a mér m szerek hibája miatt a b vektor nem pontos. Ekkor felmerül a kérdés, hogy érdemes-e megkeresni az egyenletrendszer pontos megoldását, mivel a mért adatok pontatlansága következtében a megoldás nem oldja meg a felmerül gyakorlati feladatot (pontosan). Továbbá gyakran az egyenletrendszer nagy méret, ekkor a direkt megoldása nagy tárhelyet igényel, mely sokszor nem áll rendelkezésünkre. Ilyen esetekben szoktak iterációs módszereket alkalmazni. A következ fejezetben néhány, széles körben ismert, iterációs módszert említünk meg, melyekr l b vebb leírást az [] könyvben találhatunk. A probléma nehezebben kezelhet, ha az egyenletrendszer jobb oldalának kis megváltoztatása esetén a megoldás nagy mértékben változik. Az ilyen egyenletrendszereket (és a hozzá tartozó A mátrixot is) rosszul kondicionáltnak nevezzük (ennek mér száma [] : cond(a) = A A a mátrix kondíciószáma). Minél nagyobb egy mátrix kondíciószáma, annál nagyobb hibát eredményez a megoldásban a mért adatok hibája. Ilyen probléma s r n felmerül a gyakorlatban (például interpolációnál, dierenciálegyenletek numerikus megoldásánál). A 3. fejezetben három Krylov-alterekre épül iterációs módszert mutatok be (GM- RES, LSQR, BiCGStab), melyeket a [2] és [3] könyvek alapján dolgoztam fel. Mind a három módszert elterjedten alkalmazzák. A módszereket a 4. fejezetben alkalmazom, illetve hasonlítom össze egy elliptikus parciális dierenciálegyenlet numerikus megoldásán keresztül. Ez a probléma is egy rosszul kondicionált egyenletrendszerre vezet, melynek érdekessége hogy nem szükséges a felmerül rendszert pontosan megoldani, elég egy megfelel közelítését megadni a megoldásnak. Ekkor a parciális dierenciálegyenlet megoldása 4

még pontos lesz. A módszerek összehasonlítására a MATLAB programot használtam, a módszerek MATLAB-beli kódjai a dolgozat végén olvashatóak. 5

2. fejezet Klasszikus iterációs módszerek 2.. Fixpont iteráció 2... Deníció. Legyen X Banach-tér, f n : X X függvény. Iterációs sorozatnak nevezünk egy olyan (x n ) X sorozatot, melyet a következ rekurzióval kapunk: x n+ = f n (x n ) Legyen A R N N reguláris, és b R N. Tekintsük az Ax = b lineáris egyenletrendszert, illetve ennek egy átalakítását: Ax = b akkor és csak akkor teljesül, ha x = Bx + f, ahol B R N N, f R N. 2..2. Deníció. Jelölje ϱ(b) a B mátrix spektrálsugarát, azaz ϱ(b) := max i=..n λ i, ahol λ i a B mátrix sajátértéke (i=..n) 2..3. Tétel. Ha ϱ(b) <, akkor tetsz leges x 0 R N kezd vektor esetén az x n+ = Bx n + f iterációs sorozat konvergens, és az x = Bx + f egyenlet egyetlen megoldásához tart. 6

2.2. Az egyszer iteráció Legyen A R N N reguláris, és b R N. ω > 0 esetén Ax = b ωax = ωb x + ωax = x + ωb x = (I ωa)x + ωb 2.2.. Állítás. Legyen A szimmetrikus, pozitív denit. Ekkor minden elég kis ω > 0-ra az x n+ = (I ωa)x n + ωb tetsz leges x 0 R N pontból indított iterációs sorozat konvergens, és határértéke az Ax = b lineáris egyenletrendszer egyetlen megoldása. 2.2.2. Megjegyzés. Elég kis ω alatt azt értjük, hogy ϱ(i ωa) legyen -nél kisebb. Kiszámítható az optimális paraméterérték: ω := 2/(λ N + λ ), ahol λ N az A mátrix legnagyobb, λ a legkisebb sajátértéke (ekkor lesz I ωa minimális). (Ekkor a 2..3 tétel értelmében a sorozat konvergens). 2.3. A Jacobi-, és a Gauss-Seidel-iteráció Legyen A R N N reguláris, és b R N. Tegyük fel továbbá hogy A diagonálelemei nem zérusok, azaz a ii 0, i =...N. Tekintsük az A mátrix következ felbontását: A = L + D + U, ahol L, illetve U az A mátrix szigorúan alsó, illetve fels része, D f átlója megegyezik A f átlójával, minden más eleme 0. Jacobi-iteráció: Ax = b (U + D + L)x = b Dx = (U + L)x + b x = D (U + L)x + D b 7

Az iterációs sorozat: x n+ = D (U + L)x n + D b Gauss-Seidel-iteráció: Ax = b (U + D + L)x = b (L + D)x = Ux + b x = (L + D) Ux + (L + D) b Az iterációs sorozat: x n+ = (L + D) Ux n + (L + D) b 2.3.. Megjegyzés. A feltételünk szerint D és (L + D) invertálhatóak. 2.3.2. Deníció. Egy A R N N mátrixot soronként diagonálisan dominánsnak nevezünk, ha minden sorára igaz: N a ii > a ij j i,j= 2.3.3. Tétel. Legyen A diagonálisan domináns. Ekkor a Jacobi- és a Gauss-Seidel iterációk konvergensek, határértékük az egyenletrendszer egyetlen megoldása. 2.3.4. Tétel. Legyen A szimmetrikus, pozitív denit mátrix. Ekkor a Guass-Seidel iteráció konvergens. 2.4. A konjugált gradiens módszer Legyen A R N N szimmetrikus, pozitív denit és b R N. 2.4.. Állítás. Jelöljük < x, y > A :=< Ax, y >. Az így deniált funkcionál skalárszorzat, ezt az A által generált skalárszorzatnak nevezzük. x A := < Ax, x >-et A-normának hívjuk. Amennyiben A szimmetrikus, a most deniált A-norma ekvivalens az eredetivel. 2.4.2. Deníció. F (x) :=< Ax, x > 2 < x, b >. Ennek az F funkcionálnak egyetlen minimumhelye van, ez éppen az Ax = b egyenletrendszer pontos megoldása. F -et energetikai funkcionálnak nevezzük. Variációs módszereknek nevezzük azon eljárásokat, amelyek F -et minimalizálják. A konjugált gradiens módszer is ebbe a csoportba tartozik. 8

A módszer alapgondolata hogy az n-edik lépésben minimalizáljuk az F funkcionált a d n irányban (így kapjuk x n+ -et), majd válasszunk egy új irányt úgy, hogy az új irány A- ortogonális legyen az el z re (A-skalárszorzatuk 0). Legyen x 0 R N, tetsz leges közelítés, r 0 := Ax 0 b, d 0 := r 0. Feltehetjük hogy r 0 0, hiszen ekkor már x 0 megoldása az egyenletrendszernek. x n+ := x n + λ n d n, ahol λ n := < r n, d n > d n A (2.) d n+ := r n+ + µ n d n, ahol µ n := < r n+, d n > A d n 2 A 2.4.3. Tétel. Az iteráció legfeljebb N lépés után véget ér. r n := Ax n b (2.2) (2.3) 9

3. fejezet Krylov-altérre épül módszerek Jelölje. az Euklideszi-normát. 3.. Az Arnoldi-iteráció 3... Deníció. Krylov-altérnek nevezünk egy olyan alteret, amely a következ alakban áll el : κ m (A, v) = span{v, Av,..., A m v} ahol A R N N, v R N. Amennyiben nincs félreértés ezt κ m -mel fogjuk jelölni. A denícióból könnyen látható, hogy x κ m akkor és csak akkor ha x = p(a)v alakba írható, ahol p egy legfeljebb m -edfokú polinom. Az Arnoldi-iteráció felépít egy ortonormált bázist κ m -ben. Erre többféle módszer létezik, az egyik: 3..2. Algoritmus. Arnoldi. Válasszunk egy v κ m vektort, amelyre v = 2. For j =...m Do: 3. v j+ := Av j 4. For i =...j Do: 5. h i,j :=< Av i, v j > 6. v j+ := v j+ h i,j v i 7. EndDo 8. h j+,j := v j+ 9. Ha h j+,j = 0 akkor Stop 0

0. v j+ := v j+ /h j+,j. EndDo Az algoritmus minden lépésben kib víti a bázist egy új vektorral, majd Gram-Schmidt ortogonalizációt használva ortonormalizálja az így kapott vektorrendszert. 3..3. Állítás. Tegyük fel hogy az algoritmus nem állt le az m-edik lépésig. Az 3..2 algoritmus által megadott v, v 2,..., v m vektorok egy ortonormált bázisát alkotják κ m -nek. Bizonyítás. A konstrukció következtében a v, v 2,..., v m vektorok ortonormált rendszert alkotnak. Generálják κ m -et, ha v i = p i (A)v alakba írható, ahol p i egy legfeljebb i -edfokú polinom. Ezt teljes indukcióval látjuk be. i = -re triviális teljesül, a p polinommal. Tegyük fel hogy minden k j indexre már tudjuk. Tekintsük a v j+ vektort: j j h j+,j v j+ = Av j h k,j v k = Ap j (A)v h k,j p k (A)v k= k= ahol az utolsó egyenl séget az indukciós feltétel felhasználásával kaptuk. Így v j+ = p j (A)v alakban írtuk fel így az állítást igazoltuk. Jelöljük V m -mel azt az ortogonális N m-es mátrixot, amelynek oszlopai a v, v 2,..., v m vektorok, H m -mel azt az (m + ) m-es mátrixot melynek nem nulla elemei a 3..2 algoritmusban deniált h i,j számok. Ekkor H m fels -Hessenberg mátrix, alakja: h, h,2 h,3 h,m h 2, h 2,2 h 2,3 h 2,m 0 h H m = 3,2 h 3,3 h 3,m 0 0 h 4,3 h 4,m....... 0 0 0 h m+,m 3..4. Állítás. Ekkor fennáll a következ : AV m = V m+ H m Bizonyítás. Tekintsük az AV m mátrix j. oszlopát: j+ (AV m ) j = Av j = h i,j v i = (V m+ H m ) j i= ahol az els egyenl ség egyszer en leolvasható a 3..2 algoritmusból. Ebb l következik az állítás.

3.2. A GMRES-módszer A GMRES (Generalized Minimal Residual) módszer az Arnoldi-iterációra épül. Legyen κ m (A, r 0 ) = span{r 0, Ar 0,..., A m r 0 } ahol r 0 = Ax 0 b, x 0 tetsz leges kezd vektor (általában x 0 = 0). Minden x κ m vektor felírható x = x 0 +V m y alakban, ahol V m oszlopai az Arnoldi iteráció által megadott ortonormált bázisvektorok (tetsz leges vektor helyett v := r 0 / r 0 ), y R m. Deniáljuk a következ funkcionált: F (y) = b Ax = b A(x 0 + V m y) = r 0 AV m y Felhasználva a 3..4 állítást, és hogy V m+ ortogonális mátrix: r 0 AV m y = r 0 v V m+ H m y = V m+ ( r 0 2 e H m y) = r 0 2 e H m y (3.) Ahol e = (, 0, 0,..., 0) T R m+. Az x m vektort tehát úgy kapjuk meg hogy megkeressük azt az y vektort, amely minimalizálja az F (y) funkcionált, és x m következ algoritmust adja: := x 0 + V m y. Ez a 3.2.. Algoritmus. GMRES. Válasszunk egy x 0 tetsz leges vektort, és r 0 := Ax 0 b, v := r 0 / r 0 2. For j =...m Do: 3. v j+ := Av j 4. For i =...j Do: 5. h i,j :=< Av i, v j > 6. v j+ := v j+ h i,j v i 7. EndDo 8. h j+,j := v j+ 9. Ha h j+,j = 0 akkor m := j és lépjünk a 2.sorra 0. v j+ := v j+ /h j+,j. EndDo 2. Deniáljuk a H m mátrixot. 3. Számítsuk ki az y vektort, amely minimalizálja az F (y) funkcionált, majd x m := x 0 + V m y 2

Most foglalkozzunk az F (y) funkcionál minimalizálásával: Egy elterjedt eljárás, hogy Givens-forgatások alkalmazásával a H m mátrixot fels háromszög alakúra hozzuk, majd az így kapott egyenletrendszert oldjuk meg. Deniáljuk a forgatási mátrixot: P i =... c i s i s i c i... ahol (0,...0, c i, s i, 0,..., 0) T a mátrix i. oszlopa, P i R (m+) (m+), ahol h (i ) i,i s i = h i+,i c i = h 2 i+,i + (h(i ) i,i ) 2 h (i ) i,i h 2 i+,i + (h(i ) i,i ) 2 a már i -szer elvégzett forgatás után kapott mátrix i. sorának i. eleme. Legyen Q m = P m P m...p. Így Q m H m = R m, ahol R m R (m+) m, és ) R m = R m R m m fels -háromszög mátrix. Így ( Rm F (y) = r 0 e H m y = Q m r 0 e Q m H m y = Q m r 0 e R m y = f m R m y ahol Q m r 0 e = f m = (β, β 2,, β m+ ) T, és legyen f m = (β, β 2,, β m ) T (elhagytuk f m utolsó koordinátáját). Jelöljük f m = (γ, γ 2,, γ m ). Ekkor γ γ β β 2 γ 2 γ 2 f m = = Q m r 0 e = P m Q m r 0 e = P m. =.,. γ m c m γ m β m+ 0 s m γ m 0, így speciálisan β m+ = s m γ m (3.2) 3

3.2.2. Állítás. Legyen m < N, ekkor az eddigi jelöléseket használva:. Az AV m mátrix rangja megegyezik R m rangjával, és ha r m,m = 0, akkor A szinguláris. 2. Jelölje y m az r 0 e H m y minimumhelyét. Ekkor: y m = R m f m. 3. m lépés után: b Ax m = β m+ Bizonyítás.. Felhasználva a 3..4 állítást és Q m ortogonalitását: AV m = V m+ H m = V m+ Q T mq m H m = V m+ Q T mr m Mivel V m+ Q T m ortogonális, ezért AV m rangja megegyezik R m rangjával, amely egyenl R m rangjával, hiszen csak egy 0-sorban különböznek. Ha r m,m = 0 akkor R m rangja legfeljebb m, így AV m rangja is legfeljebb m. Mivel rang(v m ) = m, ezért A szinguláris. 2. Az eddigi eredményeket, illetve a Pitagorasz-tételt felhasználva kapjuk: r 0 e H m y 2 = f m R m y 2 + β m+ 2 Mivel R m teljes rangú, ezért a jobb oldal minimumhelye: y m = R m f m. 3. b Ax m 2 = b A(x 0 + V m y m ) 2 = f m R m y m 2 + β m+ 2 = β m+ 2 Felhasználva az eddigi eredményeket, illetve hogy y m = R m f m. 3.2.3. Következmény. Ezt az algoritmust használva minden lépésben megkapjuk a hiba normáját, ez egy megfelel leállási kritériumot szolgáltat. Az algoritmusból leolvasható, hogy az m-edik lépés el tt a GMRES módszer csak a 9. sorban állhat le, azaz amikor az Arnoldi bázis felépítése során v j = 0 valamely j < m indexre. 3.2.4. Állítás. Legyen A reguláris mátrix. Ekkor a GMRES algoritmus akkor és csak akkor áll le a j. lépésben (azaz h j+,j = 0), ha az x j közelít megoldás pontos. Bizonyítás. Tegyük fel el ször hogy h j+,j = 0. Mivel A reguláris, ezért 0 r jj = h (j ) jj, így s j = h j+,j = 0. h 2 j+,j + (h(j ) jj ) 2 A 3.2.2 állítás els részéb l illetve (3.2) egyenletb l következik: r j = Ax b = β j+ = s j γ j = 0, 4

így x j pontos. Visszafele hasonlóan, ha x j pontos, akkor s j = 0, így h j+,j = 0. A H m mátrix felépítése O(m 2 ) lépésben történik, így m növelésével, a lépések száma kvadratikusan n, továbbá az x m vektor kiszámításához szükséges a V m mátrix eltárolása, melynek mérete N m. Így nagyméret egyenletrendszerek esetében a módszer memóriaigénye nagy. Ennek feloldása hogy az algoritmust néhány lépés után újraindítjuk a kapott, jobb közelítésb l. 3.2.5. Algoritmus. Újraindított GMRES. r 0 := Ax 0 b, v := r 0 / r 0 2. Készítsük el a Arnoldi bázist és a H m mátrixot. 3. Számítsuk ki az y vektort, amely minimalizálja F (y)-t, majd x m := x 0 + V m y 4. Ha x m megfelel közelítése a pontos megoldásnak megállunk, ha nem, x 0 := x m, és ugorjunk az. sorra 3.2.6. Megjegyzés. Egy ismert nehézség az újraindított GMRES módszerrel, hogy ha az A mátrix nem pozitív denit, akkor stagnálhat (azaz a hiba normája nem csökken). 5

3.3. Az LSQR-módszer Legyen A R N M, b R N, tekintsük az Ax = b egyenletrendszert. Mivel az A mátrix nem négyzetes, így az egyenletrendszernek ritkán van pontos megoldása. Minimalizálhatjuk azonban Ax b -t, ezt nevezik a legkisebb négyzetek feladatának. Tekintsük a következ bidiagonalizációs módszert: 3.3.. Algoritmus. Bidiagonalizálás. Legyen β u = b és α v = A T u 2. For i=,2, Do 3. β i+ u i+ = Av i α i u i 4. Ha u i+ = 0 akkor Stop 4. α i+ v i+ = A T u i+ β i+ v i 5. Ha v i+ = 0 akkor Stop 5. EndDo Ahol i =, 2,...-re az β i, α i 0 számokat úgy választjuk hogy u i = v i = legyen (illetve ha u i = 0, akkor β i := 0, hasonlóan ha v i = 0, akkor α i := 0). Jelölje U k R N k mátrixot, melynek oszlopai az u i, i =,..., k vektorok. Hasonlóan jelölje V k R M k azt a mátrixot, melynek oszlopai a v i vektorok. 3.3.2. Állítás. U k és V k ortogonális mátrixok. Bizonyítás. Azt kell tehát belátni hogy < u i, u j >=< v i, v j >= 0 minden i < j párra, illetve u i = v i = minden i =, 2,...-re. u i = v i = triviálisan következik α i, β i választásából. Az ortogonalitást teljes indukcióval látjuk be. El ször tekintsük: Av α u < u, u 2 > = < u, Av α u >= Av α u (< u, Av > α u 2 ) = = Av α u (< AT u, v > α ) = Av α u (< α v, v > α ) = = Av α u (α α ) = 0 6

< v, v 2 > = A T u 2 β 2 v < v, A T u 2 β 2 v >= A T u 2 β 2 v (< v, A T u 2 > β 2 v 2 ) = = A T u 2 β 2 v (< Av, u 2 > β 2 ) = = A T u 2 β 2 v (< β 2u 2 + α u, u 2 > β 2 ) = = A T u 2 β 2 v (β 2 u 2 2 + α < u, u 2 > β 2 ) = 0 Most tegyük fel hogy minden i, j k, i < j indexpárra teljesül < u i, u j >=< v i, v j >= 0, valamely k > 2 természetes számra. Ekkor < u i, u k+ >=< u i, Ha i =, akkor A T u = α v, így Av k α k u k Av k α k u k >= < AT u i, v k > α k < u i, u k > Av k α k u k < A T u, v k > α k < u, u k >= α < v, v k > α k < u, u k >= 0 az indukciós feltevés miatt, így < u, u k+ >= 0. Ha i : < u i, u k+ > = < AT u i, v k > α k < u i, u k > Av k α k u k = < α iv i + β i v i, v k > α k < u i, u k > Av k α k u k Ha i k, akkor az indukciós feltevés miatt < v i, v k >=< v i, v k >=< u i, u k >= 0, így < u i, u k+ >= 0. Ha i = k: < u k, u k+ >= < α kv k + β k v k, v k > α k < u k, u k > Av k α k u k Hasonlóan: = α k v k 2 α k u k 2 Av k α k u k A T u k+ β k+ v k < v i, v k+ > = < v i, A T u k+ β k+ v k >= < Av i, u k+ > β k+ < v i, v k > A T u k+ β k+ v k = < β i+u i+ + α i u i, u k+ > β k+ < v i, v k > A T u k+ β k+ v k Mivel már tudjuk hogy < u i, u k+ >= 0 minden i k, így ha i < k, akkor < u i+, u k+ >= < u i, u k+ >=< v i, v k >= 0, így < v i, v k+ >= 0. Ha i = k: = 0 = < v k, v k+ >= < β k+u k+ + α k u k, u k+ > β k+ A T u k+ β k+ v k Így U k, V k ortogonális mátrixok. = β k+ β k+ A T u k+ β k+ v k = 0 7

3.3.3. Állítás. A v, v 2,...v k vektorok egy ortonormált bázisát alkotják κ k (A T A, b)-nek. Bizonyítás. Már láttuk hogy a v, v 2,..., v k vektorok ortonormált rendszert alkotnak, így csak annyit kell belátni hogy mindegyik vektor el áll v i = p i (A T A)v alakban, ahol p i egy legfeljebb i -edfokú polinom. Teljes indukcióval látjuk be, v -re triviálisan teljesül az állítás a p polinommal. Tegyük fel hogy valamely j indexig már tudjuk. Ekkor α j+ v j+ = A T u j+ β j+ v j = AT Av j β j+ α j β j+ A T u j β j+ v j = = AT Av j β j+ α2 j β j+ v j α jβ j β j+ v j β j+ v j = = A T Ap j (A T A)v p j (A T A)v p j 2 (A T A)v amely egy kívánt felírása a vektornak. A 3.3. algoritmus összefüggései felírhatók mátrixos alakban is: U k+ (β e ) = b (3.3) AV k = U k+ B k (3.4) A T U k+ = V k Bk T + α k+ v k+ e T k+ (3.5) ahol e i R k+, B k R (k+) k és 0 α 0 0 0. 0 β 2 α 2 0 0. e i = i.sor B k = 0 β 3 α.. 3.. 0......... 0. 0 0 β k α k 0 0 0 β k+ 0 Minimalizáljuk b Ax -t az x κ m vektorok körében. Ekkor x = V m y m alakba írható. Így b Ax = AV m y m b = U m+ B m y m U m+ β e = B m y m β e A GMRES módszernél látottakhoz hasonlóan forgatásokkal elimináljuk a f átló alatti elemeket (β i ). Példaként bemutatjuk az i. forgatást. Az (i ). forgatás után kapott 8

mátrix: θ φ 2 θ 2 φ 3 Q i B i =...... θ i φ i ( ) Qi 2 0 ahol Q i = P i, és P i forgatási mátrix, Q = P (így Q i forgatások 0 kompozíciója), és B i -t úgy kapjuk meg B i -b l hogy hozzávesszük utolsó oszlopnak (0,.., 0, α i ) T -t. Így az i. forgatás: θ φ 2......... c i s i si c i θ i φ i θ i β i+ α i+ θ i θ φ 2...... = θ i φ i θ i φ i+ Itt a felülvonással jelölt értékek a következ iterációban még megváltozhatnak, a felülvonás nélküliek már nem. Ebb l könnyen látható hogy R k és R k csak egy új sorban és oszlopban különböznek (R k bal fels (k ) (k )-es blokkja R k ). Ekkor β e B m y m = Q m β e R m y m = g m R m y m ) ( Rm ahol Q m B m = R m = és Q m β e = g m, és g m -et úgy kapjuk hogy elhagyjuk g m 0 utolsó elemét. Az el bbihez hasonlóan adódik hogy g m els k eleme megegyezik g m -el. Amennyiben R m rangja teljes: y m = R m g m és r k = b Ax = g m R m y m = γ m+. Azonban y m és y m elemei általában különböznek, így minden lépésben újra kéne számolni a vektort. Egy egyszer lépéssel azonban megkerülhet y m kiszámítása. Tekintsük tehát: x m = V m y m = V m R m g m = D m g m, ahol D m oszlopait az R T md T m = V T m rendszerb l kaphatjuk meg. Mivel d 0 = x 0 = 0, így d k = θ k (v k φ k d k ) x k = x k + γ k d k Mivel a k. lépés után θ k, φ k és γ k sem változik így, nem kell megjegyeznünk csak az utolsó iterációban kapott értékeket. 9 θ i+

Ismeretes hogy ha egy x vektor minimalizálja az Ax b -t, akkor megoldása a Gaussféle normálegyenletnek, azaz A T Ax = A T b, így A T (Ax b) = A T r = 0, ahol r = Ax b. Így a legkisebb négyzetek feladatánál A T r m megfelel megállási kritériumot szolgáltathat. Az LSQR-módszernél ez szinte ingyen adódik: A T r m = A T (Ax m b) = A T (AV m y m b) = A T U m+ (B m y m β e ) = = γ m+ A T U m+ Q T me m+ = γ m+ (V m Bm T + α m+ v m+ e T m+)q T me m+ = = γ m+ V m R T me m+ + γ m+ α m+ v m+ e T m+q T me m+ = γ m+ α m+ c m v m+ hiszen, R T me m+ = (0,..., 0) T és e T m+q T me m+ = c m. Ezek alapján: A T r m = α m+ γ m+ c m (3.6) 3.3.4. Algoritmus. LSQR. Legyen β u = b, α v = A T u, w = v, x 0 = 0, γ = β, θ = α 2. For i=,2,... Do 3. β i+ u i+ = Av i α i u i 4. α i+ v i+ = A T u i+ β i+ v i 5. θ i = θ 2 i + βi+ 2 6. c i = θ i /θ i 7. s i = β i+ /θ i 8. γ i = c i γ i 9. γ i+ = s i γ i 0. θ i+ = c i α i+. φ i+ = s i α i+ 2. x i = x i + (γ i /θ i )w i 3. w i+ = v i+ (φ i+ /θ i )w i 4. Ha A T r i elég kicsi akkor Stop 5. EndDo M lépés után az algoritmus biztosan véget ér, hiszen κ M (A T A, b) = R M, így ebben a vektortérben minimalizáljuk r M -t, így x M biztosan megoldása a Gauss-féle normálegyenletnek, ebb l következend en A T (Ax M b) = 0, így az algoritmus leáll, x M keresett megoldás. a 20

3.3.5. Megjegyzés. A számítógép számábrázolási hibájának következtében, a gyakorlatban az algoritmus nem biztos hogy leáll M lépés után. 3.3.6. Állítás. Legyen k < M a legkisebb olyan index, amire α k+ = 0. Ekkor x k megoldása a Gauss-féle normálegyenletnek, így x k minimalizálja r -t. Bizonyítás. A 3.6 egyenletet felhasználva: A T r k = α k+ γ k+ c k Itt γ k+ = s i γ k = (β k+ /θ k )γ k, amely értelmes, hiszen θ k = θ 2k + β 2k+ = (c k α k ) 2 + βk+ 2 ahol α k 0, a feltétel miatt, c k = θ k /θ k, és θ k = 0 csak akkor ha β k = 0, csak akkor ha α k = 0, ami ellentmond a feltételnek, így θ k 0. c k = θ k /θ k, ahol θ k 0 az el bbiek szerint. Így A T r k = α k+ γ k+ c k értelmes és A T r k = 0, hiszen α k+ = 0. 3.4. A BiCG-módszer Legyen most A R N N, b R N. A BiCG (bikonjugált gradiens) módszer nem követeli meg az A mátrix szimmetrikusságát, mint a konjugált gradiens módszer. Tekintsük a következ biortogonalizációs eljárást: 3.4.. Algoritmus. Lanczos-biortogonalizáció. Válasszunk v, w R N vektorokat, úgy hogy < v, w >:= 2. Legyen β = δ = 0, w 0 = v 0 = 0. 3. For j=,2,..,m Do: 4. α j =< Av j, w j > 5. v j+ = Av j α j v j β j v j 6. w j+ = A T w j α j w j δ j w j 7. δ j+ = < v j+, w j+ > Ha δ j+ = 0 akkor Stop 8. β j+ =< v j+, w j+ > /δ j+ 9. w j+ = w j+ /β j+ 0. v j+ = v j+ /δ j+. EndDo 2

3.4.2. Megjegyzés. A β i, δ i skalárok választása több módon is történhet, annak kell teljesülnie, hogy δ i β i =< v i, w i >, ez biztosítja hogy < v i, w i >= legyen. Az algoritmusban azért így választottuk, mert így δ i = β i. Az algoritmusból leolvasható, hogy v i κ m (A, v ), illetve w i κ m (A T, w ). Továbbá a v, v 2,...v m vektorok egy bázisát alkotják κ m (A, v )-nek, a w, w 2,..., w m vektorok κ m (A T, w )- nek. 3.4.3. Állítás. Ha az algoritmus nem áll le az m-edik lépés el tt, akkor a v, v 2,..., v m és a w, w 2,..., w m vektorok egy biortogonális rendszert alkotnak, azaz < v i, w j >= δ ij i, j m ahol δ ij a Kronecker-delta függvényt jelöli, azaz { 0 ha i j δ ij = ha i = j Bizonyítás. Az állítást teljes indukcióval fogjuk bizonyítani. A β j, δ j skalárok megválasztásából következik hogy < v j, w j >=. Egyszer en kapjuk: < v 2, w >=< Av α v, w >=< Av, w > α < v, w >= 0 α deníciója következtében. Hasonlóan < w 2, v >= 0. Tegyük most fel hogy a v, v 2,..., v j és a w, w 2,..., w j biortogonális rendszert alkotnak, belátjuk el ször hogy < v j+, w i >= 0 minden i j indexre. Ha i = j: < v j+, w j > = = < Av j α j v j β j v j, w j >= δ j+ (< Av j, w j > α j < v j, w j > β j < v j, w j >) = 0 δ j+ α j deníciója, < v j, w j >= miatt az els két skalárszorzat különbsége 0, az indukciós feltevést felhasználva a harmadik tag 0. < v j+, w i > = = = (< Av j, w i > α j < v j, w i > β j < v j, w i >) = δ j+ (< v j, A T w i > β j < v j, w i >) = δ j+ (< v j, β i+ w i+ + α i w i δ i w i > β j < v j, w i >) δ j+ 22

i < j -re a fenti skalárszorzatok elt nnek, ha i = j : < v j+, w j > = = (< v j, β j w j + α j w j δ j w j 2 > β j < v j, w j >) = δ j+ (β j < v j, w j > β j < v j, w j >) = 0. δ j+ felhasználva az indukciós feltételt, illetve hogy < v i, w i >= minden i j indexre. Hasonlóan belátható hogy < w j+, v i >= 0 minden i j indexre, ezzel az állítást beláttuk. Jelölje T m R m m a következ tridiagonális mátrixot: α β 2 δ 2 α 2 β 3 T m =......... δ m α m β m δ m α m A 3.4. algoritmus alapján felírhatók a következ összefüggések: AV m = V m T m + δ m+ v m+ e T m (3.7) A T W m = W m Tm T + β m+ w m+ e T m (3.8) WmAV T m = T m ahol V m, W m rendre azokat a mátrixokat jelölik, amelynek oszlopai a v, v 2,..., v m, illetve a w, w 2,..., w m vektorok, (0,...0, ) = e T m R m. Vegyük észre, hogy hasonló m veleteket végzünk az A illetve az A T mátrixokkal, valójában két lineáris egyenletrendszert oldunk meg egyszerre, egyet az A, egyet az A T mátrixszal. Így ha létezik egy A T x = b egyenletrendszer amit meg kell oldanunk, akkor ez a módszer megfelel. Válasszunk egy x 0 R N kezd közelítést. Legyen r 0 = b Ax 0, és válasszuk v = r 0 / r 0 -nak. Hasonlóan az el z módszereknél látottakhoz az x m közelít megoldást x m = x 0 + V m y m alakban keressük. Így: b Ax m = r 0 AV m y m = V m+ β e V m+ T m y m = β e T m y m ahol β = r 0, és T m = ( Tm δ m+ e T m ) 23

Mivel T m teljes rangú (ha δ j+ 0), így y m = T m (β e ). Tekintsük a T m mátrix LUfelbontását, amely T m speciális alakja miatt a következ képpen írható fel: Ekkor η β 2 λ 2 η 2 β 3 T m = L m U m = λ 3............ λ m η m x m = x 0 + V m y m = x 0 + V m T m (β e ) = x 0 + V m U m L m (β e ) = x 0 + P m L m (β e ) ahol P m = V m U m, azaz P mu m = V m. Tekintsük a szorzat utolsó oszlopát. U m speciális alakja miatt: u (m )m p m + u mm p m = β m p m + η m p m = v m így p m az alábbi képlettel egyszer en számítható a p m illetve v m vektorokból: p m = v m β m p m η m Itt β m -et a 3.4. algoritmus adja, λ m -et és η m -et pedig a Gauss-elimináció m-edik lépéséb l kapjuk, azaz β m η m λ m = β m η m η m = α m λ m β m Jelölje z m miatt: = L m (β e ), így az el bbihez hasonlóan L m z m z m = ( zm ζ m ) = β e, L m speciális alakja és ζ m = λ m ζ m. Ennek következményeképpen x m -et minden iterációs lépésben lehet frissíteni: x m = x m + ζ m p m Jelölje r j = b Ax j -t, r j = b A T x j (a korábban említett duál egyenletrendszer). 3.4.4. Állítás. Minden r j és r j vektor felírható r j = σ j+ v j+ és r j = θ j+ w j+ alakban, így az r 0, r,..., r j és az r 0, r,..., r j vektorok biortogonális rendszert alkotnak. 24

Bizonyítás. Felírva r j denícióját, illetve felhasználva a (3.7) egyenletet kapjuk: r j = b Ax j = b AV j y j = b V j T j y j + δ j+ v j+ e T j y j = σ j+ v j+ Hasonlóan, a (3.8)-as egyenletet felhasználva kapjuk az állítást r j -ra. Deniáljuk a P m = W m (L m ) T mátrixot. A p m vektorokhoz hasonlóan belátható hogy p m lineáris kombinációja w m -nek és p m -nek. 3.4.5. Állítás. Minden i j indexre < Ap j, p i >= 0. Bizonyítás. (Pm) T AP m = L m W m AV m Um = L m T m Um = I Tudjuk hogy x m+ = x m + µ m p m. Ebb l következik hogy r m+ = b Ax m+ = b Ax m µ m Ap m = r m µ m Ap m hasonlóan r m+ = r m µ m Ap m. A 3.4.4 állítás következtében teljesülnie kell: amib l kapjuk: 0 =< r m+, r m >=< r m µ m Ap m, r m > µ m = < r m, r m > < Ap m, r m > Tudjuk továbbá hogy p m+ lineáris kombinációja r m+ -nak és p m -nak (mivel r m+ egy irányba esik w m+ -el). A p m vektorokat megfelel skalárral osztva kapjuk hogy: Ebb l, felhasználva a 3.4.5 állítást: Szintén a 3.4.5 állításból: p m+ = r m+ + θ m p m < Ap m, r m >=< Ap m, p m θ m p m >=< Ap m, p m > 0 =< p m+, Ap m >=< r m+ + θ m p m, Ap m > és ebb l felhasználva hogy Ap m = µ m (r m+ r m ): θ m = < r m+, Ap m > < p m, Ap m > = < rm+, r m+ r m > µ m < p m, Ap m > Ezek alapján felírható az algoritmus: = < r m+, r m+ > < r m, r m > 25

3.4.6. Algoritmus. BiCG. Számítsuk ki r 0 = b Ax 0, és válasszunk egy r 0 vektort, melyre < r 0, r 0 > 0. 2. p 0 := r 0, illetve p 0 := r 0. 3. For j =, 2,... Do: 4. µ j =< r j, r j > / < Ap j, p j > 5. x j+ = x j + µ j p j 6. r j+ = r j µ j Ap j 7. rj+ = rj µ j A T p j 8. θ j =< rj+, r j+ > / < r j, rj > 9. p j+ = r j+ + θ j p j 0. p j+ = r j+ + θ j p j. EndDo Ha meg kell oldanunk a duál feladatot is, akkor válasszuk r0 = b A T x 0, és az algoritmus 5. sora után szúrjuk be: x j+ = x j + µ j p j. Ugyanakkor ha nem oldunk meg duál feladatot, az iteráció minden lépésében elvégzünk egy szorzást A-val és A T -tal is,de a p j vektor, melynek kiszámításához az A T mátrixot használtuk, nem járul hozzá közvetlenül a megoldás kiszámításához, csak a µ j, θ j konstansok megadásához. Felmerül a kérdés hogy el tudjuk-e kerülni az A T mátrix használatát. 3.4.7. Megjegyzés. Léteznek olyan gyakorlati problémák, melyeknél az A mátrix csak egy közelítését ismerjük, nem tudjuk (vagy nem szükséges) explicit megadni. Ekkor általában az A T mátrix nem áll rendelkezésre. Egy egyszer példa amikor a Newton-iteráció felhasználásával akarjuk megoldani az F (u) = 0 egyenletet. Az iteráció minden lépésében egy lineáris egyenletrendszert kell megoldanunk, ezt meg tudjuk oldani a Jacobi-mátrix explicit kiszámítása nélkül, felhasználva hogy: J(u k )v = F (u k + ɛv) F (u k ) ɛ Ez lehet vé teszi hogy egy tetsz leges v vektorra kiszámítsuk az értéket. Ugyanakkor nem létezik hasonló formula J(u k ) T -hoz. 3.5. BiCGStab Vegyük észre hogy a BiCG módszerben a maradékvektor felírható: r j = φ j (A)r 0 26

alakban, ahol φ j (t) egy j-edfokú polinom, amelyre φ j (0) =. Hasonlóan felírhatjuk: p j = π j (A)r 0 A 3.4.6 algoritmusban r j -ot és p j hasonló képzési szabállyal állítjuk el, mint r j-t illetve p j -t, az A mátrix helyett A T -ot használva. Így: r j = φ j (A T )r 0 p j = π j (A T )r 0 Az el bbi felírás helyett a BiCGStab módszer a maradékvektort a következ alakban állítja el : r j = ψ j (A)φ j (A)r 0 ahol ψ j (A) arra szolgál hogy stabilizálja az eredeti algoritmus konvergenciáját. ψ j (t)-t a következ rekurzív képlettel kapjuk meg: ψ j (t) = ( ω j t)ψ j (t) (3.9) ahol az ω j paramétert kell meghatároznunk. A 3.4.6 algoritmusból leolvashatjuk: φ j+ (t) = φ j (t) µ j tπ j (t) (3.0) π j+ (t) = φ j+ (t) + θ j π j (t) (3.) A fenti egyenletekb l egyszer en kapjuk: ψ j+ (t)φ j+ (t) = ( ω j t)ψ j (t)(φ j (t) µ j tπ j (t)) = = ( ω j t)(ψ j (t)φ j (t) µ j tψ j (t)π j (t)) ψ j (t)π j (t) = ψ j (t)(φ j (t) + θ j π j (t)) = = ψ j (t)φ j (t) + θ j ( ω j t)ψ j (t)π j (t) Jelölje mostantól: r j = ψ j (A)φ j (A)r 0 p j = ψ j (A)π j (A)r 0 Felhasználva az el z képleteket kapjuk a rekurziókat: r j+ = (I ω j A)(r j µ j Ap j ) p j+ = r j+ + θ j (I ω j A)p j 27

Tekintsük most a θ j konstanst. A BiCG algoritmust tekintve θ j = ρ j+ /ρ j, ahol ρ j =< φ j (A)r 0, φ j (A T )r 0 >=< φ j (A) 2 r 0, r 0 > Azonban nem ismerjük a φ j (A)r 0, φ j (A T )r 0 és φ j(a) 2 r 0 vektorokat, így ezekb l nem tudjuk kiszámítani. Tekintsük ρ j =< φ j (A)r 0, ψ j (A T )r 0 >=< ψ j (A)φ j (A)r 0, r 0 >=< r j, r 0 > Másrészt ψ j (A T ) felírható a következ alakban: ψ j (A T ) = η (j) (A T ) j + η (j) 2 (A T ) j +... + η (j) j+ Felhasználva hogy φ j (A)r 0 ortogonális (A T ) k r0 -ra minden k < j indexre, kapjuk: ρ j = < φ j (A)r 0, ψ j (A T )r 0 >= = < φ j (A)r 0, η (j) (A T ) j r 0 + η (j) 2 (A T ) j r 0 +... + η (j) j+ r 0 >= = < φ j (A)r 0, η (j) (A T ) j r0 >=< φ j (A)r 0, η(j) φ j (A T )r0 >= = η(j) ρ γ (j) j ahol γ (j) a φ j (t) polinom f együtthatója. A 3.0 és 3. egyenletekb l leolvasható hogy φ j és π j f együtthatója megegyezik, továbbá felhasználva a 3.9 egyenletet kapjuk a következ összefüggést a f együtthatókra: Egyszer en kapjuk az összefüggést: γ (j) η (j+) = ω j η (j) γ (j+) = µ j γ (j) ρ j+ ρ j = ω j µ j ρ j+ ρ j amit felhasználva θ j = µ j ω j ρ j+ ρ j Az el bbihez hasonló eljárással felírjuk a µ j konstanst, felhasználva hogy φ j és π j f együtthatója megegyezik: µ j = < φ j(a)r 0, φ j (A T )r 0 > < Aπ j (A)r 0, π j (A T )r 0 > = < φ j(a)r 0, φ j (A T )r 0 > < Aπ j (A)r 0, φ j (A T )r 0 > = = < φ j(a)r 0, ψ j (A T )r 0 > < Aπ j (A)r 0, ψ j (A T )r 0 > = < ψ j(a)φ j (A)r 0, r 0 > < Aψ j (A)π j (A)r 0, r 0 > = ρ j < Ap j, r 0 > 28

Következ lépésként meghatározzuk az ω j minimális legyen (I ω j A)ψ j (A)φ j (A)r 0. Jelöljük s j ω j A)s j. A paraméter optimális értéke: Végül paramétert. Válasszuk meg ω j -t úgy, hogy ω j = < As j, s j > < As j, As j >. r j+ = s j ω j As j = r j µ j Ap j ω j As j = r j µ j Ap j, így r j+ = (I amib l kapjuk: x j+ = x j + µ j p j + ω j s j. Ezek alapján felírhatjuk a következ algoritmust: 3.5.. Algoritmus. BiCGStab. Számítsuk ki r 0 = b Ax 0, r0 legyen tetsz leges. 2. p 0 := r 0 3. For j = 0,,... Do: 4. µ j =< r j, r0 > / < Ap j, r0 > 5. s j = r j µ j Ap j 6. ω j =< As j, s j > / < As j, As j > 7. x j+ = x j + µ j p j + ω j s j 8. r j+ = s j ω j As j 9. θ j = µ j < r j+, r0 > /(ω j < r j, r0 >) 0. p j+ = r j+ + θ j (p j ω j Ap j ). EndDo 29

4. fejezet Összehasonlítás 4.. Az alapmegoldások módszere Tekintsük a következ problémát: Legyen Ω R 2 tartomány. Keressük azt az u : Ω R kétszer folytonosan dierenciálható függvényt, amelyre u(x, y) = 0 ha x Ω és u(x) = g(x) ha x Ω ahol a Laplace-operátort jelöli, Ω az Ω tartomány határát és g : Ω R függvény (így el írtuk, hogy az u függvény milyen értékeket vesz fel a tartomány határán, ezt nevezik Dirichlet-peremfeltételnek). Tekintsük a ψ : R 2 \ {0} R ψ(x) = log x függvényt. Ekkor ψ(x) = 0 minden x R 2 \ {0} pontra. Vegyünk fel n darab pontot a tartomány határán, ezeket jelölje: x, x 2,...x n és újabb n darab, úgynevezett forráspontot a tartományon kívül: x, x 2,..., x n. Az alapmegoldások módszerében az u függvényt a következ alakban keressük: n u(x) = α j ψ(x x j ) j= ahol az α j együtthatók ismeretlenek. Ekkor a Laplace-operátor linearitása következtében u(x) = 0 minden x Ω esetén (a fenti függvény minden x Ω pont esetén értelmezett, 30

hiszen x x j 0 ). Az α j együtthatók a peremfeltétel felhasználásával számíthatók: u(x k ) = n α j ψ(x k x j ) j= k =,..., n Ekkor: A ij := ψ(x i x j ) b i := u(x k ) A megoldandó egyenletrendszer: Aα = b. Ahogy távolabb választjuk a tartományon kívüli x j pontokat, a kapott A mátrix kondíciószáma (gyorsan) n, így a pontos megoldás kiszámítása egyre nagyobb problémát jelent. Ugyanakkor nincs szükségünk az α pontos értékérére: az u függvény még úgy is pontos lehet hogy az α j együtthatók hibája nem elhanyagolható. Legyen Ω = [, ] [, ] négyzet, és tekintsük az u(x, y) = 0x 2 0y 2 + 5xy + 4x 2y függvényt. Erre teljesül hogy u = 0 minden x Ω pontra. Vegyünk fel n darab pontot a négyzet határáról egyenletesen (a négyzet középpontjából indítunk félegyeneseket, a félegyenesek 2π/n szöget zárnak be egymással, a félegyenesek és a négyzet metszéspontjai legyenek a határpontok), majd számítjuk ki az u(x j ) értékeket. A forráspontokat vegyük az origó középpontú r 2 sugarú körr l egyenletesen, ahol r >. Ezen probléma megoldására fogjuk alkalmazni a bemutatott 3 módszert (GMRES, LSQR, BiCGStab), különböz n illetve r értékek esetén. Mindhárom módszer toleranciaértéke 0 8, maximum iterációs száma n. A módszereket a konvergenciához szükséges iterációs szám, az egyenletrendszer megoldásának hibája, és a keresett u függvény hibája (a tartomány belsejében egyenletesen felvett pontokban a pontos megoldás és az általunk adott u függvény eltérésének maximuma) alapján hasonlítjuk össze. Az adatokat a 4. ábra tartalmazza. A mátrix kondíciószáma a forráspontok távolításával, illetve a határpontok számának növelésével n. Meggyelhet, hogy a GMRES módszer minden esetben elérte a megfelel pontosságot, míg a BiCGStab a maximum iterációs szám elérése után állt le. A táblázatból leolvasható hogy több tesztesetnél, annak ellenére hogy a GMRES módszer pontosabb megoldást adott az egyenletrendszerre, az u függvény hibája nagyságrendileg azonos (például n = 0, r =, ; 2; 4 vagy n = 00, r =, ). 3

A 4.2 ábrán látható hogy a legnagyobb eltérés a tartomány határán, a határpontok között van, a tartomány belsejében a megoldás pontosabb. Ahogy távolítjuk a forráspontokat, a határpontok közötti hiba csökken. A 4.4 ábráról leolvasható, hogy ha növeljük a határpontok számát, nem kell nagy távolságokra felvenni a forráspontokat, hiszen r 2 esetén az u függvény hibájának változása kicsi (már r = 2 esetén is pontos). 32

4.. ábra. A táblázat a problémára alkalmazott GMRES, LSQR és BiCGStab módszerek iterációs számát, az egyenletrendszer megoldásának hibáját illetve a keresett u függvény hibáját tartalmazza. r jelöli a forráspontok távolságát a tartomány szélét l, n a felvett határpontok számát. 33

4.2. ábra. A GMRES módszer által adott u függvény hibája n = 30 és r =. esetén. 4.3. ábra. n = 00 és r = 2 esetén a módszerek konvergenciája. 34

4.4. ábra. A távolság függvényében a kapott u függvény hibája. 4.5. ábra. A kapott u függvény n = 00, r = 4 esetén. 35

5. fejezet Összefoglalás Az el z fejezetben összehasonlítottuk egy tesztfeladaton a bemutatott, Krylov-altérre épül módszereket. Meggyelhet, hogy minden paraméterpár esetén (kivéve n = 00, r = 0), a GMRES-módszer mutatott a leggyorsabb konvergenciát. Azonban ez általánosságban nem mondható el. Mindegyik módszerhez léteznek olyan mátrixok, melyekre az adott módszer konvergál a legkevesebb iterációs lépés alatt. Ezért a gyakorlatban egy problémára több módszert is szokás alkalmazni, hogy lássuk melyik módszer teljesít a legjobban. A tesztfeladatban használt mátrixok rosszul kondicionáltak, ugyanakkor a konstrukció következtében speciális alakjuk miatt a módszerek gyors konvergenciát mutattak. Egy általános rosszul kondicionált mátrixra a módszerek nem így viselkednek, a konvergencia lassabb, vagy egyáltalán nem következik be. A bemutatott módszereknek számos változata létezik és használt, ezekr l b vebben a [2] könyvben olvashatunk (például a már említett Újraindított GMRES-módszer). 36

6. fejezet A módszerek MATLAB-kódjai function [x,hiba]=gmres(a,b) n=size(a,); Q(:,)=b/norm(b,2); v=a*q(:,); H(,)=Q(:,)'*v; v=v-h(,)*q(:,); H(2,)=norm(v,2); Q(:,2)=v/H(2,); [T,R]=qr(H); T=T'; g=t(,)*norm(b,2); R=triu(R(,)); y = R\g; f=; i=2; x=0; while norm(h*y-norm(b,2)*f)>0^-8 && i<=n; v=a*q(:,i); for j=:i H(j,i)=Q(:,j)'*v; v=v-h(j,i)*q(:,j); end 37

H(i+,i)=norm(v,2); Q(:,i+)=v/H(i+,i); if i==2 [T,R]=qr(H); T=T'; elseif i>2 c=[t(i,:) 0]*H(:,i); s=h(i+,i); c=c/sqrt(c^2+s^2); s=sqrt(-c^2); T(i:i+,:i+)=[c,s;-s,c]*[T(i,:) 0;zeros(,i) ]; R(:i+,i)=T*H(:,i); end if(i>) g=t(:,)*norm(b,2); opts.ut = true; y = linsolve(triu(r(:i,:i)),g(:i),opts); x=q(:,:i)*y; f=zeros(i+,); f()=; hiba(i-)=norm(h*y-norm(b,2)*f); end i=i+; end function [x,hiba]=lsqr(a,b) n=size(a,); x=zeros(n,); q=b; beta=norm(q); u=q/beta; q=a'*u; alpha=norm(q); 38

v=q/norm(q); a=alpha; d=beta; w=v; hi=norm(b); hiba()=norm(a*x-b); k=; while hi>0^-8 && k<=n k=k+; q=a*v-alpha*u; beta=norm(q); u=q/beta; q=a'*u-beta*v; alpha=norm(q); v=q/alpha; e=sqrt(a^2+beta^2); c=a/e; s=beta/e; f=s*alpha; a=c*alpha; g=c*d; d=-s*d; x=x+(g/e)*w; w=v-(f/e)*w; hi=abs(d); hiba=[hiba;hi]; end function [x,hiba]=bicgstab(a,b) n=size(a,); x=zeros(n,); r=b-a*x; r0=r; 39

p=r; r2=r; hiba()=norm(r2); k=; while norm(r2)>0^-8 && k<=n r=r2; mu=dot(r,r0)/dot(a*p,r0); s=r-mu*a*p; om=dot(a*s,s)/dot(a*s,a*s); x=x+mu*p+om*s; r2=s-om*a*s; hiba=[hiba,norm(r2)]; th=mu/om*dot(r2,r0)/dot(r,r0); p=r2+th*(p-om*a*p); k=k+; end 40

Irodalomjegyzék [] Stoyan Gisbert, Takó Galina, Numerikus módszerek., Typotex, 2002 [2] Yousef Saad, Iterative Methods for Sparse Linear Systems, Society for Industrial and Applied Mathematics, 2003 [3] Christopher C. Paige, Michael A. Saunders, LSQR: An Algorithm for Sparse Linear Equations and Sparse Least Squares, ACM Transactions on Mathematical Software, Vol.8, No., 982 4