01.06.2013 Views

Gaussova eliminace, LU rozklad

Gaussova eliminace, LU rozklad

Gaussova eliminace, LU rozklad

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!