You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Gaussova</strong> <strong>eliminace</strong><br />
ˇReˇsíme soustavu Ax = b, kde<br />
⎡<br />
2<br />
⎢<br />
A = ⎢ −4<br />
⎣ 8<br />
−4<br />
5<br />
−22<br />
0<br />
1<br />
7<br />
⎤<br />
6<br />
−8 ⎥<br />
30 ⎦<br />
6 −3 22 2<br />
b =<br />
⎡<br />
⎢<br />
⎣<br />
<strong>Gaussova</strong> <strong>eliminace</strong>, <strong>LU</strong> <strong>rozklad</strong><br />
−14<br />
16<br />
−73<br />
23<br />
1. Pˇrím´y chod<br />
Napíˇseme rozˇsíˇrenou matici soustavy (A|b), kterou pomocí ekvivalentních<br />
úprav pˇrevedeme do horního trojúhelníkového tvaru. Nejdˇrív postupně pˇričítáme<br />
první ˇrádek, vynásoben´y vˇzdycky vhodn´ym číslem, k ostatním ˇrádk˚um tak, abychom<br />
v prvním sloupci dostali pod hlavní diagonálou samé nuly. Číslo, kter´ym<br />
jsme museli první ˇrádek vynásobit, abychom dostali nulu v k-tém ˇrádku, si<br />
napíˇseme vlevo vedle k-tého ˇrádku (pro pozdějˇsí vyuˇzití):<br />
2<br />
−4<br />
−3<br />
⎡<br />
⎢<br />
⎣<br />
2 −4 0 6 −14<br />
−4 5 1 −8 16<br />
8 −22 7 30 −73<br />
6 −3 22 2 23<br />
⎤<br />
⎥<br />
⎦ ∼<br />
−2<br />
3<br />
⎡<br />
⎢<br />
⎣<br />
⎤<br />
⎥<br />
⎦<br />
x =<br />
⎡<br />
⎢<br />
⎣<br />
x1<br />
x2<br />
x3<br />
x4<br />
⎤<br />
⎥<br />
⎦<br />
2 −4 0 6 −14<br />
0 −3 1 4 −12<br />
0 −6 7 6 −17<br />
0 9 22 −16 65<br />
Postup opakujeme pro druh´y ˇrádek a druh´y sloupec a pak pro tˇretí ˇrádek a<br />
sloupec:<br />
∼<br />
−5<br />
⎡<br />
⎢<br />
⎣<br />
2 −4 0 6 −14<br />
0 −3 1 4 −12<br />
0 0 5 −2 7<br />
0 0 25 −4 29<br />
⎤<br />
⎥<br />
⎦ ∼<br />
⎡<br />
⎢<br />
⎣<br />
2 −4 0 6 −14<br />
0 −3 1 4 −12<br />
0 0 5 −2 7<br />
0 0 0 6 −6<br />
2. Zpětn´y chod<br />
Označme si v´yslednou rozˇsíˇrenou matici z (2) jako (U|g):<br />
⎡<br />
⎢<br />
⎣<br />
2 −4 0 6 −14<br />
−4 5 1 −8 16<br />
8 −22 7 30 −73<br />
6 −3 22 2 23<br />
⎤<br />
⎥<br />
⎦<br />
∼ . . . ∼<br />
⎡<br />
⎢<br />
⎣<br />
2 −4 0 6 −14<br />
0 −3 1 4 −12<br />
0 0 5 −2 7<br />
0 0 0 6 −6<br />
<br />
A b U g<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
(1)<br />
⎤<br />
⎥<br />
⎦<br />
(2)<br />
⎥<br />
⎦ (3)<br />
Místo p˚uvodní soustavy Ax = b budeme nyní ˇreˇsit soustavu Ux = g, která<br />
má stejn´y vektor ˇreˇsení x, protoˇze jsme ji získali z p˚uvodní soustavy pomocí<br />
ekvivalentních úprav. ˇ Reˇsí se snadněji, protoˇze má horní trojúhelníkovou matici<br />
(značení U je z anglického Upper triangular).<br />
1 c○ Certik
<strong>Gaussova</strong> <strong>eliminace</strong>, <strong>LU</strong> <strong>rozklad</strong><br />
Neznám´y vektor x nyní počítáme postupně od posledního ˇrádku směrem<br />
nahoru. Poslední ˇrádek reprezentuje rovnici 6x4 = −6, tedy<br />
x4 = −1 .<br />
Tento v´ysledek dosadíme do pˇredposledního ˇrádku 5x3 − 2x4 = 7, tedy<br />
x3 = (7 + 2x4)/5 = (7 + 2 · (−1))/5) = 1 .<br />
Analogicky dopočítáme<br />
x2 = (−12 − x3 − 4x4)/(−3) = (−12 − 1 − 4 · (−1))/(−3) = 3 ,<br />
x1 = (−14 + 4x2 − 6x4)/2 = (−14 + 4 · 3 − 6 · (−1))/2 = 2 .<br />
V´ysledn´y vektor ˇreˇsení je tedy<br />
x =<br />
⎡<br />
⎢<br />
⎣<br />
2<br />
3<br />
1<br />
−1<br />
⎤<br />
⎥<br />
⎦ .<br />
Poznámka 1<br />
V uvedeném pˇríkladě jsme pouˇzívali pouze jeden ze vˇsech moˇzn´ych typ˚u<br />
ekvivalentních úprav, lze vˇsak pouˇzít obecnějˇsí ekvivalentní úpravy na ˇrádky<br />
rozˇsíˇrené matice:<br />
• pˇričíst k některému ˇrádku libovolnou lineární kombinaci ostatních ˇrádk˚u<br />
• vynásobit ˇrádek nenulov´ym číslem<br />
• pˇrehodit ˇrádky<br />
• vyˇskrtnout nulov´y ˇrádek<br />
<strong>LU</strong> <strong>rozklad</strong><br />
Motivace<br />
Pˇredstavme si nyní, ˇze chceme soustavu (1) ˇreˇsit opakovaně pro více r˚uzn´ych<br />
stran, napˇríklad pro<br />
b =<br />
⎡<br />
⎢<br />
⎣<br />
−26<br />
34<br />
−149<br />
−87<br />
⎤<br />
⎥<br />
⎦ ,<br />
b =<br />
⎡<br />
⎢<br />
⎣<br />
16<br />
−28<br />
63<br />
3<br />
⎤<br />
⎥<br />
⎦<br />
, ...atd.<br />
M˚uˇzeme samozˇrejmě pro kaˇzdou pravou stranu znovu spočítat pˇrím´y chod<br />
Gaussovy <strong>eliminace</strong> tak, jak bylo popsáno v´yˇse. Jistě si vˇsak brzo vˇsimneme,<br />
ˇze pˇrevedení matice A na horní trojúhelníkovou matici (tj. to, co nám dá<br />
nejvíc práce), z˚ustává poˇrád stejné bez ohledu na pravou stranu, se kterou<br />
zrovna počítáme. Jediné, co se vˇzdycky mění, jsou poslední sloupce ekvivalentních<br />
úprav (2). Rádi bychom si tedy uˇsetˇrili práci a získali poslední sloupec<br />
g v´ysledné matice (3 vpravo) rychleji. K tomu m˚uˇzeme pouˇzít koeficienty, které<br />
2 c○ Certik
<strong>Gaussova</strong> <strong>eliminace</strong>, <strong>LU</strong> <strong>rozklad</strong><br />
jsme si v pˇrímém chodu Gaussovy <strong>eliminace</strong> zaznamenávali vˇzdycky vlevo vedle<br />
pˇrísluˇsného ˇrádku a které nám ˇríkají, jaké ekvivalentní úpravy jsme pouˇzili na<br />
matici A: stejné úpravy totiˇz musíme provést i na kaˇzdou pravou stranu b, pro<br />
kterou chceme soustavu ˇreˇsit.<br />
<strong>LU</strong> <strong>rozklad</strong><br />
Označme sloˇzky vektoru b jako bi, sloˇzky vektoru g jako gi a podívejme se<br />
znovu na pˇrím´y chod Gaussovy <strong>eliminace</strong>. Co jsme s čísly bi udělali, abychom<br />
získali gi?<br />
První sloˇzka z˚ustala beze změny (první ˇrádek jsme stále jen opisovali):<br />
g1 = −14 = b1<br />
Druhou sloˇzku jsme změnili jen pˇri nulování prvního sloupce:<br />
g2 = b2 + 2 · (−14) = b2 + 2g1<br />
Tˇretí sloˇzku jsme změnili nejdˇrív pˇri nulování prvního sloupce a pak jeˇstě pˇri<br />
nulování druhého sloupce:<br />
g3 = b3 − 4 · (−14) − 2 · (−12) = b3 − 4g1 − 2g2<br />
Poslední sloˇzku jsme měnili pˇri úpravě kaˇzdého sloupce:<br />
g4 = b4 − 3 · (−14) + 3 · (−12) − 5 · 7 = b4 − 3g1 + 3g2 − 5g3<br />
Kdyˇz te ˇ d pˇrevedeme vˇsechny neznámé gi doleva, dostaneme soustavu rovnic<br />
g1 = b1<br />
−2g1 + g2 = b2<br />
4g1 + 2g2 + g3 = b3<br />
3g1 − 3g2 + 5g3 + g4 = b4<br />
tj. vektor g získáme ˇreˇsením soustavy Lg = b s dolní trojúhelníkovou maticí L<br />
(z angl. Lower triangular)<br />
⎡<br />
1<br />
⎢<br />
L = ⎢ −2<br />
⎣ 4<br />
0<br />
1<br />
2<br />
0<br />
0<br />
1<br />
⎤<br />
0<br />
0 ⎥<br />
0 ⎦<br />
(5)<br />
3 −3 5 1<br />
která má na diagonále jedničky a pod diagonálou pˇrísluˇsné koeficienty z úprav<br />
(2) s opačn´ym znaménkem.<br />
Matice L určuje vztah nejen mezi posledními dvěma sloupci b a g rozˇsíˇren´ych<br />
matic (A|b) a (U|g) z (3), ale mezi kaˇzd´ymi dvěma odpovídajícími sloupci. Platí<br />
tedy nejen Lg = b, ale i <strong>LU</strong> = A.<br />
Rozklad matice A = <strong>LU</strong> na součin dolní trojúhelníkové matice L, která má<br />
na diagonále jedničky, a horní trojúhelníkové matice U naz´yváme <strong>LU</strong> <strong>rozklad</strong>.<br />
P˚uvodní soustavu<br />
Ax = b lze pomocí <strong>LU</strong> <strong>rozklad</strong>u napsat jako<br />
<strong>LU</strong>x = b a porotoˇze platí g = Ux, dostaneme<br />
Lg = b .<br />
(4)<br />
3 c○ Certik
<strong>Gaussova</strong> <strong>eliminace</strong>, <strong>LU</strong> <strong>rozklad</strong><br />
ˇReˇsení soustavy rovnic pomocí <strong>LU</strong> <strong>rozklad</strong>u<br />
Pˇredpokládejme, ˇze jsme rozloˇzili matici A na součin A = <strong>LU</strong> postupem<br />
popsan´ym v´yˇse, a chceme ˇreˇsit soustavu Ax = b pro vektor b dan´y v (1). Postup:<br />
1. Vyˇreˇsíme Lg = b<br />
Upravenou pravou stranu g z (3) vypočítáme ˇreˇsením soustavy Lg = b, tj.<br />
konkrétně<br />
⎡<br />
⎢<br />
⎣<br />
1 0 0 0<br />
−2 1 0 0<br />
4 2 1 0<br />
3 −3 5 1<br />
⎤ ⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
g1<br />
g2<br />
g3<br />
g4<br />
⎤<br />
⎥<br />
⎦ =<br />
⎡<br />
⎢<br />
⎣<br />
−14<br />
16<br />
−73<br />
23<br />
Z první rovnice okamˇzitě dostaneme g1 = −14, dosazením do druhé rovnice<br />
získáme g2 = 16 + 2g1 = 16 + 2 · (−14) = −12, a tak dál. V´ysledek je<br />
⎡ ⎤<br />
−14<br />
⎢<br />
g = ⎢ −12 ⎥<br />
⎣ 7 ⎦<br />
−6<br />
.<br />
ˇReˇsením soustavy Lg = b jsme tedy nahradili pˇrím´y chod Gaussovy <strong>eliminace</strong>.<br />
2. Vyˇreˇsíme Ux = g<br />
Toto uˇz je standardní zpětn´y chod Gaussovy <strong>eliminace</strong> popsan´y v´yˇse.<br />
***<br />
Chceme-li najít ˇreˇsení pro dalˇsí pravé strany b a b, zopakujeme pro ně kroky<br />
1 a 2. ˇ Reˇsením Lg = b, resp. Lg = b, dostaneme<br />
⎡ ⎤<br />
−26<br />
⎢<br />
g = ⎢ −18 ⎥<br />
⎣ −9 ⎦ ,<br />
⎡<br />
16<br />
⎢<br />
g = ⎢ 4<br />
⎣ −9<br />
⎤<br />
⎥<br />
⎦<br />
−18<br />
12<br />
a zpětn´ym chodem Gaussovy <strong>eliminace</strong> U x = g, resp.<br />
ˇreˇsení<br />
U x = g, získáme<br />
⎡<br />
−2<br />
⎢<br />
x = ⎢ 1<br />
⎣ −3<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎡<br />
4<br />
⎢<br />
x = ⎢ 1<br />
⎣ −1<br />
⎤<br />
⎥<br />
⎦<br />
−3<br />
2<br />
.<br />
Poznámka 2<br />
V´yˇse popsan´y postup pro nalezení matice L funguje pouze v pˇrípadě, ˇze<br />
pouˇzíváme pouze jeden ze vˇsech moˇzn´ych typ˚u ekvivalentních úprav uveden´ych<br />
v Poznámce 1, konkrétně: vˇzdy jen vynásobíme pˇrísluˇsn´y ˇrádek vhodn´ym koeficientem<br />
a pˇričteme k jinému ˇrádku. Tedy musíme postupovat pˇresně tak, jak<br />
jsme postupovali v úpravách (2).<br />
⎤<br />
⎥<br />
⎦<br />
4 c○ Certik