Eötvös Loránd Tudományegyetem Természettudományi kar Lineáris algebrai egyenletrendszerek iteratív megoldási módszerei Szakdolgozat Készítette: Kis Ágnes Matematika Bsc. Matematikai elemző szakirány Témavezető: Dr. Faragó István egyetemi tanár Alkalmazott Analízis és Számításmatematikai Tanszék Budapest 212
Tartalomjegyzék Köszönetnyilvánítás 3 1. A lineáris egyenletrendszerek algebrai alapjai 4 1.1. Lineáris egyenletrendszerek megoldhatósága.............. 4 1.2. Megoldási módszerek Direkt módszerek................ 5 1.2.1. Gauss-elimináció......................... 5 1.2.2. Cramer-szabály.......................... 8 1.3. A direkt módszerek műveletigénye.................... 1 2. Az iterációs eljárások 12 2.1. Iterációs vagy direkt módszer?...................... 12 2.2. Klasszikus iterációk............................ 14 2.3. Az iterációs módszerek konvergenciája................. 17 3. Relaxációs módszerek 24 3.1. A JOR-módszer.............................. 24 3.2. A Gauss Seidel-iteráció relaxált változatai............... 26 3.3. A módszerek összehasonlítása egy példán................ 28 Összefoglalás 33 Nyilatkozat 35 2
Köszönetnyilvánítás Ezúton szeretném megköszönni témavezetőmnek, Faragó Istvánnak, hogy szakértelmével és hasznos tanácsaival hozzájárult dolgozatom elkészítéséhez, s lelkes hozzáállásával engem is ösztönzött arra, hogy a felmerülő problémákat továbbgondoljam, feldolgozzam. Köszönettel tartozom továbbá családomnak és szeretteimnek, akik támogattak, bíztattak és nyugodt hátteret biztosítottak számomra egyetemi éveim alatt. 3
1. fejezet A lineáris egyenletrendszerek algebrai alapjai 1.1. Lineáris egyenletrendszerek megoldhatósága A matematikában és az élet különböző területein is számos olyan problémával találkozhatunk, amelyek lineáris algebrai egyenletrendszerek megoldására vezetnek. Ilyen feladatok előfordulhatnak többek között a mechanikában, villamosságtanban, ökológiai, gazdasági és más vizsgálatok során. Tipikus példa az ipari termelés, mikor különböző termékeket szeretnénk előállítani különböző nyersanyagokból, vagy a különféle hálózatok mint például villamos hálózatok, víz- vagy gázellátó csőrendszerek, vérkeringés modellezése is példát ad arra, hogy milyen alkalmazásokból származnak a lineáris egyenletrendszerek. A numerikus matematika több feladatát is ilyen lineáris rendszerek megoldására vezethetjük vissza. A nemlineáris rendszerek megoldásához lineáris egyenletrendszereket kell megoldanunk, a differenciál- és integrálegyenletek, valamint az interpolációs és optimalizációs feladatok közelítő megoldása is lineáris rendszerekkel kapcsolatos. A kétpontos peremérték feladatok és a parciális differenciálegyenletek közül az elliptikus egyenletek közelítésének módszere is visszavezethető egy lineáris algebrai egyenletrendszerre. A lineáris algebrai egyenletrendszerek általános alakja a következő. Tegyük fel, hogy adottak a ij és b i számok, és keressük azon x i számokat, melyekre teljesülnek a következő egyenletek, ha i = 1, 2... m és j = 1, 2... n. a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 a m1 x 1 + a m2 x 2 + + a mn x n = b m A feladatot mátrixos alakban is megfogalmazhatjuk. Legyen b m dimenziós vektor, és A m n-es mátrix. Keressük azt az x n dimenziós vektort, mely kielégíti az 4.
Ax = b egyenletet. Az a ij együtthatókból képzett A mátrixot az egyenletrendszer együtthatómátrixának nevezzük. Ha ezt kibővítjük a b vektor b i komponenseiből képzett oszlopvektorral, akkor az egyenletrendszer m n + 1-es kibővített mátrixát kapjuk, amit A b-vel jelölünk. a 11 a 12... a 1n a 21 a 22... a 2n A =... a m1 a m2... a mn a 11 a 12... a 1n b 1 a 21 a 22... a 2n b 2 A b =.... a m1 a m2... a mn b n Lineáris algebrából jól ismert a következő tétel: 1.1.1. Tétel. [2] Freud, 27 Egy Ax = b lineáris egyenletrendszer akkor és csak akkor megoldható, ha az A együttható mátrix és az A b kibővített mátrix rangja megegyezik: ra = ra b. Megoldhatóság esetén a megoldás akkor és csak akkor egyértelmű, ha a közös rang megegyezik az ismeretlenek számával: ra = ra b = n. A továbbiakban feltesszük, hogy az egyenletrendszer mátrixa négyzetes. Ekkor az, hogy az egyenletrendszernek pontosan egy megoldása van, azzal ekvivalens, hogy az együtthatómátrix determinánsa nem egyenlő nullával, illetve a mátrix teljes rangú. Azaz, ha A R n n, akkor:! megoldás deta ra = n. Ekkor az A mátrixnak létezik inverze, és az egyenletrendszer megoldása x = A 1 b. 1.2. Megoldási módszerek Direkt módszerek A lineáris egyenletrendszerek megoldási módszereit két nagy csoportba sorolhatjuk. Ezek az úgynevezett direkt módszerek, és az iterációs eljárások. A direkt módszerek esetén a megoldást véges sok aritmetikai művelet segítségével állítjuk elő. Ha számolásunk minden egyes lépésben pontos, akkor véges számú lépésben az egyenletrendszer pontos megoldásához jutunk. Ilyen direkt eljárások például a Cramerszabály és a Gauss-elimináció. 1.2.1. Gauss-elimináció A Gauss-elimináció vagy más néven Gauss-kiküszöbölés a leggyakrabban használt direkt megoldó módszer. A módszer két részből áll, egy úgynevezett eliminációs részből és a visszahelyettesítésből. Az első lépésben elemi ekvivalens átalakításokkal kiküszöböljük az egyenletrendszerből az ismeretleneket. Azaz az egyenletrendszert olyan alakra hozzuk, hogy az utolsó egyenletben csak az utolsó ismeretlen szerepeljen, az utolsó előttiben az utolsó kettő, és így tovább. Ekkor az együtthatómátrix egy felső háromszögmátrix lesz. Az elemi ekvivalens átalakítások, amiket az elimináció során használhatunk, a következők: 5
Valamelyik egyenletet egy nullától különböző skalárral végigszorozzuk. Valamelyik egyenlethez hozzáadjuk egy másik skalárszorosát. Két egyenletet felcserélünk. Az olyan egyenleteket, ahol minden együttható és a jobboldali konstans is nulla, elhagyjuk. Az eliminációs eljárás után a megoldást az utolsó egyenlettől kezdve, egyszerű visszahelyettesítésekkel kaphatjuk meg. Nézzük az eljárást most részletesen! Tegyük fel hogy az Ax = b egyenletrendszert szeretnénk megoldani, ahol ismert a b R n vektor és az A n n-es mátrix, amire deta, s az ismeretlen x R n vektort keressük. Ekkor az egyenletrendszerünk a következőképpen néz ki: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 a n1 x 1 + a n2 x 2 + + a nn x n = b n. Először az első egyenlet segítségével küszöböljük ki a többi egyenletből x 1 -et a következőképpen: tegyük fel, hogy a 11 és osszuk végig az első egyenletet a 11 -el, majd minden további i-ik egyenletből i > 1 vonjuk ki az így kapott első egyenlet a i1 -szeresét. Az átláthatóság kedvéért vezessünk be néhány új jelölést! Az első egyenlet együtthatói és jobboldala legyen c 1j = a 1j a 11, és y 1 = b 1 a 11. A többi egyenletben az együtthatók és a jobboldalak legyenek a 1 ij = a ij c 1j a i1, és b 1 i = b i y 1 a i1. A felső 1 indexek azt jelölik, hogy ezeket az értékeket az első eliminációs lépés elvégzése után kaptuk. Így az alábbi egyenletrendszerhez jutottunk:. x 1 + c 12 x 2 + + c 1n x n = y 1 x 1 + a 1 22 x 2 + + a 1 2n x n = b 1 2 x 1 + a 1 n2 x 2 + + a 1 nnx n = b 1 n Most a második egyenlet segítségével hasonlóan ejtjük ki x 2 -t minden i > 2-re az i-ik egyenletekből, majd x 3 -at az utolsó n 3 egyenletből és így tovább. Természetesen minden lépésnél feltesszük, hogy az aktuális a k 1 kk együttható, amivel osztunk nem egyenlő nullával. Lássuk, hogyan alakul az együtthatómátrix az elimináció során. 6.
a 11 a 12 a 13... a 1n a 21 a 22 a 23... a 2n A = a 31 a 32 a 33... a 3n....... a n1 a n2 a n3... a nn 1 c 12 c 13... c 1n a 1 22 a 1 23... a 1 2n a 1 32 a 1 33... a 1 3n....... a 1 n2 a 1 n3... a 1 nn 1 c 12 c 13... c 1n 1 c 23... c 2n a 2 33... a 2 3n....... a 2 n3... a 2 nn 1 c 12 c 13... c 1n 1 c 23... c 2n 1... c 3n := C.......... 1 Így az eredeti Ax = b egyenletrendszerből a Gauss-eliminációval az ekvivalens Cx = y egyenletrendszert kaptuk. Mivel az utóbbi egyenletrendszer C mátrixa speciális alakú felső háromszögmátrix, aminek diagonálisában csupa egyesből áll, így az egyenletrendszerből az x i értékek i = n,..., 1 könnyen kifejezhetők. x n = y n x n 1 = y n 1 c n 1,n y n x n 2 = y n 2 c n 2,n y n c n 2,n 1 y n 1. x k = y k l=k+1 c k,l y l Az eljárás során minden lépésnél kihangsúlyoztuk, hogy a főelemek, azaz azok az a k 1 kk együtthatók, melyek segítségével kinulláztuk az alattuk lévő, azonos oszlopban szereplő elemeket, nem lehetnek egyenlők nullával hiszen ha valamelyik főelem nulla lenne, akkor az eljárás nullával osztás miatt nem tudna végigfutni. De nem csak az okozhat problémát, ha egy főelem nulla, hanem az is, ha túlságosan kis abszolútértékű. Az ilyen számmal való osztás során ugyanis olyan nagy lehet a kerekítési hiba, hogy az jelentősen torzítaná a végeredményt. Ezeknek az elkerülésére szolgál az úgynevezett főelemkiválasztás módszere. Tegyük fel, hogy a Gauss-elimináció során az a k 1 kk együttható nulla vagy nagyon kis abszolútértékű. Ekkor alkalmazhatjuk a következő módszerek egyikét: Részleges főelemkiválasztás. Az a k 1 kk főelemmel azonos oszlopban lévő és nagyobb sorindexű elemek közül kiválasztjuk a legnagyobb abszolútértékűt, és ezt sorcserével a főátlóba hozzuk. 7
Teljes főelemkiválasztás. Az a k 1 ij elemek közül ahol i, j k kiválasztjuk a legnagyobb abszolútértékűt, majd sor- és oszlopcserékkel a főátlóba transzformáljuk. Tehát láthatjuk, hogy a főelemkiválasztás a mátrix sorainak és oszlopainak megfelelő átrendezését jelenti. Ezzel a módszerrel minden reguláris mátrix átrendezhető úgy, hogy a Gauss-elimináció végrehajtható legyen. De milyen esetekben nincs szükség főelemkiválasztásra? Azaz milyen mátrixok esetén teljesül automatikusan, hogy a Gauss-elimináció során egyik főelem sem lesz nulla? Erre a kérdésre ad választ a következő tétel. 1.2.1. Tétel. A Gauss-módszer akkor és csak akkor hajtható végre főelemkiválasztás nélkül, ha az A mátrix egyik főminorja sem nulla, azaz deta1 : k, 1 : k k = 1,..., n. Bizonyítás. Mivel a Gauss-elimináció során az egyes sorokból más sorok számszorosait vonjuk ki, a determináns nem változik. Az egyes főminorok: det a 11 = a11, a11 a det 12 1 c12 = det a 21 a 22 a 1 22 = a 1 22,. a 11 a 12 a 13... a 1k 1 c 12 c 13... c 1k a 21 a 22 a 23... a 2k det....... = det 1 c 23... c 2k....... = ak 1 kk. a k1 a k2 a k3... a kk... a k 1 kk Tehát az, hogy az egyes főminorok nem egyenlők nullával, éppen azt jelenti, hogy a főelemek nem nullák. És éppen ez kellett ahhoz, hogy a Gauss-elimináció végrehajtható legyen. 1.2.2. Megjegyzés. A fenti 1.2.1 tétel teljesül, azaz a Gauss-elimináció során nincs szükség főelemkiválasztásra, hogyha az A mátrix: szigorúan diagonálisan domináns, vagy szimmetrikus, pozitív definit, vagy M-mátrix. 1.2.2. Cramer-szabály Egy másik ismert direkt megoldási módszer a Cramer-szabály. Ez a szabály megmutatja, hogy egy olyan négyzetes mátrixú egyenletrendszernek, melynek pontosan egy megoldása van, azaz az együtthatómátrix determinánsa nem nulla, hogyan 8
kaphatjuk meg determinánsok segítségével a megoldását. Látni fogjuk, hogy ez a fajta megoldási módszer nagyon sok számolást igényel, ráadásul csak speciális esetekben alkalmazható, ezért a Cramer-szabálynak elsősorban elméleti jelentősége van, a gyakorlatban ritkán használható. 1.2.3. Tétel. Cramer-szabály Ha A R n n és deta, akkor az Ax = b egyenletrendszernek pontosan egy megoldása létezik. A megoldásban x j = deta j, ahol deta az A j mátrixot úgy kapjuk, hogy az A mátrixban a j-edik oszlop helyére a b vektor komponenseit írjuk. Például: x 2 = a 11 b 1... a 1n a 21 b 2... a 2n...... a n1 b n... a nn a 11 a 12... a 1n a 21 a 22... a 2n...... a n1 a n2... a nn Bizonyítás. Az egyenletrendszernek valóban csak egy megoldása létezik, hiszen a feltétel szerint A determinánsa nem nulla, amiből következik, hogy létezik A 1, tehát az egyenletrendszert balról A 1 -zel szorozva ekvivalens egyenletrendszert nyerünk. Ez az x = A 1 b egyenletrendszer, ami tulajdonképpen már meg is van oldva. Ezzel beláttuk, hogy az eredeti egyenletrendszernek pontosan ez az egy megoldása van. Tehát a tétel igazolásához azt kell megmutatni, hogy deta j kifejezés valóban x deta j-t adja. Legyen most A = [a 1, a 2,..., a n ], ahol a i = [a 1i, a 2i,..., a ni ] T oszlopvektort jelöli. Ekkor A j = [a 1, a 2,..., a j 1, b, a j+1,..., a n ] j {1,..., n}. Az Ax = b azt jelenti, hogy a 1 x 1 +... a n x n = b Így például A 2 determinánsa a következőképpen írható fel: deta 2 = det[a 1, b,..., a n ] = det[a 1, a 1 x 1 +... + a n x n,..., a n ] = = det[a 1, a 1 x 1,..., a n ] + det[a 1, a 2 x 2,..., a n ] +... + det[a 1, a n x n,..., a n ] = = x 1 det[a 1, a 1,..., a n ] + x 2 det[a 1, a 2,..., a n ] +... + x n det[a 1, a n,..., a n ] = = x 2 det[a 1, a 2,..., a n ] = x 2 deta Az utolsó sort azért kaptuk, mert az előtte lévő összegben a második kivételével a determinánsok értéke nulla lett, mert a mátrixoknak volt egy-egy összefüggő oszlopa. A fenti egyenletből tehát megkaptuk, hogy x 2 = deta 2, ami a többi indexre is deta hasonlóan látható. 9
A Cramer-szabálynál nagyon fontos feltétel, hogy az A determinánsa ne legyen nulla. Eleve értelmetlen az x j képletében deta = -val osztani, de ennél több is igaz: ha deta =, akkor az egyenletrendszernek semmiképpen sem létezhet egyértelmű megoldása. 1.2.4. Tétel. Ha A R n n és deta =, akkor az Ax = b egyenletrendszer vagy nem oldható meg, vagy pedig egynél több megoldása van. Most, hogy már tudjuk, hogyan lehet a Cramer-szabály segítségével egyenletrendszereket megoldani, láthatjuk, hogy ez a fajta megoldási módszer nagy mátrixok esetén rengeteg számolást igényel. Ám előfordulhat olyan szélsőséges példa, amikor mégis érdemesebb ezt a módszert választani, mint a Gauss-eliminációt; például, ha nem vagyunk kíváncsiak az egész x vektorra, hanem csak néhány, esetleg egyetlen komponensét szeretnénk meghatározni. 1.3. A direkt módszerek műveletigénye Fontos megvizsgálnunk, hogy egy-egy eljárásnak mekkora a műveletigénye, hiszen a lépésszám ismerete segíthet abban, hogy egy konkrét feladatnál eldönthessük, hogy melyik megoldási módszert érdemes alkalmazni. Vizsgáljuk meg, hogy mennyi a Gauss-módszer egyes lépéseinek műveletigénye! Vegyük először az eliminációs lépést. Tegyük fel, hogy a k-adik főelemmel nullázunk. Ekkor a k-adik sorban a j-edik tagokat j = k + 1,..., n el kell osztani a k 1 kk -el, ez n k lépés. Ezután ha az i-edik sorban akarunk nullázni, akkor először a k-adik sor nemnulla elemeit kell végigszorozni ak 1 ik -val, ez n k + 1 szorzás, majd az a k 1 kk i-edik sor nemnulla elemeiből kell kivonni a k-adik sor így kapott megfelelő elemeit, ez szintén n k + 1 művelet. Tehát ez egy-egy soron 2n k + 1 műveletet jelent, amit összesen n k soron kell majd végrehajtani, mert i = k + 1,..., n. Tehát amikor a k-adik főelemmel nullázunk, akkor összesen n k + 2n k + 1n k lépést hajtunk végre. Ezt kell szummázni az összes főelemre. Így az elimináció lépésszáma: 2n k + 1n k + n k = k=1 2n k 2 + 3n k = k=1 n 1n2n 1 n 1n = 2 + 3 6 2 = 4n3 + 3n 2 7n 6 = 2 3 n3 + On 2. Itt felhasználtuk az első n természetes szám összegére és négyzetösszegére vonatkozó képleteket. A visszahelyettesítés műveletigényéről pedig könnyen látható, hogy éppen 1 + 3 + + 2n 1 = n 2. Tehát a Gauss-elimináció teljes műveletigénye: 2 3 n3 + On 2. 1
1.3.1. Megjegyzés. Nagy méretű egyenletrendszerek esetén a visszahelyettesítés lépésszáma elhanyagolható az elimináció műveletigényéhez képest. A Cramer-szabály műveletigénye ennél jóval nagyobb, hiszen n + 1 különböző determinánst kell kiszámítanunk. Mivel egy-egy determináns kiszámításához n! számú művelet elvégzése szükséges, így a Cramer-szabály teljes műveletigénye: On n!. 11
2. fejezet Az iterációs eljárások 2.1. Iterációs vagy direkt módszer? A gyakorlati feladatoknál a direkt módszerek fő hibája, hogy megoldásuk nagyon sok számolással jár. Ezenkívül felmerül a kérdés, hogy érdemes-e a pontos megoldást kiszámolnunk, amikor általában a mátrix is és a jobb oldal is hibásan van megadva mérési hibák, szándékosan rosszul közölt adatok. A klasszikus iterációs módszerek lényege, hogy egy olyan konvergens sorozatot konstruálnak, melynek a határértéke az Ax = b egyenletrendszer egyértelmű megoldása. Ezt x -gal fogjuk jelölni. Lineáris egyenletrendszerek esetén lineáris iterációkkal foglalkozunk, melyek általában felírhatók x k+1 = Bx k + f, k =, 1,... 2.1 alakban, ahol x adott és a B mátrix függhet k-tól. Azt várjuk, hogy az x k sorozat tartson az x megoldáshoz. A felírásból jól látszik, hogy egy iterációs lépés egy mátrix-vektor szorzásból és egy vektorösszeadásból áll, aminek a műveletigénye 2n 2. Ez azt jelenti, hogy egy egyenletrendszer megoldása során maximum n 3 iterációs lépést hajthatunk végre, ha nem akarjuk meghaladni a Gauss-elimináció 2 3 n3 +On 2 - es lépésszámát. Ez például egy 1 1-as mátrix esetében mindössze 33 lépést jelent. Ám annak az esélye, hogy tetszőleges kezdővektorral ennyi lépés alatt elég közel kerüljünk a megoldáshoz, igen kicsi. Emiatt az iterációs módszereket csak olyan egyenletrendszerek megoldására használjuk, melyek együtthatómátrixa ún. ritka mátrix, azaz olyan mátrix, melyben a nemnulla elemek száma On nagyságrendű. A Gauss-elimináció nem tudja kihasználni a ritka mátrixoknak ezt a jó tulajdonságát, mert az eljárás során a mátrix feltöltődik. Az iteratív módszereknél viszont a mátrix-vektor szorzást nagyban megkönnyíti a sok nullelem. A differenciálegyenletek megoldása során gyakran kapunk ritka mátrixokat, így ezekben az esetekben jól alkalmazhatók az iterációs módszerek. Az itárációs eljárásokkal kapcsolatban felmerülhetnek a következő kérdések: Hogyan válasszuk meg a B iterációs mátrixot? Hogyan válasszuk az f vektort és az x kezdeti vektort? 12
Mikor fog konvergálni a sorozat a megoldáshoz? Mekkora lesz a konvergencia sebessége? Mikor kell leállni az iterációval? Most térjünk vissza a 2.1 iterációs eljáráshoz és vizsgáljuk meg, hogyan juthatunk Ax = b egyenletrendszerből a B iterációs mátrixhoz és f vektorhoz. Legyen ahol P reguláris mátrix. Ekkor amiből az iterációs eljárás A 2.2 kifejezésből még A = P Q, b = Ax = Px Qx Px = Qx + b, Px k+1 = Qx k + b 2.2 x k+1 = P 1 Q x }{{} k + P 1 b. }{{} =B =f Px k+1 x k + Ax k = b alakban is felírhatjuk az iterációt. A P mátrixot prekondicionálási mátrixnak nevezzük. Tekintsük az alábbi differenciálegyenlet rendszert: P dx dt + Ax = b x : R Rn Ha ennek létezik határértéke, azaz olyan x R n, melyre lim t = x, akkor ez az x megoldása az Ax = b egyenletrendszernek. A fenti differenciálegyenlet rendszer diszkretizált alakja: xt + τ xt P + Axt = b, 2.3 τ ahol τ az időegység. Ebből a diszkretizált alakból iterációs eljárást képezhetünk, ha a k iterációszámlálót úgy értelmezzük, mint a diszkrét t időt. Ekkor xt = x k és xt + τ = x k+1. Így a 2.3 egyenletből a következő iterációt kapjuk: P xk+1 x k τ + Ax k = b. Az ilyen felírást az iterációs módszer kanonikus alakjának nevezik. 13
2.2. Klasszikus iterációk Jacobi- és Gauss Seidel-módszer Ahhoz tehát, hogy iterációs módszerekkel dolgozni tudjunk, először keresni kell egy megfelelő konvergens sorozatot. De hogyan találhatunk ilyeneket? Legyen most is Ax = b az egyenletrendszer, aminek a megoldását közelíteni szeretnénk. Továbbra is feltesszük, hogy A R n n és deta. Tudjuk, hogy ekkor az egyenletrendszernek létezik egyértelmű megoldása. Írjuk fel most az egyenletrendszert komponensenként és rendezzük át az alábbi módon: Ax = b a i1 x 1 +... + a in x n = b i, a ii i = 1,..., n i = 1,..., n x i = a i1 x 1... a in x n + b i a ii a ii a ii i 1 a ij a ij x i = x j x j + b i a ii a ii a ii j=1 j=1 j=i+1 A fenti képletből adódik a következő iterációs eljárás: rögzítsük le az x = [x 1, x 2,..., x n ] kezdeti vektort, majd számoljuk ki x 1 1, x 1 2,..., x 1 n értékeket a i 1 x k+1 a ij i = x k a ij j x k j + b i, i = 1,..., n a ii a ii a ii j=i+1 képlet segítségével ahol most k =. Így megkapjuk x 1 = [x 1 1, x 1 2,..., x 1 n ] vektort, azaz az első közelítést. Ennek segítségével k = 1-et behelyettesítve kiszámoljuk a második közelítést, majd k = 2-re a harmadik közelítést és így tovább. Ezt az eljárást Jacobi-iterációnak nevezzük. Egy másik klasszikus iterációs módszer a Gauss Seidel-iteráció. Ez mindössze annyiban különbözik a Jacobi-iterációtól, hogy a k+1-edik közelítés i-edik komponensének kiszámolásához felhasználjuk a k + 1-edik közelítés már addig kiszámolt komponenseit, azaz j = 1, 2,..., i 1-et. Tehát a Gauss Seidel-iteráció vektorkomponensenként kiírva: x k+1 i i 1 = j=1 a ij x k+1 j a ii j=i+1 a ij x k j + b i, a ii a ii i = 1,..., n Az iterációs módszerek felírhatók mátrixos formában is. Írjuk fel az A mátrixot A = A 1 +D+A 2 alakban, ahol D egy olyan diagonális mátrix, melynek főátlójában az A diagonálisában lévő elemek vannak feltehetjük, hogy ezek közül egyik sem, A 1 az A mátrix diagonális alatti, míg A 2 az A mátrix diagonális feletti elemeinek mátrixa. Ekkor az Ax = b egyenletrendszer felírható az alábbi alakban: A 1 + D + A 2 x = b. 14
Ekkor azonos átalakításokkal a következő relációk érvényesek: Dx = A 1 + A 2 x + b x = D 1 A 1 + A 2 x + D 1 b 2.4 A 2.4 kifejezésből származtatható a Jacobi-iteráció mátrixos alakja: x k+1 = D 1 A 1 + A 2 x k + D 1 b, 2.5 }{{}}{{} :=B J f ahol a Jacobi-iteráció iterációs mátrixát B J jelöli. A koordinátás felírásnál láthattuk, hogy a Gauss Seidel-módszer csak annyiban különbözik a Jacobi-iterációtól, hogy a k + 1 -ik közelítésben felhasználjuk a már kiszámolt komponenseket. Ezt a különbséget a mátrixos felírás segítségével is kifejezhetjük: x k+1 = D 1 A 1 x k+1 + A 2 x k + D 1 b. 2.6 Hogy megkapjuk a Gauss Seidel-iteráció mátrixos alakját, rendezzük át ezt az implicit alakot explicitté! x k+1 + D 1 A 1 x k+1 = D 1 A 2 x k + D 1 b D + A 1 x k+1 = A 2 x k + b x k+1 = D + A 1 1 A }{{} 2 x k + D + A 1 1 b, 2.7 }{{} :=B GS f ahol B GS a Gauss Seidel-iteráció iterációs mátrixa. A fenti képletek segítségével az iterációk kanonikus alakja is könnyen felírható. A Jacobi-iteráció kanonikus alakját az alábbi átalakításokkal kaphatjuk meg: x k+1 = D 1 A 1 + A 2 x k + D 1 b Dx k+1 + A 1 + A 2 x k = b Dx k+1 Dx k + A 1 + A 2 x k + Dx k = b Dx k+1 x k + A 1 + A 2 + D x k = b }{{} =A Dx k+1 x k + Ax k = b A Gauss Seidel-iteráció kanonikus alakját pedig a következő módon ál- 15
líthatjuk elő: x k+1 = D + A 1 1 A 2 x k + D + A 1 1 b D + A 1 x k+1 + A 2 x k = b D + A 1 x k+1 D + A 1 x k + A 2 x k + D + A 1 x k = b D + A 1 x k+1 x k + A 2 + D + A 1 x k = b }{{} =A D + A 1 x k+1 x k + Ax k = b Vizsgáljuk meg, hogy a fenti módszerek által előállított vektorsorozatok valóban az Ax = b egyenletrendszer megoldásához konvergálnak-e! 2.2.1. Állítás. Ha a Jacobi-iteráció által előállított x k vektorsorozat konvergens, azaz létezik x, amire lim k x k = x, akkor x megoldása az Ax = b egyenletrendszernek. Bizonyítás. A Jacobi-iteráció kanonikus képletében térjünk át limeszre! lim k [Dxk+1 x k + Ax k ] = D lim x k+1 x k + A lim x k }{{} k = Ax k }{{} = b x x = Tehát a vektorsorozat valóban az egyenletrendszer megoldásához tart. 2.2.2. Megjegyzés. Az állítás hasonlóan belátható a Gauss Seidel-iterációra is: x lim [D + A 1x k+1 x k + Ax k ] = k = D + A 1 lim x k+1 x k + A lim x k = Ax = b. k k Egylépéses módszerek általános alakjai Az eddig megismert két iterációs módszer az úgynevezett egylépéses iterációk közé tartozik. Az egylépéses iterációk általános kanonikus alakja: P k x k+1 x k τ k + Ax k = b, ahol P k R n n adott reguláris mátrixok, τ k pedig adott R-beli paraméterek. A P k mátrixokat érdemes úgy megválasztani, hogy azok könnyen invertálhatóak legyenek, hiszen x k+1 kiszámításához szükség van P k inverzének meghatározására. Ez jól látszik a fenti egyenlet következő átalakításából: P k x k+1 = P k x k τ k Ax k + τ k b = P k τ k Ax k + τ k b x k+1 = P 1 k P k τ k Ax k + P 1 τ kb. k 16
Azokat az iterációs eljárásokat, melyekben minden iterációs lépésnél ugyanazzal a P mátrixszal és τ paraméterrel számolunk, stacionárius iterációknak nevezzük. Képletük: P xk+1 x k + Ax k = b. τ Speciálisan a Jacobi-módszer P = D és τ = 1, a Gauss Seidel-módszer pedig P = D + A 1 és τ = 1 választással a stacionárius iterációk közé tartoznak. Azok az eljárások, melyeknél P az I egységmátrixszal egyenlő, az explicit iterációs eljárások. Ha egy explicit iteráció egyben stacionárius is, azaz x k+1 x k + Ax k = b τ képlettel írható fel, akkor egyszerű iterációnak nevezzük. Ha pedig az explicit iteráció nem stacionárius, azaz x k+1 x k τ k + Ax k = b alakú, akkor pedig Richardson-féle iterációról beszélünk. 2.3. Az iterációs módszerek konvergenciája A fejezet elején már említettük, hogy az iterációs módszerek legfontosabb tulajdonsága, hogy az általuk előállított vektorsorozat konvergens legyen és éppen az Ax = b egyenletrendszer x megoldásához tartson. De milyen feltételeknek kell teljesülnie ahhoz, hogy ez tetszőleges x kezdővektor esetén megvalósuljon? Először egy általános tételt fogunk kimondani a P xk+1 x k τ + Ax k = b 2.8 alakú stacionáris iterációkra. Ehhez vezessünk be néhány fogalmat! Jelölje e k a k-adik közelítővektor és az x megoldás különbségét. Ekkor az e k = x k x vektort a k-adik hibavektornak nevezzük. Az, hogy az x k vektorsorozat tart x -hoz ekvivalens azzal, hogy a hibavektorok sorozata tart nullához: lim k xk = x lim x k x = lim e k =. k k Ha a 2.8 képletbe az x vektorok limeszét helyettesítjük, majd kivonjuk az eredeti képletet, megkapjuk az ún. hibaegyenletet: 17
P x x + Ax = b τ P xk+1 x k + Ax k = b τ = P e k+1 e k τ amit átrendezhetünk következő alakba: + Ae k =, 2.9 Pe k+1 = Pe k τae k = P τae k. 2.1 2.3.1. Állítás. Tegyük fel, hogy A szimmetrikus, szigorúan pozitív definit mátrix és P invertálható, továbbá a P.5τ A mátrix szigorúan pozitív definit, azaz P.5τAx, x > x. Ekkor lim k e k =. Bizonyítás. Jelölje J k := Ae k, e k skaláris szorzatot. Először megmutatjuk, hogy a J k sorozat monoton csökkenő. A 2.1 egyenletet szorozzuk először balról P 1 -zel, majd szintén balról A-val! Pe k+1 = P τae k e k+1 = I τp 1 Ae k 2.11 Ae k+1 = A τap 1 Ae k 2.12 Most a 2.12 egyenlet segítségével fejezzük ki J k+1 -et! J k+1 = Ae k+1, e k+1 2.12 = A τap 1 Ae k, e k+1 2.11 = = A τap 1 Ae k, I τp 1 Ae k = = Ae k, e k τ AP 1 Ae }{{} k, e k τ Ae }{{} k, P 1 Ae k +τ 2 AP 1 Ae }{{} k, P 1 Ae k J k A két -gal jelölt skaláris szorzat megegyezik, hiszen A-ról feltettük, hogy szimmetrikus. Így a kapott egyenlet: J k+1 = J k 2τ Ae k, P 1 Ae k + τ 2 AP 1 Ae k, P 1 Ae k. Vezessünk be egy új jelölést! Legyen y k := P 1 Ae k Py k = Ae k. Helyettesítsük be y k -t és Py k -t a megfelelő helyekre és alakítsuk tovább az egyenletet! 18
J k+1 = J k 2τ Py k, y k + τ 2 Ay k, y k = = J k 2τ Py k, y k.5τ Ay k, y k = = J k 2τ P.5τAy k, y k 2.13 Mivel az állítás feltételei alapján P.5τ A szigorúan pozitív definit mátrix, ezért P.5τAy k, y k >, amiből következik, hogy J k+1 < J k. Továbbá minden J k skaláris szorzat nagyobb nullánál, hiszen A mátrix szigorúan pozitív definit. Tehát a J k sorozat monoton csökkenő és alulról korlátos, ami azt jelenti, hogy létezik határértéke. Jelöljük ezt J -gal. Térjünk most át a 2.13 képletben limeszre: J = lim k J k+1 = lim k [J k 2τ P.5τAy k, y k ] = = lim J k 2τ lim P.5τAy k k k, y k = = J 2τ lim P.5τAy k k, y k. A fenti átalakításból látható, hogy teljesülnie kell a következőnek: lim P.5τAy, y =. 2.14 k k k A következő lépésben szükségünk lesz az alábbi lemmára: 2.3.2. Lemma. Ha C szigorúan pozitív deifinit mátrix, akkor létezik olyan δ > szám, melyre teljesül, hogy Cx, x δ x 2 Ilyen jó δ például a C mátrix legkisebb sajátértéke is. Alkalmazzuk a lemmát C = P.5τA és x = y k választással. P.5τAy k, y k δ y k 2 Az egyenlőtlenség bal oldala 2.14 szerint tart nullához ha k, a jobb oldalon pedig nulla áll, tehát a rendőr-elv miatt δ y k 2 határértéke is nulla, amiből rögtön következik, hogy lim k y k = szintén. Eredetileg y k -t úgy választottuk, hogy y k = P 1 Ae k, amiből e k = A 1 Py k. Ez normában: e k = A 1 Py k A 1 P y k lim e k = A 1 P lim y k k k =. }{{} = Tehát ezzel beláttuk, hogy lim k e k =, azaz a stacionárius iteráció konvergens és az Ax = b egyenletrendszer x megoldásához tart, ha a 2.3.1 állítás feltételei teljesülnek. 19
A Jacobi-iteráció konvergenciája A Jacobi-iteráció konvergenciájára vonatkozó tétel megfogalmazásához szükségünk lesz a szigorúan diagonálisan domináns mátrixok fogalmának definiálására. 2.3.3. Definíció. Egy A R n n mátrixot szigorúan diagonálisan dominánsnak nevezünk, ha minden sorban a főátlóban lévő elem nagyobb, mint az adott sorban lévő összes többi elem abszolútértékének összege, azaz a ii > a ij i = 1,..., n. j=1 j i 2.3.4. Tétel. Ha az A mátrix szimmetrikus és szigorúan diagonálisan domináns, akkor a Jacobi-iteráció konvergens. Bizonyítás. A tételt a 2.3.1 tétel segítségével fogjuk bebizonyítani. Tudjuk, hogy az általános stacionárius iterációból a Jacobi-iterációt a P = D és τ = 1 választással kapjuk. Ezt és a tétel feltételeit figyelembe véve láthatjuk, hogy teljesül a 2.3.1 tétel két feltétele: A szimmetrikus és szigorúan pozitív definit, illetve P invertálható. Tehát csak azt kell belátnunk, hogy P.5τA egy szigorúan pozitív definit mátrix. Ez most azt jelenti, hogy D.5Ax, x > 2D Ax, x > 2Dx, x > Ax, x. A számtani és mértani közepek közötti összefüggésből tudjuk, hogy x 2 i x2 j x2 i + x 2 j 2 a ij x 2 i x2 j a ij x2 i + x 2 j 2 2a ij x i x j 2 a ij x i x j a ij x 2 i + x 2 j = a ij x 2 i + a ij x 2 j a ij x i x j.5 a ij x 2 i +.5 a ij x 2 j. 2.15 Most írjuk fel Ax és x vektorok skaláris szorzatát! 2.15 Ax, x = a ij x i x j.5 a ij x 2 i +.5 i,j=1 i,j=1 a ij x 2 j i,j=1 Az összeg második tagjában felcseréljük a szummákat: Ax, x.5 a ij x 2 i +.5 a ji x 2 i. i,j=1 Mivel A szimmetrikus, ezért a ji = a ij. Ax, x.5 a ij x 2 i +.5 = i=1 x 2 i a ij = j=1 i,j=1 i=1 x 2 i a ii + j,i=1 a ij x 2 i = j,i=1 a ij = j=1 j i i=1 a ij x 2 i = i,j=1 x 2 i a ii + a ij. j=1 j i 2
Mivel A-ról feltettük, hogy szigorúan diagonálisan domináns, ezért n j=1 a ij < a ii, így: Ax, x i=1 x 2 i a ii + a ij < j=1 j i x 2 i 2a ii = 2 i=1 Tehát Ax, x < 2Dx, x és ezzel a tételt beláttuk. Az egyszerű iteráció konvergenciája j i a ii x 2 i = 2 Dx, x. Most azt fogjuk megvizsgálni, hogyan kell megválasztani az egyszerű iterációban a τ paramétert úgy, hogy az iteráció konvergens legyen. Az egyszerű iteráció kanonikus alakját a következőképpen írtuk fel: x k+1 x k + Ax k = b. τ Továbbra is azt az esetet fogjuk vizsgálni, amikor A szimmetrikus, szigorúan pozitív definit mátrix. Ismét a 2.3.1 tételt fogjuk használni a konvergencia bizonyításához. Mivel az A mátrixot szimmetrikus, szigorúan pozitív definitnek választjuk, és a P mátrixnak most az I egységmátrix felel meg, amiről tudjuk, hogy invertálható, így a a 2.3.1 tétel két feltétele teljesül. Tehát már csak azt kell megvizsgálnunk, hogy τ milyen megválasztása esetén lesz az I.5τ A mátrix szigorúan pozitív definit. 2.3.5. Tétel. Szimmetrikus, szigorúan pozitív definit A mátrixokra az egyszerű iteráció τ < 2 λ max esetén konvergens, ahol λ max az A mátrix legnagyobb sajátértéke. Bizonyítás. Mivel az A mátrix szigorúan pozitív definit és szimmetrikus, ezért az összes sajátértéke pozitív és valós. Legyenek < λ 1 λ 2 λ n := λ max az A mátrix sajátértékei. Az I.5τ A mátrix sajátértékeinek felírásához szükségünk lesz az alábbi lemmára: 2.3.6. Lemma. Legyenek A és B n n-es mátrixok. A sajátérékeit jelölje λ i, B sajátértékeit pedik µ j. Ekkor a két mátrix lineáris kombinációjának sajátértékei megegyeznek a mátrixok sajátértékeinek lineáris kombinációjával, azaz i=1 aa + bb sajátérékei: aλ i + bµ j a, b R, akkor és csak akkor, ha a két mátrix kommutál egymással, azaz AB = BA. Ez a feltétel ekvivalens azzal, hogy A és B mátrixok sajátvektorai megegyeznek. Jelen esetben ez nyilvánvalóan teljesül I és A mátrixokra, hiszen A = IA = AI = A. Tehát az I.5τ A mátrix sajátértékei felírhatók a következő alakban: 1.5τλ i, i = 1,, n. 21
Az iteráció akkor konvergens, ha az I.5τ A mátrix szigorúan pozitív definit, ami azt jelenti, hogy az összes sajátértéke pozitív, azaz Ez a feltétel ekvivalens az feltétellel, azaz Tehát valóban τ < 2 λ max 1.5τλ i >, i = 1,, n. 1.5τλ max > τ < 2 λ max. a konvergencia elégséges feltétele. 2.3.7. Állítás. A fenti tétel feltétele nem csak elégséges, hanem szükséges feltétele is a konvergenciának. Bizonyítás. Most azt kell belátnunk, hogy ha τ < 2 λ max nem teljesül, akkor az iteráció nem lehet konvergens. Mivel a konvergencia azt jelenti, hogy tetszőleges x kezdeti vektor esetén tart az iteráció az x megoldáshoz, ezért most elég megmutatnunk azt, hogy létezik olyan x vektor, amire ez nem igaz. Jelöljük v n -nel az A mátrix legnagyob, azaz a λ n = λ max sajátértékéhez tartozó sajátvektort. Ez azt jelenti, hogy Av n = λ n v n. Továbbá legyen a kezdeti vektor x = x + v n. Ekkor a nulladik hibavektor, e éppen v n -nel lesz egyenlő, hisz e = x x = x + v n x = v n. Az egyszerű iteráció hibaegyenlete felírható a 2.9 képletből P = I behelyettesítéssel: e k+1 e k + Ae τ k =. Ebből átrendezéssel a k + 1-ik hibavektorra kapjuk: e k+1 = e k τae k = I τae k. A fenti képlet segítségével fejezzük ki e k -t! Mivel ezért e k = I τae k 1 = I τa 2 e k 2 = = I τa k e = I τa k v n I τav n = v n τav n = v n τλ n v n = 1 τλ n v n, e k = I τa k v n = 1 τλ n k v n. Az iteráció pontosan akkor konvergens, ha lim k e k =. Ez most akkor és csak akkor fog teljesülni, ha 1 τλ n < 1 1 < 1 τλ n < 1. 22
Az egyértelmű, hogy 1 τλ n < 1 teljesül, hiszen τ egy pozitív paraméter és λ n >, hiszen A-ról feltettük, hogy szigorúan pozitív definit. Tehát ahhoz, hogy az iteráció konvergens legyen, teljesülnie kell a 1 < 1 τλ n feltételnek is. Ez a τ < 2 λ n = 2 λ max feltételt eredményezi. Tehát ha τ 2 λ max, akkor létezik olyan kezdeti vektor az x = x + v n, ami esetén az egyszerű iteráció nem konvergens. Ezzel beláttuk, hogy τ < 2 λ max valóban szükséges feltétele is a konvergenciának. 23
3. fejezet Relaxációs módszerek 3.1. A JOR-módszer Ebben a fejezetben olyan iterációs módszerekről lesz szó, melyeket a már eddig megismert klasszikus iterációkból kapunk valamilyen kis módosítással. Az alábbi triviális azonosság tetszőleges iterációs módszerre felírható: x k+1 = x k + x k+1 x k. 3.1 Képezzünk most egy új iterációs eljárást! Vegyük a fenti egyenlőséget és módosítsuk a következőképpen: a jobb oldali x k+1 helyére írjunk egy olyan vektort, melyet a már ismert iterációs módszerek közül valamelyik állít elő a k + 1-ik lépésben, továbbá a jobb oldali zárójeles tagot szorozzuk meg egy tetszőleges ω pozitív paraméterrel. x k+1 = x k + ω x k+1 x k Tekintsük például a Jacobi-iterációt, és tegyük fel, hogy a k-adik lépést már végrehajtottuk, tehát ismerjük x k vektort. Azt a vektort, amit a Jacobi-iteráció következő lépésében állítanánk elő, jelöljük x k+1 J -el. Így definiálhatjuk a következő iterációt: x k+1 = x k + ω x k+1 J x k. 3.2 Nyilván ha ω = 1, akkor a 3.2 szerint x k+1 = x k+1 J, azaz az új iteráció a Jacobi-iterációt eredményezi. Ha viszont ω 1, akkor a fenti módosítás azt jelenti, hogy az adott x k vektorból most is a Jacobi-iteráció által adott x k+1 J vektor irányába lépünk tovább, de az x k+1 J vektortól egy kicsit közelebbi vagy kicsit távolabbi vektorba fogunk jutni attól függően, hogy ω-t kisebbnek vagy nagyobbnak választottuk-e 1-nél. Ha < ω < 1, akkor alulrelaxálásról, ha pedig 1 < ω, akkor túlrelaxálásról beszélünk. A relaxálás szó itt most arra utal, hogy a Jacobi-iteráció képletét nem vesszük olyan szigorúan, kicsit módosítunk rajta. Ezt a módosított iterációt JOR-módszernek nevezzük, iterációs mátrixát B Jω jelöli. 24
A JOR-módszer mátrixos alakját tehát úgy kaphatjuk meg, hogy a fenti képletben x k+1 J helyére a Jacobi-iteráció által előállított k + 1-ik vektor képletét írjuk: x k+1 = x k + ω D 1 A 1 + A 2 x k + D 1 b x k 3.3 x k+1 = [ 1 ωi ωd 1 A 1 + A 2 ] x k + ωd 1 b. 3.4 }{{} B Jω A 3.3 képletből egyszerű átrendezéssel pedig megkapjuk a JOR-módszer kanonikus alakját is: D xk+1 x k ω = A 1 + A 2 x k + b Dx k D xk+1 x k ω + Ax k = b. Az egyértelmű, hogy a módszer ω = 1 esetén milyen feltételek mellett lesz konvergens, hiszen ekkor éppen a Jacobi-iterációt kapjuk vissza. Vizsgáljuk meg, hogy milyen más ω esetén lehet a JOR-módszer konvergens! 3.1.1. Tétel. Szimmetrikus, szigorúan diagonálisan domináns A mátrixokon a JOR-módszer ω, 1] esetén konvergens. Bizonyítás. A Jacobi-iteráció konvergenciájára vonatkozó 2.3.4 tétel bizonyítása során beláttuk, hogy Ax, x < 2 Dx, x. 3.5 A konvergencia bizonyításához most is a 2.3.1 tételt fogjuk használni, P = D és τ = ω szereposztásban. Az hogy az A mátrix szimmetrikus, szigorúan pozitív definit, és D invertálható, teljesül, hiszen A-ról feltettük, hogy szimmetrikus, és szigorúan diagonálisan domináns. Tehát csak azt kell megvizsgálnunk, hogy milyen ω esetén lesz D.5ωA mátrix szigorúan pozitív definit. D.5ωAx, x = Dx, x.5ω Ax, x 3.5 > 3.5 >.5 Ax, x.5ω Ax, x =.5.5ω Ax, x Mivel A szigorúan pozitív definit, ezért Ax, x >, tehát a D.5ωAx, x skaláris szorzat akkor lesz pozitív, ha.5.5ω. Ez nyilván az ω 1 feltételt jelenti. Mivel ω pozitív paraméter, így a tételt beláttuk, a JOR-módszer < ω 1 esetén konvergens. 25
3.2. A Gauss Seidel-iteráció relaxált változatai A Jacobi-módszerhez hasonlóan a Gauss Seidel-iterációnak is létezik relaxált változata. Induljunk el ugyanazon logika alapján, mint az előbb, csak most x k+1 J helyett x k+1 GS vektort helyettesítsük be a 3.2 egyenletbe, ami a Gauss Seideliteráció által k + 1-ik lépésben előállított vektort jelöli. Ekkor a következő iterációt kapjuk: x k+1 = x k + ω x k+1 GS x k. 3.6 A fenti képletbe az x k+1 GS helyére először a 2.7 explicit egyenlettel felírt Gauss Seidel-iteráció által előllított k + 1-ik vektort helyettesítettem be. Így az alábbi egyenletet kaptam: x k+1 = x k + ω D + A 1 1 A 2 x k + D + A 1 1 b x k, amiből az új iteráció mátrixos alakja: x k+1 = [ ] 1 ωi ωd + A 1 1 A 2 x k + ωd + A 1 1 b, 3.7 }{{} :=B GSOR a kanonikus alakja pedig D + A 1 xk+1 x k = A 2 x k + b D + A 1 x k ω átrendezés következtében: D + A 1 xk+1 x k ω + Ax k = b. 3.8 Ám a szakirodalomban mégsem a fenti módszert szokták a Gauss Seidel-iteráció relaxált változataként emlegetni. A 3.8 kanonikus képlettel leírható módszert a továbbiakban GSOR-módszernek fogom nevezni. A Gauss Seidel-iteráció ismert relaxált változatát, vagyis az úgynevezett SORmódszert akkor kapjuk meg, ha a 3.6 képletben x k+1 GS helyére a Gauss Seideliteráció 2.6 implicit képletének jobb oldalát helyettesítjük. x k+1 = x k + ω D 1 A 1 x k+1 + A 2 x k + D 1 b x k x k+1 + ωd 1 A 1 x k+1 = x k + ω D 1 A 2 x k + D 1 b x k Dx k+1 + ωa 1 x k+1 = Dx k + ω A 2 x k + b Dx k 3.9 A 3.9 egyenletből a következő átrendezéssel kapjuk a SOR-módszer mátrixos alakját: D + ωa 1 x k+1 = [1 ωd ωa 2 ] x k + ωb x k+1 = D + ωa 1 1 [ω 1D + ωa 2 ] }{{} x k + ωd + ωa 1 1 b, 3.1 :=B GSω 26
ahol B GSω a SOR-módszer iterációs mátrixa. A 3.9 egyenletből a kanonikus alakot is kifejezhetjük: D + ωa 1 x k+1 = Dx }{{ k + ω A } 2 Dx k +ωb }{{} +ωa 1 x k ωa 1 x k D + ωa 1 x k+1 = D + ωa 1 x k ωa 2 + D + A 1 x k + ωb D + ωa 1 xk+1 x k + Ax k = b. 3.11 ω A Gauss Seidel-módszer relaxált változatainál is fontos kérdés, hogy ω milyen értéke esetén konvergensek. Először lássuk a SOR-módszer konvergenciájára vonatkozó ismert tételt. 3.2.1. Tétel. Kahan-tétel Tegyük fel, hogy A szimmetrikus, szigorúan pozitív definit mátrix. Ekkor a SOR-módszer ω, 2 esetén konvergens. Bizonyítás. Tekintsük az A = A 1 +D+A 2 felbontást. Mivel A szimmetrikus, ezért A T 2 = A 1 és mivel A szigorúan pozitív definit, ezért a diagonálisában lévő elemek pozitívak, azaz D >. Ezek segítségével fejezzük ki az Ax, x skaláris szorzatot: Tehát Ax, x = A 1 + D + A 2 x, x = A 1 x, x + Dx, x + A 2 x, x = = A 1 x, x + Dx, x + x, A T 2 x = A 1 x, x + Dx, x + A 1 x, x. Ax, x = 2 A 1 x, x + Dx, x. 3.12 A bizonyításhoz használjuk a 2.3.1 tétel konvergenciára vonatkozó elégséges feltételét, azaz P.5τA > P.5τAx, x >, ahol most P = D + ωa 1, τ = ω. Lássuk, mikor fog ez teljesülni! P.5τAx, x = Px, x.5τ Ax, x = = D + ωa 1 x, x.5ω[2 A 1 x, x + Dx, x ] = = Dx, x + ω A 1 x, x ω A 1 x, x.5ω Dx, x = 1.5ω Dx, x Tehát a konvergenciához az kell, hogy 1.5ω Dx, x > teljesüljön. Mivel D >, így Dx, x >. 1.5ω pedig akkor lesz pozitív, ha ω < 2. Tehát a SOR-módszer valóban akkor lesz konvergens, ha ω, 2. 3.2.2. Következmény. Szimmetrikus, szigorúan pozitív definit A mátrixokra a Gauss Seidel-módszer konvergens. 27
Most pedig vizsgáljuk meg, hogy vajon a GSOR-módszer konvergenciájának is ugyanez a feltétele, vagy ez az iteráció más ω értékek esetén konvergens. Továbbra is tegyük fel, hogy A szimmetrikus, szigorúan pozitív definit mátrix. Mint az előbb, most is azt kell vizsgálnunk, hogy P.5τAx, x > feltétel teljesül-e. Itt P = D + A 1 és τ = ω. D + A 1.5ωAx, x = Dx, x + A 1 x, x.5ω Ax, x Felhasználva a Kahan-tétel bizonyításában levezetett 3.12 egyenlőséget A 1 x, x = Ax, x Dx, x 2 teljesül. Így a fenti egyenlőség tovább írható a következőképpen: Ax, x Dx, x Dx, x +.5ω Ax, x = 2 =.5 Dx, x +.5.5ω Ax, x Mivel A szigorúan pozitív definit, így Ax, x és Dx, x skaláris szorzatok pozitívak. Tehát ahhoz, hogy D + A 1.5ωAx, x > legyen, a.5.5ω feltételnek kell teljesülnie. Ezt átrendezve az 1 ω feltételt nyerjük. Tehát a GSOR-módszer ω, 1] esetén konvergens. 3.3. A módszerek összehasonlítása egy példán Ebben a részben az eddig megismert három relaxációs módszert egy konkrét példán fogjuk összehasonlítani. A példát David M. Young [4] könyvének mintafeladata és a hozzá tartozó 3. számú gyakorlat alapján állítottam össze. Jelölések: Legyen Ω := [, 1] [, 1] tartomány, azaz az egységnégyzet. Jelöljük Ω belsejét Ω-val, határát pedig Ω-val. Feladat. Keresünk egy olyan ux, y függvényt, amely folytonos az Ω tartományon, kétszer folytonosan differenciálható Ω-n és kielégíti az alábbi Poisson-egyenletet: 2 u x + 2 u = Gx, y := x + y + 1 x, y Ω 3.13 2 y2 ux, y = gx, y := 1 + x 2 x, y Ω. 3.14 28
Határozzuk meg a numerikus megoldást h = 1 rácsállandóval, ha a kezdeti közelítőértékek nullák! 3 Először nézzük meg, hogyan adódik lineáris egyenletrendszer a feladat numerikus megoldásából a véges differenciák módszerével. Helyezzünk négyzetrácshálót a tartományra úgy, hogy az egyenesek párhuzamosak legyenek a tengelyekkel, a négyzetek oldala, azaz a rácsállandó pedig legyen h. Ekkor az x, y rácspontban a másodrendű parciális deriváltakat a következő differenciahányadosokkal közelítjük: 2 u ux + h, y + ux h, y 2ux, y x2 h 2 2 u ux, y + h + ux, y h 2ux, y. y2 h 2 Ha a 3.13 egyenletben a parciális deriváltak helyére a differenciahányadosokat írjuk, majd h 2 -tel végigszorzunk, a következő differenciaegyenletet kapjuk: 4ux, y ux + h, y ux h, y ux, y + h ux, y h = h 2 Gx, y. 3.15 Ez az egyenlet a 3.14 peremfeltétellel együtt a feladat diszkrét megfelelője. Feladatunkban a rácsállandó h = 1. Az ehhez tartozó rácshálót az alábbi ábra 3 szemlélteti: 3.1. ábra. A 3.1. ábra és a 3.15 egyenlet segítségével minden belső pontra fel tudunk írni egy lineáris egyenletet. A perempontok értékét a peremfeltétel szabja meg. Írjunk fel tehát a belső rácspontokra egy négy ismeretlenes lineáris egyenletrendszert! 4u 1 u 2 u 6 u 3 u 16 = Gu 1 4u 2 u 13 u 1 u 4 u 15 = Gu 2 4u 3 u 4 u 7 u 9 u 1 = Gu 3 4u 4 u 12 u 3 u 1 u 2 = Gu 4 29
Helyettesítsünk u i helyére gu i -t, ha u i perempont vagyis i = {5, 6,, 16}, majd rendezzük bal oldalra az ismeretleneket, a jobb oldalakat pedig számítsuk is ki! 4u 1 u 2 u 3 = Gu 1 + gu 6 + gu 16 = G 1 3, 1 3 + g, 1 3 + g1 29, = 3 9 4u 2 u 1 u 4 = Gu 2 + gu 13 + gu 15 = G 2 3, 1 3 + g1, 1 3 + g2 49, = 3 9 4u 3 u 4 u 1 = Gu 3 + gu 7 + gu 9 = G 1 3, 2 3 + g, 2 3 + g1 37, 1 = 3 9 4u 4 u 3 u 2 = Gu 4 + gu 12 + gu 1 = G 2 3, 2 3 + g1, 2 3 + g2 28, 1 = 3 9 Ezek alapján fel tudjuk írni, az Ax = b egyenletrendszert: 4 1 1 u 1 29 1 4 1 u 2 1 4 1 u 3 = 1 49 9 37. } 1 1 {{ 4 u 4 }}{{} } 28 {{} =A =x =b Ennek az egyenletrendszernek persze könnyen kiszámolható a pontos megoldása: 43 x = A 1 b = 1 494 216 422 2.287. 397 1.838 Most pedig vizsgáljuk meg, hogyan közelítik a relaxációs eljárások a pontos megoldást! A 3.4, 3.1 és 3.7 egyenleteket felhasználva mind a három módszerre írtam egy eljárást Matlabban. Ezeket az eljárásokat futtattam le különböző ω értékekre, majd a kapott eredményeket összefoglaló táblázatokba írtam. ω=.5 JOR-módszer SOR-módszer GSOR-módszer k=5 k=1 k=5 k=1 x k e k x k e k x k e k 1.3941 1.814 1.4875 1.3672 1.7539 2.175 1.842 1.7261 2.287 1.838 2.287 1.838.4716.4767.4662.477.1119.112.1117.1118.1125 1 5.1125.1125.1125.6364 1 12.6364.6368.6368 1.4426 1.914 1.5911 1.5227 1.7871 2.222 1.8872 1.7816 2.287 1.838 2.287 1.838.4231.373.3626.3152.787.668.665.564.9266 1 7.7812.7812.6586.3553 1 14.2665.2665.2442 1.4966 2.297 1.768 1.6876 1.827 2.2613 1.9283 1.8244 2.287 1.838 2.287 1.838.3692.2573.2469.153.451.258.254.136.367 1 9.184.184.92 3
Először ω =.5 érték mellett teszteltem. A táblázatból jól látszik, hogy az összes módszer viszonylag gyorsan konvergál a pontos megoldáshoz. Ez nem is meglepő, hiszen beláttuk, hogy a JOR- és a GSOR-módszer ω, 1], a SOR-módszer pedig ω, 2 esetén konvergens. A táblázatból az is leolvasható, hogy ezen a konkrét feladaton a GSOR-módszer konvergál a leggyorsabban a megoldáshoz. ω=1 JOR-módszer SOR-módszer GSOR-módszer k=5 k=1 k=5 k=1 x k e k x k e k x k e k 1.7995 2.2292 1.8958 1.7717 1.8639 2.285 1.9516 1.8362 2.287 1.838 2.287 1.838.663.579.579.663.18.21.21.18.1554 1 14.1332.1554.1776 1.861 2.2842 1.959 1.8365 2.287 1.838 2.287 1.838 2.287 1.838.57.28.28.14.5528 1 5.2764.2764.1382 1.861 2.2842 1.959 1.8365 2.287 1.838 2.287 1.838 2.287 1.838.57.28.28.14.5528 1 5.2764.2764.1382 Másodszor az ω = 1 esetet teszteltem, tehát a JOR-módszer itt valójában a Jacobi-iterációt, a SOR- és a GSOR-módszerek pedig a Gauss Seidel-iterációt adták. A táblázatban is látszik, hogy utóbbi kettő lefuttatása után valóban ugyanazokat a közelítő vektorokat kaptuk. ω=1.5 JOR-módszer SOR-módszer GSOR-módszer k=5 k=1 x k e k x k e k x k e k 1.4545 2.7 2.3563 1.4259 3.1161 1.365.735 3.884 948.7 944.6 k=5 944.9 948.7 6.599 k=1 1 8 6.599 6.599 6.599.4112.413.426.4121 1.254 1.256 1.252 1.254 946.9 946.9 946.9 946.9 6.599 1 8 6.599 6.599 6.599 1.9812 2.3583 2.145 1.8667 1.8615 2.2858 1.9528 1.8381 2.287 1.838 2.287 1.838.1154.712.68.287.43.13.9.1.2665 1 14.1332.1554.444 1.9254 2.268 1.9243 1.852 1.8582 2.2876 1.9546 1.8376 2.287 1.838 2.287 1.838.596.19.294.122.76.6.9.4.4796 1 13.133.133 31
Végül ω = 1.5 esetén futtattam le az eljárásokat. A korábban leírt konvergenciára vonatkozó bizonyítások alapján csak a SOR-módszerről mondható el biztosan, hogy emellett az ω érték mellett konvergens, amit a kísérlet ki is mutatott. A JORmódszer láthatóan használhatatlan ilyen ω-val, már a századik iterációs lépésben 1 8 nagyságrendű a megoldástól való eltérés. Ellenben a GSOR-módszer ezen a feladaton, az adott kezdeti vektorral nagyon jól közelíti a megoldást. A fenti eredmények alapján úgy gondolom, érdemes lehet a továbbiakban is foglalkozni a GSOR-módszerrel; megvizsgálni, hogyan működik a módszer nagyobb méretű mátrixokon, illetve hogy lehet-e olyan konvergencia-tételt megfogalmazni és bizonyítani, ami szerint nem csak az ω, 1], hanem ennél tágabb intervallumon is konvergens az iteráció. 32
Összefoglalás Az élet különböző területein számos olyan probléma merül fel, mely lineáris algebrai egyenletrendszerek megoldására vezet vissza. Általában igen nagy méretű egyenletrendszereket kell ezek során megoldanunk, ezért nagyon fontos az, hogy ismerjük azokat a numerikus eljárásokat, melyek gyorsan és kis hibával megtalálják ezeknek az egyenletrendszereknek a megoldását. Szakdolgozatomban bemutattam néhány olyan módszert is, amikkel direkt módon lehet megkeresni a pontos megoldást, és azt is megmutattam, hogy ezek műveletigénye igen nagy, s emiatt van szükség a numerikus módszerekre. Ezután bemutattam a klasszikus iteratív eljárásokat, amikkel kapcsolatban néhány konvergenciára vonatkozó tételt és azok bizonyítását is ismertettem. Végül a Jacobi-iteráció és a Gauss Seidel-iteráció relaxálásával foglalkoztam. Megmutattam, hogyan állnak elő az ismert relaxációs módszerek, a JOR- és a SORmódszer. Szintén leírtam ezeknek az eljárásoknak a konvergenciájáról szóló tételeket és azok bizonyítását. A munka közben témavezetőmmel felismertük a Gauss Seideliteráció egy másik fajta relaxálását, amit GSOR-módszernek neveztünk el. Leírtam, hogy ez a módszer hogyan áll elő a Gauss Seidel-iterációból, s megfogalmaztam egy, a módszerre vonatkozó konvergencia-kritériumot. Egy konkrét példán összehasonlítottam a három relaxációs módszer működését. Ez a kísérlet arra ösztönöz, hogy az új, GSOR-módszerrel a továbbiakban is érdemes lesz foglalkozni, s megvizsgálni, hogy más példákon, nagyobb egyenletrendszereken is olyan jól működik-e, mint az általam vizsgált feladat megoldása során. 33
Irodalomjegyzék [1] Faragó István, Horváth Róbert: Numerikus módszerek, Typotex 211 [2] Freud Róbert: Lineáris algebra, ELTE Eötvös Kiadó 27 [3] Stoyan Gisbert, Takó Galina: Numerikus módszerek I., Typotex 25 [4] David M. Young: Nagy lineáris rendszerek iterációs megoldása, Műszaki Könyvkiadó 1979 [5] Faragó István: Alkalmazott analízis 1-2, előadás jegyzet 34
NYILATKOZAT Név: Kis Ágnes ELTE Természettudományi Kar, szak: Matematika BSc ETR azonosító: KIARABT.ELTE Szakdolgozat címe: Lineáris algebrai egyenletrendszerek iteratív megoldási módszerei A szakdolgozat szerzőjeként fegyelmi felelősségem tudatában kijelentem, hogy a dolgozatom önálló munkám eredménye, saját szellemi termékem, abban a hivatkozások és idézések standard szabályait következetesen alkalmaztam, mások által írt részeket a megfelelő idézés nélkül nem használtam fel. Budapest, 212. május 31. a hallgató aláírása