Moderné metódy riešenia veľkých sústav lineárnych rovníc: Rozdiel medzi revíziami
Riadok 9: | Riadok 9: | ||
|Mechatronika | |Mechatronika | ||
}} | }} | ||
− | {{Praca_uvod|1|Moderné metódy riešenia veľkých sústav lineárnych rovníc|Sústavy lineárnych rovníc a matice|Klasické metódy riešenia sústav lineárnych rovníc|Priame metódy pre riešenie veľkých sústav rovníc|Moderné metódy riešenia veľkých sústav | + | {{Praca_uvod|1|Moderné metódy riešenia veľkých sústav lineárnych rovníc|Sústavy lineárnych rovníc a matice|Klasické metódy riešenia sústav lineárnych rovníc|Priame metódy pre riešenie veľkých sústav rovníc|Moderné metódy riešenia veľkých sústav rovníc|Softvérové balíky pre riešenie veľkých lineárnych systémov||||||||||}} |
{{abstrakt | {{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. | |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. |
Verzia zo dňa a času 20:55, 30. máj 2010
![]() |
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky |
![]() |
Autor: | Bc. Peter Poruban |
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
|
Obsah
Ú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 mn je sústava mn čísiel, ktoré sú usporiadané v tvare obdĺžnikovej tabuľky. Všeobecná matica typu m
n 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.
Potom môžeme danú maticu zapísať nasledovne:
kde je blok matice Aij tvorený prvkami matice A:
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].