Moderné metódy riešenia veľkých sústav lineárnych rovníc

Z Kiwiki
Verzia z 20:05, 30. máj 2010, ktorú vytvoril Repto (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání
Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

Tnu wiki.png
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky
Fm wiki.png
Moderné metódy riešenia veľkých sústav lineárnych rovníc

zadanie práce
Ročníková práca


Autor:
Pedagogický vedúci: Ing. Michal Štepanovský, PhD
Študijný odbor: Mechatronika

Akademický rok 2009/2010

Abstrakt

Práca sa zaoberá metódami vhodnými pre riešenie veľkých sústav lineárnych rovníc. Prvá časť sa zaoberá klasickými metódami pre riešenie sústav lineárnych rovníc. V ďalšej časti sú opísané priame metódy riešenia veľkých sústav . Tretia časť sa venuje moderným iteračným metódam. V práci sa podrobne zaoberáme metódou konjugovaných gradientov a geometrickou multigridovou metódou. Pre tieto dve metódy sme vypracovali ukážkové príklady riešenia. Posledná časť sa zaoberá využitím týchto metód.

Abstract

Úvod

V technickej praxi je častou úlohou riešiť sústavu lineárnych rovníc Ax= b s maticou rádu n, kde n je veľké číslo. Rozmery týchto matíc môžu byť rádovo v státisícoch, ale aj väčšie. Pri takýchto sústavách lineárnych rovníc sú niektoré tradičné metódy nepoužiteľné alebo sú neefektívne a časovo náročné. Taktiež niektoré z nich môžu pri maticiach veľmi veľkých rozmerov alebo zle podmienených maticiach zlyhať. Stretávame sa s dvomi typmi systémov lineárnych rovníc. Systém lineárnych rovníc sa nazýva plný, ak väčšina prvkov je nenulová. Naopak riedke systémy sú také, kde len relatívne málo prvkov je nenulových. Pre riešenie riedkych systémov možno využiť ich vlastnosti. Vďaka tomu možno riešiť prostredníctvom niektorých algoritmov tieto matice efektívnejšie. Veľké riedke systémy je v technickej praxi veľmi často potrebné riešiť, napr. pri riešení parciálnych diferenciálnych rovníc. Metódy pre riešenie lineárnych rovníc delíme na priame metódy a iteračné metódy. Priame metódy vedú k riešeniu po konečnom počte krokov. Naopak iteračné metódy konvergujú k riešeniu a presnosť riešenia je závislá od počtu iterácií . Priame metódy sú všeobecne vhodnejšie pre plné matice, naopak pre riedke systémy sú vhodné iteračné metódy. Známe sú klasické priame metódy ako Cramerovo pravidlo, použitie inverznej matice a Gaussova eliminačná metóda. Tieto však nie sú pre systémy veľkých rozmerov vhodné. Taktiež sú známe klasické iteračné algoritmy ako je Jacobiho metóda a Gauss Seidelova metóda. Tieto sú vhodné aj pre riedke matice veľkých rozmerov. Pre priame riešenie veľkých sústav je známych niekoľko algoritmov. V tejto práci je opísaný LU rozklad a Choleského rozklad. Tieto rozklady sa v rôznych obmenených podobách používajú pre priame riešenie veľkých sústav lineárnych rovníc. V posledných desaťročiach bolo vypracovaných niekoľko moderných iteračných algoritmov pre riešenie veľkých sústav lineárnych rovníc. V práci sa zaoberáme gradientnými metódami a multigridovými metódami. Metóda konjugovaných gradientov konverguje k riešeniu rýchlejšie ako klasické iteračné metódy a je výhodná hlavne pre symetrické kladne definitné matice. Naopak, metóda bikonjugovaných gradientov a metóda GMRES sú vhodné aj pre nesymetrické matice. Multigridové metódy patria medzi najrýchlejšie iteračné metódy. Zlepšujú konvergenciu tým, že sa daná úloha opísaná určitou sieťou vyrieši najprv pre redšiu sieť a potom sa toto riešenie použije pri hľadaní riešenia v hustejšej sieti.


Sústavy lineárnych rovníc a matice

V tejto časti sú opísané základné pojmy lineárnej algebry , ktoré súvisia s výpočtom sústav lineárnych rovníc . Taktiež sú tu opísané rôzne tvary matíc, ktoré sa používajú pri riešení sústav lineárnych rovníc.

Systémy lineárnych rovníc

Riešenie sústav lineárnych rovníc patrí medzi najdôležitejšie časti matematiky. Množstvo praktických úloh nakoniec vedie k riešeniu takýchto sústav. Tieto sústavy môžu byť často veľmi rozsiahle. Vtedy je n veľké číslo. Systém n - lineárnych rovníc:

[math] \begin{matrix} a_{11}x_1+a_{12}x_2+...+a_{1n}x_n\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n\\ .\\ .\\ .\\ a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n \end{matrix} [/math](1.1)


s neznámymi x_1,x_2,...,x_n.

Matica A(i,j) , kde i,j=1,..... n, sa nazýva maticou sústavy stĺpcový vektor b =(b1, ...., bn)^T vektor pravých strán . Sústavu lineárnych rovníc môžeme zapísať v tvare

[math]Ax=b[/math]

kde [math] A= \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn} \end{bmatrix}, x= \begin{bmatrix} x_{1}\\ \vdots\\ x_{n} \end{bmatrix}, b= \begin{bmatrix} b_{1}\\ \vdots\\ b_{n} \end{bmatrix} [/math](1.2)

Rozlišujeme dva základné typy matíc sústav lineárnych rovníc:

Plné
systémy, kde je väčšina prvkov nenulových
Riedke
kde je naopak väčšina prvkov rovná nule. Túto ich vlastnosť možno využiť na riešenie prostredníctvom menšieho počtu krokov [4] [5].

Matice

Matica typu mUntitled 1 html 4e44f889.pngn je sústava mn čísiel, ktoré sú usporiadané v tvare obdĺžnikovej tabuľky. Všeobecná matica typu mUntitled 1 html 4e44f889.pngn je opísaná nasledovne:

A=Súbor:Untitled 1 html m7af6f254.png

Prvok v i-tom riadku a j-tom stĺpci označujeme Súbor:Untitled 1 html m49e52707.png (i=1, ..., m , j=1, ..., n)sú reálne prvky matice.

Matica A=Súbor:Untitled 1 html m6a6585d2.pngsa nazýva štvorcová ak m=n, teda ak má rovnaký počet riadkov a stĺpcov.

A=Súbor:Untitled 1 html 2dcaaa4e.png

Dôležitou štvorcovou je tzv. identická alebo jednotková matica. Jednotková matica má na diagonále jednotky a ostatné prvky u nulové. Označujeme ju písmenom I.

I=Súbor:Untitled 1 html 7d6b44a2.png

Pri násobení matíc má identická matica postavenie analogické číslu 1 pri násobení reálnych čísel. A*I=I*A=A

Transponovaná matica , je matica ktorá vznikne vymenením prvkov pôvodnej matice. Vymení sa súradnica riadku za súradnicu stĺpca. Potom transponovaná matica k matici A je :

AT=Súbor:Untitled 1 html 39d2bb89.png

Inverzná matica Súbor:Untitled 1 html m7e0b28e3.png k štvorcovej Súbor:Untitled 1 html 696253c7.png matici A je taká , pre ktorú platí Súbor:Untitled 1 html m5456b175.png , kde I je identická matica typu Súbor:Untitled 1 html 696253c7.png. K matici A existuje inverzná matica vtedy, keď je determinant matice A nenulový. Matica, ku ktorej existuje inverzná matica sa nazýva regulárna matica[5][6].

Diagonálne matice

Diagonálna matica A je štvorcová matica typu n x n ktorá má nenulové prvky na hlavnej diagonále.


Existujú aj bidiagonálne a trojdiagonálne matice. Bidiagonálna matica je taká diagonálna matica, ktorá má ešte navyše nenulové horné (horná bidiagonálna matica) alebo dolné susedné prvky k diagonále (dolná bidiagonálna matica).


Horná bidiagonálna matica Dolná bidiagonálna matica

Súbor:Untitled 1 html 6c55de17.png Súbor:Untitled 1 html m1022a49c.png


Ak sú nenulové horné aj dolné susedné prvky ku diagonálne, vtedy hovorí o trojdiagonálnej matici.

Súbor:Untitled 1 html m7667af1.png


Na rozdiel od trojdiagonálnych systémov, ktoré majú nenulové prvky len na diagonále

plus a mínus jeden, skupinovo diagonálne systémy sú všeobecnejšie. Majú m1 ≥ 0 nenulových prvkov priamo vľavo(pod)od diagonály a m2 ≥ 0 nenulových prvkov napravo(nad)od diagonály[6]. Diagonály nachádzajúce sa nad hlavnou diagonálou sa nazývajú superdiagonály. Subdiagonály sú naopak diagonály, ktoré sa nachádzajú pod hlavnou diagonálou.


Trojuholníkové matice

Trojuholníkové matice sú také matice, kde všetky prvky pod alebo nad diagonálou sú

nulové. Keď sú nulové prvky nad diagonálou hovoríme o dolnej trojuholníkovej matici, a naopak keď sú nulové prvky pod hlavnou diagonálou hovoríme o hornej trojuholníkovej matici .


Dolná trojuholníková matica Horná trojuholníková matica

Súbor:Untitled 1 html mad4a9fb.png Súbor:Untitled 1 html 73ceb1e2.png

[5][6]

Blokové matice

Blokové matice sa používajú pre zjednodušenie počítania s maticami veľkých rozmerov.

Bloková matica je nejaká maticu A, ktorú rozdelíme na bloky Súbor:Untitled 1 html 1762b84b.png.

Majme nasledovnú maticu A.

A = Súbor:Untitled 1 html 4ffcae58.png


Potom môžeme danú maticu zapísať nasledovne:

A=Súbor:Untitled 1 html m21ac2751.png

kde je blok matice Aij tvorený prvkami matice A:

A11 = Súbor:Untitled 1 html m3d3ac50a.png A12 = Súbor:Untitled 1 html 4a93fe51.png

A21 = Súbor:Untitled 1 html m12099fb8.png A22 = Súbor:Untitled 1 html 757e3860.png

[3][6]

Ortogonálne matice

Ortogonálna matica (matica s ortonormálnymi stĺpcami) je matica so stĺpcami jednotkovej dĺžky, ktoré sú na seba kolmé. Matica typu Súbor:Untitled 1 html 696253c7.png je ortogonálna, ak Súbor:Untitled 1 html 12aad0e5.png. Podľa tejto rovnice má matica Q inverznú maticu a  platí Súbor:Untitled 1 html m5665d8ff.png . Potom platí Súbor:Untitled 1 html m34195d4f.png<nowiki>. Potom tieto tri vzťahy sú ekvivalentné a môžeme ich považovať za definíciu ortogonálnej matice [6].