30
1 Direktne metode za linearne sustave U ovom poglavlju promatramo zada´ cu numeriˇ ckog rjeˇ savanje sustava linearnih algebarskih jednadˇ zbi Ax = b, gdje je A regularna kvadratna matrica, b je zadani vektor, a x je traˇ zeno rjeˇ senje. Ovisno o strukturi matrice A postoje razliˇ cite metode rjeˇ savanje koje se uglav- nom dijele u dvije skupine: direktne i iterativne. Direktne se metode zasnivaju na razliˇ citim faktorizacijama matrice koje omogu´ cavaju jednostavno rjeˇ savanje sus- tava. U toj je grupi osnovna metoda Gaussovih eliminacija koja vrˇ si faktorizaciju matrice na produkt trokutastih matrica. Iterativni se postupci koriste kada direktne metode nisu dovoljno efikasne, najˇ ceˇ ce u situacijama kad je dimenzija sustava jako velika a broj koeficijenata matrice razliˇ citih od nule relativno mali. Sve takve metode koriste matricu sus- tava jedino kroz operaciju mnoˇ zenja s vektorm i time dozvoljavaju pam´ cenje matrica u raznim komprimiranim formatima. U ovom poglavlju promatramo metodu Gaussovih eliminacija i njene vari- jante. To su metode koje treba koristiti kada matrica sustava nema neku posebnu strukturu koja bi se mogla iskoristiti za optimizaciju postupka. 1.1 Trokutaste matrice Gornja trokutasta matrica je kvadratna matrica oblika a 11 a 12 a 13 ··· a 1n 0 a 22 a 23 ··· a 2n 0 0 a 33 ··· a 3n . . . . . . . . . . . . . . . 0 0 0 ··· a nn 1

Direktne Metode Za Linearne Sustave

Embed Size (px)

Citation preview

1

Direktne metode za linearne

sustave

U ovom poglavlju promatramo zadacu numerickog rjesavanje sustava linearnihalgebarskih jednadzbi

Ax = b,

gdje je A regularna kvadratna matrica, b je zadani vektor, a x je trazeno rjesenje.Ovisno o strukturi matrice A postoje razlicite metode rjesavanje koje se uglav-nom dijele u dvije skupine: direktne i iterativne. Direktne se metode zasnivaju narazlicitim faktorizacijama matrice koje omogucavaju jednostavno rjesavanje sus-tava. U toj je grupi osnovna metoda Gaussovih eliminacija koja vrsi faktorizacijumatrice na produkt trokutastih matrica.

Iterativni se postupci koriste kada direktne metode nisu dovoljno efikasne,najcesce u situacijama kad je dimenzija sustava jako velika a broj koeficijenatamatrice razlicitih od nule relativno mali. Sve takve metode koriste matricu sus-tava jedino kroz operaciju mnozenja s vektorm i time dozvoljavaju pamcenjematrica u raznim komprimiranim formatima.

U ovom poglavlju promatramo metodu Gaussovih eliminacija i njene vari-jante. To su metode koje treba koristiti kada matrica sustava nema neku posebnustrukturu koja bi se mogla iskoristiti za optimizaciju postupka.

1.1 Trokutaste matrice

Gornja trokutasta matrica je kvadratna matrica oblika

a11 a12 a13 · · · a1n

0 a22 a23 · · · a2n

0 0 a33 · · · a3n...

......

. . ....

0 0 0 · · · ann

1

2 Direktne metode za linearne sustave

dok je donja trokutasta matrica oblika

a11 0 0 · · · 0a21 a22 0 · · · 0a31 a32 a33 · · · 0...

......

. . ....

an1 an2 an3 · · · ann

.

Sustavi s gornjom i donjom trokutastom matricom vrlo se jednostavno rjesavaju.Na primjer, ako imamo sustav od dvije jednadzbe

[

a11 a12

0 a22

] [

x1

x2

]

=

[

b1

b2

]

,

onda rjesavanje treba poceti od zadnje jednadzbe. Izlazi

x2 = b2/a22

x1 = (b1 − a12x2)/a11.

U sustavu od n jednadzbi xi ce se racunati po formuli

xi =

(

bi −n∑

j=i+1

aijxj

)

/aii

u kojoj su xj za j = i + 1, . . . , n vec poznati jer smjer racunanja ide od zadnjejednadzbe prema prvoj.

Algoritam 1.1 (Rjesavanje sustava s gornjom trokutastom matricom)

1: xn = bn/ann

2: for i = n − 1, n − 2, . . . , 1 do

3: xi = bi

4: for j = i + 1, i + 2, . . . , n do

5: xi = xi − aijxj

6: end for

7: xi = xi/aii

8: end for

Slicno se rjesava sustav s donjom trokutastom matricom (zadatak Z1.1). Uocimoda je algoritam provediv ukoliko su svi aii 6= 0. Kako je za gornju trokutastu idonju trokutastu matricu det A = a11a22 · · ·ann, vidimo da je algoritam provedivukoliko je matrica regularna.

Koliki je broj fp-operacija u Algoritmu 1.1? U unutarnjoj petlji imamo dvijefp-operacije (zbrajanje i mnozenje). One se ponavljaju n − i puta i kako izvan

Radna verzija

1.2 LU faktorizacija 3

unutarnje petlje imamo jos jedno dijeljenje ukupni broj operacija u i-tom prolazuvanjske petlje je 2(n − i) + 1. Ukupan broj operacija u vanjskoj petlji je stoga:

n−1∑

i=1

(2(n − i) + 1) = (2n + 1)(n − 1) − 2n−1∑

i=1

i = (2n + 1)(n − 1) − n(n − 1)

= (n + 1)(n − 1) = n2 − 1.

Pribrojimo li jos pocetno dijeljenje dobivamo tocno n2 fp-operacija (flops-a).Buduci da je za mnozenje gornje (donje) trokutaste matrice s vektorom potrebnoizvrsiti isto n2 fp-operacija (izracunajte) vidimo da gornji algoritam ima optima-lan broj operacija.

Algoritam 1.1 zahvaca elemente matrice sekvencijalno po recima. Algoritamje moguce reorganizirati tako da se elementi matrice dohvacaju po stupcima.Drugim rijecima poredak petlji u Algoritmu 1.1 moze se izmijeniti.

Da bismo to ucinili treba krenuti od zadnjeg stupca i u njemu izracunati xn

te zadnji stupac matrice mnozen s xn oduzeti od desne strane. Algoritam daljenastavlja isti postupak sa sljedecom podmatricom reda n− 1, itd. U ovoj verzijivektor b sluzi kao pomocni memorijski prostor.

Algoritam 1.2 (Rjesavanje sustava s gornjom trokutastom matricom)

1: for j = n, n − 1, . . . , 2 do

2: xj = bj/ajj

3: for i = 1, 2, . . . , j − 1 do

4: bi = bi − aijxj

5: end for

6: end for

7: x1 = b1/a11

Definirajmo jos jedinicnu gornju (donju) trokutastu matricu kao gornju (donju)trokutastu matricu s jedinicama na dijagonali.

1.2 LU faktorizacija

Matrica A ∈ Rn×n ima LU faktorizaciju ako postoji jedinicna donja trokutasta

matrica L i gornja trokutasta matrica U takve da je

A = LU.

LU faktorizacija matrice nije uvijek moguca. Na primjer, matrica

1 2 32 4 73 5 3

M. Jurak 31. svibnja 2006.

4 Direktne metode za linearne sustave

nema LU faktorizaciju (provjerite). Ukoliko LU faktorizacija postoji onda jerjesavanje sustava vrlo jednostavno. Sustav

Ax = b ⇔ LUx = b

moze se napisati u obliku

Ly = b

Ux = y

i stoga se svodi na rjesavanje dva sustava s trokutastim matricama.

Teorem 1.1 Regularna matrica moze imati najvise jednu LU faktorizaciju.

Dokaz. Ako je A regularna matrica koja ima LU faktorizaciju, A = LU , ondaje matrica U regularna (matrica L je regularna jer ima jedinice na dijagonali).Stoga, kada bi postojale dvije LU faktorizacije

A = L1U1 = L2U2,

imali bismo

L−12 L1 = U2U

−11 .

Buduci da je inverz donje (gornje) trokutaste matrice ponovo donja (gornja)trokutasta matrica (zadatak Z1.5 i zadatak Z1.7) te da isto vrijedi za produkt(zadatak Z1.6) vidimo da je

L−12 L1 = U2U

−11 = I

odnosno L1 = L2 i U1 = U2.

1.3 Gaussove eliminacije

Zadana je kvadratna matrica A ∈ Rn×n i vektor desne strane b ∈ R

n. Trebarijesiti sustav

Ax = b.

Do rjesenja dolazimo nizom od n − 1 transformacije matrice A i vektoradesne strane b. Polaznu matricu oznacimo s A(1) = A, dok cemo transformiranematrice oznacavati s A(2), A(3), . . . , A(n). Jednako postupamo i s vektorom desnestrane. Polazni vektor oznacavamo s b(1) = b, dok su transformirani vektori b(2),b(3), . . . , b(n).

Radna verzija

1.3 Gaussove eliminacije 5

Eliminacija prvog stupca. Pretpostavimo da je a11 = a(1)11 6= 0 te pomnozimo

prvi redak s −a(1)i1 /a

(1)11 i zbrojimo ga s i-tim retkom za i = 2, 3, . . . , n. Dobivamo

a(1)11 x1+a

(1)12 x2 + · · ·+ a

(1)1n xn = b

(1)1

a(2)22 x2 + · · ·+ a

(2)2n xn = b

(2)2

...

a(2)n2 x2 + · · ·+ a(2)

nnxn = b(2)n

pri cemu je

a(2)ij = a

(1)ij − a

(1)i1 a

(1)11

−1a

(1)1j , 2 ≤ i, j ≤ n,

b(2)i = b

(1)i − a

(1)i1 a

(1)11

−1b(1)1 , 2 ≤ i ≤ n.

Nakon prvog koraka transformirana matrica i vektor desne strane su

A(2) =

a(1)11 a

(1)12 · · · a

(1)1n

0 a(2)22 · · · a

(2)2n

......

. . ....

0 a(2)n2 · · · a

(2)nn

, b(2) =

b(1)1

b(2)2...

b(2)n

.

Nastavak postupka. Ukoliko je a(2)22 6= 0 postupak mozemo nastaviti. Drugi

redak mnozimo s −a(2)i2 /a

(2)22 i zbrajamo ga s i-tim retkom za i = 3, . . . , n. Nakon

k − 1 koraka dobivamo sljedecu transformiranu matricu i vektor desne strane:

A(k) =

a(1)11 a

(1)12 a

(1)13 · · · a

(1)1k · · · a

(1)1j · · · a

(1)1n

0 a(2)22 a

(2)23 · · · a

(2)2k · · · a

(2)2j · · · a

(2)2n

0 0 a(3)33 · · · a

(3)3k · · · a

(3)3j · · · a

(3)3n

......

.... . .

......

......

...

0 0 0 · · · a(k)kk · · · a

(k)kj · · · a

(k)kn

......

.... . .

......

......

...

0 0 0 · · · a(k)ik · · · a

(k)ij · · · a

(k)in

......

.... . .

......

......

...

0 0 0 · · · a(k)nk · · · a

(k)nj · · · a

(k)nn

, b(k) =

b(1)1

b(2)2

b(3)3...

b(k)k...

b(k)j...

b(k)n

Eliminacija k-tog stupca. U ovom koraku mijenjaju se samo elementi a(k)ij za

i, j = k + 1, . . . , n. Novi elementi su:

a(k+1)ij =

0 k + 1 ≤ i ≤ n, j = k

a(k)ij − a

(k)ik a

(k)kk

−1a

(k)kj , k + 1 ≤ i, j ≤ n.

M. Jurak 31. svibnja 2006.

6 Direktne metode za linearne sustave

b(k+1)i = b

(k)i − a

(k)ik a

(k)kk

−1b(k)k , k + 1 ≤ i ≤ n

Nakon n − 1 koraka dolazimo do sustava s gornjom trokutastom matricom

A(n)x = b(n),

gdje je

A(n) =

a(1)11 a

(1)12 · · · a

(1)1n

0 a(2)22 · · · a

(2)2n

......

. . ....

0 0 · · · a(n)nn

, b(n) =

b(1)1

b(2)2...

b(n)n

i kojeg je lako rijesiti.

1.4 LU faktorizacija i Gaussove eliminacije

Gaussove eliminacije mogu se zapisati u matricnom obliku kao niz mnozenja slijeva polazne matricne jednadzbe matricama specijalnog oblika. Tako prvi korakmozemo zapisati na ovaj nacin:

a(1)11 a

(1)12 · · · a

(1)1n

0 a(2)22 · · · a

(2)2n

......

. . ....

0 a(2)n2 · · · a

(2)nn

=

1 0 · · · 0

−a(1)21 /a

(1)11 1 · · · 0

......

. . ....

−a(1)n1 /a

(1)11 0 · · · 1

a(1)11 a

(1)12 · · · a

(1)1n

a(1)21 a

(1)22 · · · a

(1)2n

......

. . ....

a(1)n1 a

(1)n2 · · · a

(1)nn

,

b(1)1

b(2)2...

b(2)n

=

1 0 · · · 0

−a(1)21 /a

(1)11 1 · · · 0

......

. . ....

−a(1)n1 /a

(1)11 0 · · · 1

b(1)1

b(1)2...

b(1)n

.

Vidimo da je u prvom koraku Gaussovih eliminacija izvrsena sljedeca transfor-macija matrice i desne strane:

A(2) = L1A(1), b(2) = L1b

(1),

gdje je

L1 =

1 0 0 · · · 0

−m(1)2 1 0 · · · 0

−m(1)3 0 1 · · · 0

......

.... . .

...

−m(1)n 0 0 · · · 1

, m(1)i = a

(1)i1 /a

(1)11 , 2 ≤ i ≤ n.

Radna verzija

1.4 LU faktorizacija i Gaussove eliminacije 7

Slicno, drugi korak eliminacija mozemo zapisati u obliku

A(3) = L2A(2), b(3) = L2b

(2),

gdje je

L2 =

1 0 0 · · · 00 1 0 · · · 0

0 −m(2)3 1 · · · 0

......

.... . .

...

0 −m(2)n 0 · · · 1

, m(2)i = a

(2)i2 /a

(2)22 , 3 ≤ i ≤ n.

Svi koraci eliminacija mogu se interpretirati na taj nacin. Nakon n − 1 korakadobivamo

A(n) = Ln−1Ln−2 · · ·L2L1A, b(n) = Ln−1Ln−2 · · ·L2L1b(2),

gdje je

Lk =

1 · · · 0 0 · · · 0...

. . ....

.... . .

0 · · · 1 0 · · · 0

0 · · · −m(k)k+1 1 · · · 0

.... . .

......

. . .

0 · · · −m(k)n 0 · · · 1

, m(k)i = a

(k)ik /a

(k)kk , k + 1 ≤ i ≤ n.

Matrica A(n) je gornja trokutasta matrica i stoga cemo ju oznaciti s U , U = A(n).Imamo

U = Ln−1Ln−2 · · ·L2L1A,

i odavdeA = L−1

1 L−12 · · ·L−1

n−1U.

Matrica Lk moze se zapisati u obliku

Lk = I − m(k) ⊗ ek

gdje je I jedinicna matrica i

ek =

0...010...0

, m(k) =

0...00

m(k)k+1...

m(k)n

(1.1)

M. Jurak 31. svibnja 2006.

8 Direktne metode za linearne sustave

(ek je k-ti vektor kanonske baza). Lako se provjerava formula

(I − m(k) ⊗ ek)−1 = I + m(k) ⊗ ek (1.2)

te stoga dobivamo

L = L−11 L−1

2 · · ·L−1n−1 =

1 · · · 0 · · · 0 0

m(1)2 · · · 0 · · · 0 0

m(1)3 · · · 1 · · · 0 0...

. . ....

. . ....

...

m(1)n−1 · · · m

(k)n−1 · · · 1 0

m(1)n · · · m

(k)n · · · m

(n−1)n 1

,

gdje je

m(k)i = a

(k)ik /a

(k)kk , i < k.

Time smo dobili LU faktorizaciju matrice A,

A = LU,

gdje je L donja trokutasta matrica s jedinicama na dijagonali, a U gornja troku-tasta matrica.

Iz izvoda LU faktorizacije vidimo da LU faktorizacija matrice postoji akosu pivotni elementi a

(k)kk , za k = 1, 2, . . . , n − 1, razliciti od nule. Da bismo

karakterizirali taj uvjet u terminima matrice A uvedimo oznaku A(1 : k, 1 : k)za podmatricu matrice A koja se sastoji od prvih k redaka i stupaca. Tada izoblika matrice A(k) vidimo da je

det[A(k)(1 : k, 1 : k)] = a(1)11 a

(2)22 · · ·a(k)

kk .

Nadalje, elementarne operacije koje smo vrsili nad stupcima matrice A u pos-tupku Gaussovih eliminacija ne mijenjaju determinantu matrice pa stoga imamo

det[A(k)(1 : k, 1 : k)] = det[A(1 : k, 1 : k)].

Time dolazimo do sljedeceg rezultata:

Teorem 1.2 Kvadratna matrica A ∈ Rn×n ima LU faktorizaciju ako je

det[A(1 : k, 1 : k)] 6= 0 za k = 1, 2, . . . , n − 1.

Matrice A(1 : k, 1 : k) nazivamo glavnim podmatricama matrice A.

Radna verzija

1.5 Algoritam LU faktorizacije 9

1.5 Algoritam LU faktorizacije

Gaussovim eliminacijama mozemo faktorizirati matricu. Gornja trokutastamatrica U nakon eliminacija nalazit ce se u gornjem trokutu matrice A. Multi-plikatore smjestamo na odgovarajuca mjesta u donji trokut matrice A tako danakon izvo−denja algoritma u donjem trokutu imamo matricu L bez dijagonale,koja se sastoji od jedinica i stoga ju nije potrebno pamtiti. Na taj nacin nemapotrebe za dodatnom memorijom za pamcenje faktorizacije.

Algoritam 1.3 (LU faktorizacija)

1: Ulaz: red matrice n i matrica A = (aij)2: for k = 1, 2, . . . , n − 1 do

3: for i = k + 1, k + 2, . . . , n do

4: z = aik/akk

5: aik = z6: for j = k + 1, k + 2, . . . , n do

7: aij = aij − zakj

8: end for

9: end for

10: end for

11: Izlaz: matrica A = (aij)

Nakon provedene LU faktorizacije treba transformirati desnu stranu i rijesitisustav s gornjom trokutastom matricom. Rjesenje cemo smjestiti u vektor desnestrane.

Algoritam 1.4 (Rjesavanje sustava nakon LU faktorizacije)

1: Ulaz: red matrice n, matrica A = (aij) nakon LU faktorizacije2: i vektor desne strane b = (bi)3: for k = 1, 2, . . . , n − 1 do

4: for i = k + 1, k + 2, . . . , n do

5: bi = bi − aikbk

6: end for

7: end for

8: bn = bn/ann

9: for i = n − 1, n − 2, . . . , 1 do

10: for j = i + 1, i + 2, . . . , n do

11: bi = bi − aijbj

12: end for

13: bi = bi/aii

14: end for

15: Izlaz: vektor b = (bi)

M. Jurak 31. svibnja 2006.

10 Direktne metode za linearne sustave

1.6 Broj operacija

Izbrojimo sve fp-operacije u Algoritmima 1.3 i 1.4.Algoritam 1.3: u unutarnjoj petlji (linije 6-7) imamo 2(n−k) operacija. Tome

treba dodati jos jednu operaciju u liniji 4 sto daje ukupno (n − k)(2(n − k) + 1)operacija u srednjoj petlji (linije 3-9). Uzimajuci u obzir vanjsku petlju dobivamoda je ukupan broj operacija

n−1∑

k=1

(n − k)(2(n − k) + 1) =

n−1∑

j=1

j(2j + 1) =

n−1∑

j=1

j + 2

n−1∑

j=1

j2

=n(n − 1)

2+ 2

(n − 1)n(2n − 1)

6

= n(n − 1)4n + 1

6.

Algoritam 1.4: u prvom dijelu algoritma (linije 3-7) imamo

n−1∑

k=1

2(n − k) =

n−1∑

j=1

2j = n(n − 1)

operacija. U dvostrukoj petlji (linije 9-14) imamo

n−1∑

i=1

(2(n − i) + 1)

operacija. Tome treba jos dodati jednu operaciju u liniji 8. Ukupno

n(n − 1) + n(n − 1) + n − 1 + 1 = 2n2 − n.

Ukupan broj operacija u oba algoritma iznosi

n(n − 1)4n + 1

6+ 2n2 − n =

2

3n3 +

3

2n2 − 7

6n.

1.7 Pivotiranje

Gaussove eliminacije nije moguce provesti na nekim sustavima s regularnommatricom kao sto je

[

0 11 1

] [

x1

x2

]

=

[

12

]

.

Ovdje je prvi pivotni element a11 = 0 no matrica je regularna i sustav ima

jedinstveno rjesenje

[

11

]

. U nekim situacijama ako je eliminacije moguce provesti

Radna verzija

1.7 Pivotiranje 11

greske su velike zbog malog pivotnog elementa. Pogledajmo sljedeci primjer ukojem je ε > 0 mali broj:

[

ε 11 1

] [

x1

x2

]

=

[

12

]

. (1.3)

Primjenom Gaussovih eliminacija dolazimo do sustava[

ε 10 1 − ε−1

] [

x1

x2

]

=

[

12 − 1

ε

]

,

cije je rjesenje

x2 =1 − 2ε

1 − ε, x1 =

1

ε(1 − x2) =

1

1 − ε.

Tocno rjesenje

[

1/(1 − ε)(1 − 2ε)/(1 − ε)

]

je blisko vektoru

[

11

]

. Pretpostavimo sada da

je ε toliko malo da vrijedi ε−1 > 2p+1, gdje je p preciznost fp-sustava. Tadadobivamo 1 ⊖ 1/ε = −1/ε i 2 ⊖ 1/ε = −1/ε pa nakon Gaussovih eliminacijadobivamo sustav

[

ε 10 −ε−1

] [

x1

x2

]

=

[

1−ε−1

]

,

cije je rjesenje x2 = 1 i x1 = 0. Vidimo da dolazi do znacajne greske u rjesenju.U gornjem primjeru nije vazna apsolutna malost pivotnog elementa vec nje-

gova malost u odnosu na elemete u istom retku. To pokazuje sljedeci primjer ukojem smo samo skalirali prvu jednadzbu:

[

1 ε−1

1 1

] [

x1

x2

]

=

[

ε−1

2

]

.

Gaussove eliminacije daju[

1 ε−1

0 1 − ε−1

] [

x1

x2

]

=

[

ε−1

2 − ε−1

]

i tocno rjesenje je (isto kao i u prethodnom primjeru)

x2 =2 − ε−1

1 − ε−1, x1 =

1

ε(1 − x2) =

1

1 − ε.

Ponovo, bude li x2 izracunat kao 1 dobivamo x1 = 0.Uocimo da problemi s prethodna dva sustava nestaju ako zamijenimo poredak

jednadzbi. Ako na primjer u (1.3) zamijenimo poredak jednadzbi dolazimo dosustava

[

1 1ε 1

] [

x1

x2

]

=

[

21

]

koji nakon eliminacija postaje[

1 10 1 − ε

] [

x1

x2

]

=

[

21 − 2ε

]

.

Rjesenje sustava je x2 = (1 − 2ε)/(1 − ε) ≈ 1, x1 = 2 − x2.

M. Jurak 31. svibnja 2006.

12 Direktne metode za linearne sustave

1.8 Gaussove eliminacije s parcijalnim pivotira-

njem

Gaussove eliminacije modificiramo na sljedeci nacin: pretpostavimo da smoizvrsili k − 1 koraka eliminacija. U k-tom koraku moramo ponistiti sve elementek-tog stupca ispod dijagonale.

k

j

x x x x x x x x x xx x x x x x x x x

x x x x x x x xx x x x x x x

y y y y y y∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗ ∗ ∗ ∗z z z z z z∗ ∗ ∗ ∗ ∗ ∗

Prije formiranja multiplikatora i transformiranja matrice biramo najveci od bro-jeva |akk|, |ak+1k|,. . . , |ank|. Neka je to |ajk|, za neki k ≤ j ≤ n. Tada vrsimozamjenu k-tog i j-tog retka matrice i nakon toga nastavljamo s eliminacijamaelemenata k-tog stupca ispod dijagonale. Na taj nacin osiguravamo da su svimnozitelji po modulu manji ili jednaki 1.

Uocimo da zamijena redaka u matrici ne kvari dio matrice u kojem su vecponisteni elementi ispod dijagonale.

Da bismo izbjegli fizicko permutiranje redaka uvest cemo n-dimenzionalnivektor p (n je dimenzija matrice) i inicijalizirati ga na sljedeci nacin:

p = (1, 2, 3, . . . , n).

Nakon toga cemo elementu matrice ai,j pristupati indirektno kao api,j. Kadazelimo zamijeniti k-ti i l-ti redak zamijenit cemo elemente pk i pl u vektoru p;nakon zamjene apk,j vise ne referira na ak,j vec na al,j .

Na ovaj se nacin algoritam Gaussovih eliminacija mijenja minimalno. Po-trebno je samo elementima matrice pristupati putem polja p.

Algoritam 1.5 (LU faktorizacija s parcijalnim pivotiranjem)

1: Ulaz: red matrice n i matrica A = (aij)2: for i = 1, 2, . . . , n do

3: pi = i4: end for

5: for k = 1, 2, . . . , n − 1 do

6: Naci j ≥ k takav da je |apjk| ≥ |apik| za i = k, k + 1. . . . , n7: if apjk = 0 then

Radna verzija

1.8 Gaussove eliminacije s parcijalnim pivotiranjem 13

8: Greska: matrica nije regularan. STOP9: end if

10: Zamijenimo pk i pj

11: for i = k + 1, k + 2, . . . , n do

12: z = apik/apkk

13: apik = z14: for j = k + 1, k + 2, . . . , n do

15: apij = apij − zapkj

16: end for

17: end for

18: end for

19: Izlaz: matrica A = (aij), vektor permutacije p = (pi).

Nakon provedene faktorizacije treba transformirati desnu stranu i rijesiti sus-tav s gornjom trokutastom matricom. Buduci da desna strana mora biti permu-tirana jednako kao i matrica, dok vektor rjesenja ne trpi nikakvu permutaciju (jernema permutacije stupaca), u ovom cemo algoritmu koristiti poseban vektor zapamcenje rjesenja. Na ulazu u algoritam on ne mora biti inicijaliziran.

Algoritam 1.6 (Rjesavanje sustava nakon LU faktorizacije s parcijalnim pivotira-njem)

1: Ulaz: red matrice n, matrica A = (aij) nakon LU dekompozicije2: s parcijalnim pivotiranjem, vektor permutacije p = (pi),3: vektor desne strane b = (bi) i vektor rjesenja x = (xi).4: for k = 1, 2, . . . , n − 1 do

5: for i = k + 1, k + 2, . . . , n do

6: bpi= bpi

− apikbpk

7: end for

8: end for

9: xn = bpn/apnn

10: for i = n − 1, n − 2, . . . , 1 do

11: tmp = 0.012: for j = i + 1, i + 2, . . . , n do

13: tmp = tmp + apijxj

14: end for

15: xi = (bpi− tmp)/apii

16: end for

17: Izlaz: vektor x = (xi)

Uocimo da smo pomocnu varijablu tmp mogli izbaciti i umjesto nje koristitixi. U linijama 11 do 15 racuna se suma

1

apii

(

bpi−

n∑

j=i+1

apijxj

)

.

M. Jurak 31. svibnja 2006.

14 Direktne metode za linearne sustave

1.9 Permutacijske matrice

Neka je σ : 1, 2, . . . , n → 1, 2, . . . , n neka permutacija. Permutacijska ma-trica Pσ, pridruzena permutaciji σ, je matrica definirana formulom

(Pσ)ij = δσ(i)j .

Matrica je dobivena tako sto su reci jedinicne matrice permutirani i stoga usvakom retku i stupcu ima tocno jednu jedinicu, a ostali su elementi jednaki nuli.Evidentno je da su permutacijske matrice ortogonalne.

Na primjer, za n = 3 i za permutaciju σ = (3, 1, 2), permutacijska matrica je

Pσ =

0 0 11 0 00 1 0

.

Struktura grupe koju imaju permutacije u odnosu na kompoziciju prenosi se i napermutacijske matrice pa one cine grupu u odnosu na mozenje. Vrijedi

PσPσ′ = Pσσ′ , Pσ−1 = P−1σ = P τ

σ

(vidi zadatake Z1.10 i Z1.11). Nadalje, mnozenje s lijeva permutacijskom ma-tricom permutira retke matrice, a mnozenje zdesna permutira stupce (vidi zada-tak Z1.12).

1.10 PLU faktorizacija

Pokazimo kako Algoritam 1.5 funkcionira na jednom primjeru. Uzmimo dazelimo faktorizirati matricu

A = A(1) =

3 17 102 4 −26 18 −12

.

U pocetnom trenutku je p = p(1) = (1, 2, 3). U prvom koraku zamijenjujemo prvii treci red i izvodimo eliminacije: p(2) = (3, 2, 1),

A(2) =

1/2 8 161/3 −2 26 18 −12

.

Matrica permutacije i permutirana matrica su

P (2) =

0 0 10 1 01 0 0

, P (2)A(2) =

6 18 −121/3 −2 21/2 8 16

.

Radna verzija

1.10 PLU faktorizacija 15

U sljedecem koraku zamijenjujemo drugi i prvi redak: p = (3, 1, 2),

A(3) =

1/2 8 161/3 −1/4 66 18 −12

.

Matrica permutacije i permutirana matrica su

P (3) =

0 0 11 0 00 1 0

, P (3)A(3) =

6 18 −121/2 8 161/3 −1/4 6

.

Definiramo li gornju trokutastu matricu U = (a(3)pij

) za j ≥ i te donju trokutastu

matricu L s jedinicama na dijagonali L = (a(3)pij

) za i > j, dobivamo

U =

6 18 −120 8 160 0 6

, L =

1 0 01/2 1 01/3 −1/4 1

.

Sada se lako provjeri da je

LU =

1 0 01/2 1 01/3 −1/4 1

6 18 −120 8 160 0 6

=

6 18 −123 17 102 4 −2

= PA,

gdje je P = P (3).

Algoritam 1.5 generira niz matrica A(1) = A, A(2), . . . , A(n) i niz permu-tacijskih vektora p1 = (1, . . . , n), p2,. . . , pn. Izlaz iz algoritma je matrica A(n)

i vektor pn. Prijelaz od matrice A(k) do matrice A(k+1) vrsi se po sljedecimformulama:

a(k+1)pij

=

a(k)pij

i ≤ k,

a(k)pij

j < k < i,

a(k)pij

− a(k)pik

a(k)pkk

−1a

(k)pkj, k < i, j,

a(k)pik

a(k)pkk

−1k < i, j = k,

(1.4)

gdje je permutacija p = p(n). S tim u vezi treba napomenuti sljedece: gornjeformule vrijede za permutaciju p = p(k+1) jer je to permutacija redaka prisutnaprije racunanja elemenata a

(k+1)pij

. S druge strana, sve daljnje permutacije permu-

tiraju samo retke pk+1, . . . , pn zbog cega formule vrijede i za p = p(n) (promjenaje samo u redosljedu kojim su jednadzbe napisane).

Uz uvedene oznake vrijedi sljedeci teorem:

M. Jurak 31. svibnja 2006.

16 Direktne metode za linearne sustave

Teorem 1.3 (PLU faktorizacija) Neka je P permutacijska matrica koja odgovarapermutaciji p = p(n) iz Algoritma 1.5. Definirajmo gornju trokutastu matricu U =(uij), uij = a

(n)pij

za i ≤ j, te donju trokutastu matricu L = (lij), lij = a(n)pij

za i > ji lii = 1. Tada je

PA = LU.

Dokaz. Iz formula (1.4) slijedi

ukj = a(n)pkj = a

(k)pkj j ≥ k,

buduci da se u k-tom koraku i u svakom sljedecem red pk vise ne mijenja. Jednakotako vrijedi

lik = a(n)pik

= a(k+1)pik

= a(k)pik

a(k)pkk

−1i > k.

Ta formula vrijedi i za i = k jer daje lkk = 1. Sada za i ≤ j imamo

(LU)ij =i∑

k=1

likukj =i−1∑

k=1

a(k)pik

a(k)pkk

−1 · a(k)pkj + 1 · a(i)

pij

=i−1∑

k=1

(a(k)pij

− a(k+1)pij

) + a(i)pij

= a(1)pij

= apij = (PA)ij,

gdje smo u srednjem redu koristili formulu (1.4). Slicno dokazujemo za i > j:

(LU)ij =

j∑

k=1

likukj =

j−1∑

k=1

a(k)pik

a(k)pkk

−1 · a(k)pkj + a

(j)pij

a(j)pjj

−1 · a(i)pij

=

j−1∑

k=1

(a(k)pij

− a(k+1)pij

) + a(j)pij

= a(1)pij

= apij = (PA)ij.

Ako imamo faktorizaciju PA = LU , onda se rjesavanje sustava Ax = b svodina dva koraka:

Lz = Pb

Ux = z.

Rjesavanje ovih sustava mozemo realizirati sljedecim pseudo kodom:

for i = 1, 2, . . . , n do

zi = bpi−∑i−1

k=1 likzk

end for

for i = n, n − 1, . . . , 1 do

Radna verzija

1.11 Elementarna analiza greske 17

xi = 1uii

(zi −∑n

j=i+1 uijxj)end for

Ako se matrice L i U cuvaju u elementima polazne matrice, a za cuvanje vektoraz koristimo Pb, dobivamo sljedeci pseudo kod:

for i = 1, 2, . . . , n do

bpi= bpi

−∑i−1

k=1 apikbpk

end for

for i = n, n − 1, . . . , 1 do

xi = 1apii

(bpi−∑n

j=i+1 apijxj)

end for

Usporedimo li gornji pseudo kod s Algoritmom 1.6 lako uocavamo da je drugidio koda (linije 9-16) realizacija druge for-petlje u gornjem pseudo kodu. Prvafor-petlja u gornjem pseudo kodu realizirana je u Algoritmu 1.6 u linijama 4 do8. Prividna razlika dolazi od razlicitog poretka for-petlji (pokazite).

1.11 Elementarna analiza greske

Neka je ‖ · ‖ neka norma na Rn. Pripadnu operatorsku normu na kvadratnim

matricama reda n oznacavat cemo takoder sa ‖ · ‖:

‖A‖ = maxx 6=0

‖Ax‖‖x‖ .

Na primjer, za standardne vektorske norme

‖x‖1 =n∑

i=1

|xi|, ‖x‖2 =

(

n∑

i=1

x2i

)1/2

, ‖x‖∞ = max|x1|, . . . , |xn|,

dobivamo sljedece (operatorske) matricne norme

‖A‖1 = max1≤j≤n

n∑

i=1

|aij|, ‖A‖2 =√

ρ(AτA), ‖A‖∞ = max1≤i≤n

n∑

j=1

|aij, |

gdje je ρ(A) spektralni radijus matrice A.

Za regularnu kvadratnu matricu A reda n i vektor b ∈ Rn neka je x∗ ∈ R

n

tocno rjesenje jednadzbe

Ax = b,

a x priblizno rjesenje dobiveno nekom numerickom metodom. Rezidualni vektor

r = b− Ax

M. Jurak 31. svibnja 2006.

18 Direktne metode za linearne sustave

je mjera greske koju je moguce izracunati. Stvarna je greska e = x∗ − x i ona jevezana s rezidualom u rezidualnoj jednadzbi:

Ae = r.

Ocjena relativne greske pomocu reziduala. Da bismo vidjeli koliko je rezidualdobra mjera greske ocijenit cemo relativnu gresku pomocu reziduala. Relativnagreska je definirana formulom

‖x∗ − x‖‖x∗‖ .

Koristeci rezidualnu jednadzbu dobivamo

‖x∗ − x‖‖x∗‖ =

‖A−1r‖‖x∗‖ ≤ ‖A−1‖ ‖r‖

‖x∗‖ .

S druge strane, iz jednadzbe Ax∗ = b dobivamo ‖b‖ ≤ ‖A‖ ‖x∗‖ sto daje

1

‖x∗‖ ≤ ‖A‖‖b‖ ,

i stoga imamo‖x∗ − x‖‖x∗‖ ≤ ‖A‖ ‖A−1‖ ‖r‖‖b‖ .

Brojκ(A) = ‖A‖ ‖A−1‖ ≥ 1

nazivamo uvjetovanost matrice A.Slicno mozemo relativnu gresku ocijeniti odozdo. Iz rezidualne jednadzbe je

‖r‖ ≤ ‖A‖ ‖x∗ − x‖ i stoga je

‖x∗ − x‖‖x∗‖ ≥ ‖r‖

‖A‖ ‖x∗‖ .

Iz jednadzbe x∗ = A−1b dobivamo ‖x∗‖ ≤ ‖A−1‖‖b‖ sto daje

1

‖x∗‖ ≥ 1

‖A−1‖‖b‖ ,

i stoga imamo‖x∗ − x‖‖x∗‖ ≥ 1

‖A‖ ‖A−1‖‖r‖‖b‖ .

Spojimo li ove dvije ocjene dobivamo

1

κ(A)

‖r‖‖b‖ ≤ ‖x∗ − x‖

‖x∗‖ ≤ κ(A)‖r‖‖b‖ . (1.5)

Radna verzija

1.12 Iterativno profinjenje 19

Iz te ocjene vidimo da ‖r‖/‖b‖ daje losu ocjenu relativne greske ako je uvjeto-vanost matrice velika.

Lako se izvodi ocjena za uvjetovanost

κ(A) ≥∣

λmax

λmin

(1.6)

gdje su λmax i λmin po modulu najveca i najmanja svojstvena vrijednost matriceA (zadatak Z1.13).

Utjecaj gresaka zaokruzivanja. Pretpostavimo prvo da su greske zaokruzivanjaprisutne samo u vektoru desne strane i promatrajmo tocan i perturbitran sustav

Ax = b . . . x∗ tocno rjesenje,

Ax = b + δb . . . x tocno rjesenje,

gdje je δb perturbacija desne strane prisutna zbog gresaka zaokruzivanja. Tadaimamo A(x∗ − x) = δb i stoga nas prethodna analiza vodi na ocjenu

1

κ(A)

‖δb‖‖b‖ ≤ ‖x∗ − x‖

‖x∗‖ ≤ κ(A)‖δb‖‖b‖ .

Pretpostavimo sada da su greske zaokruzivanja prisutne samo u matrici.Tocan i perturbirani sustav mozemo zapisati u obliku

Ax = b . . . x∗ tocno rjesenje,

(A + δA)x = b . . . x tocno rjesenje,

gdje je δA perturbacija matrice sustava prisutna zbog gresaka zaokruzivanja.Lako se izvodi jednadzba

A(x∗ − x) = δAx

odakle je ‖x∗ − x‖ ≤ ‖A−1‖ ‖δA‖ ‖x‖ te stoga imamo

‖x∗ − x‖‖x‖ ≤ ‖A−1‖ ‖δA‖ = κ(A)

‖δA‖‖A‖ .

Ova ocjena ponovo pokazuje ulogu uvjetovanosti matrice.

1.12 Iterativno profinjenje

Pretpostavimo da smo u jednostrukoj preciznosti izracunali PLU-faktorizacijumatrice i nasli priblizno rjesenje sustava

Ax = b.

M. Jurak 31. svibnja 2006.

20 Direktne metode za linearne sustave

Oznacimo tocno rjesenje s x∗, a priblizno, dobiveno Gaussovim eliminacijama, sx. Tada je x∗ = x + δx, gdje je δx greska. Iz jednadzbe A(x + δx) = b izlazi dagreska zadovoljava rezidualnu jednadzbu

Aδx = b− Ax = r.

Rjesavanjem rezidualne jednadzbe mozemo naci aproksimaciju za gresku δx ikorekcijom x = x + δx utocniti rjesenje. To je algoritam iterativnog profinjenja.

Algoritam 1.7 (Iterativno profinjenje nakon PLU faktorizacije)

Ulaz: matrice P , L i U iz PLU faktorizacije matrice sustava,vektor desne strane b i aproksimativno rjesenje x

r = b− Ax (izracunati u dvostrukoj preciznosti)Lz = P r

Ue = z

x = x + e

Efikasnost algoritma izlazi iz cinjenice da pri rjesavanju rezidualne jednadzbe,buduci da je faktorizacija vec izracunata, rijesavamo samo dva sustava s troku-tastim matricama. Cijeli postupak se moze iterirati dok se ne do−de do rjesenjatocnog u danoj preciznosti. Bitan detalj u algoritmu je racunaje reziduala u dvos-trukoj preciznosti. Naime, Gaussove eliminacije tipicno daju mali rezidual takoda u njegovom racunanju dolazi do dokidanja znacajnih znamenaka koje citavalgoiritam ucini posve neefikasnim. U praksi se pokazuje da su jedna do dvijeiteracije posve dovoljne.

1.13 Procjena uvjetovanosti matrice

1.14 Faktorizacija Choleskog

LU faktorizacija matrice moze se reformulirati na ovaj nacin:

Teorem 1.4 Ako kvadratna matrica A ∈ Rn×n ima regularne sve glavne podmatrice

(vidi Teorem 1.2) onda postoji jedinstvena faktorizacija A = LDM τ , gdje su L i Mdonje trokutaste matrice s jedinicnom dijagonalom i D dijagonalna matrica.

Dokaz. U uvjetima teorema matrica A ima jedinstvenu LU faktorizaciju A =LU . Stavimo D = diag(u11, . . . , unn) i uocimo da je D regularna matrica. Defi-niramo M τ = D−1U , sto je gornja trokutasta matrica s jedinicnom dijagonalom,i imamo A = LU = LDM τ .

U slucaju simetricne matrice A imamo rastav oblika A = LDLτ sto se mozeiskoristiti za konstrukciju alternativnog algoritma faktorizacije. Ako je A = (aij),

Radna verzija

1.14 Faktorizacija Choleskog 21

L = (lij) i D = diag(d1, . . . , dn), onda faktorizacija zapisana po elementima glasi

aij =

n∑

k=1

likdkljk.

Kako je matrica L donja trokutasta, imamo

aij =

min(i,j)∑

k=1

likdkljk.

Pri tome je dovoljno promatrati donji trokut matrice pa cemo uzeti i ≥ j :

aij =

j∑

k=1

likdkljk.

Odavde mozemo odrediti matricu L i dijagonalu D po stupcima. Na primjer, zaj = 1 dobivamo:Za i = 1:

a11 = l11d1l11 = d1 ⇒ d1 = a11.

Za i > 1:ai1 = li1d1l11 = li1d1 ⇒ li1 =

ai1

d1

.

Time je citav prvi stupac matrice L odre−den.Drugi stupac: j = 2.

Za i = 2:

a22 =

2∑

k=1

l2kdkl2k = l221d1 + d2 ⇒ d2 = a22 − l221d1.

Za i > 2:

ai2 =

2∑

k=1

likdkl2k = li1d1l21 + li2d2 ⇒ li2 =1

d2(ai2 − li1d1l21).

Uocimo da smo u racunanju elemenata drugog stupca matrice L koristili samovec izracunate elemente prvog stupca matrice L i d1 koji je izracunat zajedno sprvim stupcem. Postupak se ocito moze nastaviti, pa za j-ti stupac dobivamo:

dj = ajj −j−1∑

k=1

l2jkdk

lij =1

dj(aij −

j−1∑

k=1

likdkljk), i = j + 1, . . . , n.

Algoritam faktorizacije mozemo formulirati na sljedeci nacin:

M. Jurak 31. svibnja 2006.

22 Direktne metode za linearne sustave

Algoritam 1.8 (LDLτ faktorizacija)

1: Ulaz: red matrice n i matrica A = (aij)2: for j = 1, 2, . . . , n do

3: for k = 1, . . . , j − 1 do

4: vk = ljkdk

5: end for

6: dj = ajj

7: for k = 1, . . . , j − 1 do

8: dj = dj − ljkvk

9: end for

10: for i = j + 1, . . . , n do

11: lij = aij

12: for k = 1, . . . , j − 1 do

13: lij = lij − likvk

14: end for

15: lij = lij/dj

16: end for

17: end for

18: Izlaz: matrica L = (lij) i vektor d = (dj)

Uocimo da smo uveli pomocni vektor (vk) da bismo smanjili broj operacija. Nakonfaktorizacije rjesavanje sustava se svodi na rjesavanje dva sustava s trokutastimmatricama:

Ax = b ⇔ LDLτx = b

sto daje

Ly = b

Lτx = D−1y

Zadatak. Formirajte algoritam rjesavanja sustava nakon LDLτ faktorizacije.

Zadatak. Modificirajte Algoritam 1.8 tako da smjesta elemente matrice L idijagonale D na odgovarajuca mjesta u matrici A. Modificirajte na odgovarajucinacin i algoritam rjesavanja sustava nakon faktorizacije.

Zadatak. Izracunajte broj operacija u Algoritmu 1.8.

Rjesavanje sustava pomocu LDLτ faktorizacije naziva se Croutova metoda.U primjenama se cesto javljaju simetricne pozitivno definitne matrice.

Definicija 1.1 Kvadratna matrica A ∈ Rn×n je pozitivno definitna ako za svaki

vektor x ∈ Rn, x 6= 0, vrijedi Ax · x > 0.

Zadatak. Dokazite da je svaka pozitivno definitna matrica regularna i da su jojsvi dijagonalni elementi strogo pozitivni.

Radna verzija

1.14 Faktorizacija Choleskog 23

Zadatak. Dokazite sljedecu tvrdnju: Ako je matrica A ∈ Rn×n pozitivno defi-

nitna, onda su sve njene glavne podmatrice pozitivno definitne.

Svaka simetricna pozitivno definitna matrica ima jedinstvenu LDLτ faktori-zaciju. Dapace, elementi dijagonalne matrice D strogo su pozitivni. To slijedi izcinjenice da je D pozitivno definitna matrica. Naime.

Dx · x = AL−τx · L−τx = 0

povlaci, zbog pozitivne definitnosti matrice A, da je L−τx = 0, a zbog regular-nosti matrice L (jedinice na dijagonali) mora vrijediti x = 0.

Teorem 1.5 (Faktorizacija Choleskog) Neka je A ∈ Rn×n simetricna pozitivno de-

finitna matrica. Tada postoji jedinstvena donja trokutasta matrica G s pozitivnomdijagonalom, takva da je A = GGτ .

Dokaz. Znamo da je A = LDLτ , gdje je D = diag(d1, . . . , dn). Buduci da suelementi di pozitivni definiramo G = Ldiag(

√d1, . . . ,

√dn) Evidentno je A =

GGτ . Jedinstvenost slijedi iz jedinstvenosti LDLτ faktorizacije (dokazite).

Algoritam faktorizacije Choleskog izvodi se analogno kao algoritam LDLτ

faktorizacije. Imamo:

Algoritam 1.9 (Faktorizacija Choleskog)

1: Ulaz: red matrice n i matrica A = (aij)2: for j = 1, 2, . . . , n do

3: gjj = ajj

4: for k = 1, . . . , j − 1 do

5: gjj = gjj − g2jk

6: end for

7: gjj =√

gjj

8: for i = j + 1, . . . , n do

9: gij = aij

10: for k = 1, . . . , j − 1 do

11: gij = gij − gikgjk

12: end for

13: gij = gij/gjj

14: end for

15: end for

16: Izlaz: matrica G = (gij)

Zadatak. Izvedite Algoritam 1.9.

Zadatak. Implementirajte Algoritam 1.9 tako da elemente matrice G sprema uodgovarajuce elemente matrice A.

Zadatak. Formirajte algoritme za rjesavanje sustava nakon faktorizacije Chole-skog.

M. Jurak 31. svibnja 2006.

24 Direktne metode za linearne sustave

1.15 Diskretizacija parcijalne diferencijalne jed-

nadzbe

Metodu konacnih diferencija primijenit cemo sada na diskretizaciju parcijalnediferencijalne jednadzbe. Uzet cemo jednostavan primjer elipticke jednadzbe upravokutnoj domeni.

Neka je Ω = (0, Lx) × (0, Ly) (otvoreni) pravokutnik sa stranicama Lx i Ly;rub pravokutnika oznacavamo s ∂Ω. Zadane su glatke funkcije

k1, k2, c, f : Ω = [0, Lx] × [0, Ly] → R

sa svojstvom da postoji konstanta k0 > 0 takva da je

k1(x, y) ≥ k0 > 0, k2(x, y) ≥ k0 > 0, c(x, y) ≥ 0, (1.7)

za sve (x, y) ∈ Ω. Nadalje, neka je zadana glatka funkcija

u0 : ∂Ω → R.

Promatramo Dirichletov rubni problem

− ∂

∂x

(

k1∂u

∂x

)

− ∂

∂y

(

k2∂u

∂y

)

+ cu = f u Ω, (1.8)

u = u0 na ∂Ω. (1.9)

U problemu (1.8), (1.9) treba odrediti nepoznatu funkciju u = u(x, y) koja za-dovoljava diferencijalnu jednadzbu (1.8) u domeni Ω a na rubu domene primapoznatu vrijednost u0, odn. u(x, y) = u0(x, y) za sve (x, y) ∈ ∂Ω.

1.15.1 Diskretizacija

Interval (0, Lx) podijelimo na n + 1 jednakih podintervala uvodenjem tocaka

xi = ihx, i = 0, 1, . . . , n + 1, hx =Lx

n + 1.

Isto tako, interval (0, Ly) podijelimo na m + 1 podintervala

yj = jhy, j = 0, 1, . . . , m + 1, hy =Ly

m + 1.

Tocke (xi, yj) za i = 0, 1, . . . , n + 1, te = 0, 1, . . . , m + 1 cine diskretizacijskumrezu. Brojeve tocaka n i m odabiremo tako da imamo hx ≈ hy, ukoliko vec nemozemo postici jednakost.

Radna verzija

1.15 Diskretizacija parcijalne diferencijalne jednadzbe 25

U svakoj unutarnjoj tocki mreze diskretiziramo diferencijalni operator nasljedeci nacin:

∂x

(

k1 ∂u

∂x

)

i,j≈ 1

hx

[

k1i+ 1

2,j

∂u

∂x

i+ 1

2,j− k1

i− 1

2,j

∂u

∂x

i− 1

2,j

]

≈ 1

hx

[

k1i+ 1

2,j

ui+1,j − ui,j

hx

− k1i− 1

2,j

ui,j − ui−1,j

hx

]

=1

h2x

[

k1i+ 1

2,jui+1,j + k1

i− 1

2,jui−1,j − (k1

i+ 1

2,j

+ k1i− 1

2,j)ui,j

]

.

U ovom racunu i nadalje koristimo pokrate

k1i+ 1

2,j

= k1((i +1

2)hx, jhy), ui,j = u(ihx, jhy) itd.

Na posve isti nacin izvodimo formulu

∂y

(

k2∂u

∂y

)

i,j≈ 1

h2y

[

k2i,j+ 1

2

ui,j+1 + k2i,j− 1

2

ui,j−1 − (k2i,j+ 1

2

+ k2i,j− 1

2

)ui,j

]

.

Time dolazimo do diferencijske jednadzbe

− 1

h2x

[

k1i+ 1

2,jui+1,j + k1

i− 1

2,jui−1,j − (k1

i+ 1

2,j

+ k1i− 1

2,j)ui,j

]

− 1

h2y

[

k2i,j+ 1

2

ui,j+1 + k2i,j− 1

2

ui,j−1 − (k2i,j+ 1

2

+ k2i,j− 1

2

)ui,j

]

+ci,jui,j = fi,j.

Da bismo pojednostavili zapis uvedimo oznake:

λ =hx

hy

, h = hx (1.10)

Ai,j = k1i+ 1

2,j

+ k1i− 1

2,j

+ λ2(k2i,j+ 1

2

+ k2i,j− 1

2

) + h2ci,j (1.11)

Bi,j = k1i+ 1

2,j, Ci,j = k1

i− 1

2,j

(1.12)

Di,j = λ2k2i,j+ 1

2

, Ei,j = λ2k2i,j− 1

2

(1.13)

Fi,j = h2fi,j . (1.14)

Sada imamo diferencijsku jednadzbu

Ai,jui,j − Bi,jui+1,j − Ci,jui−1,j − Di,jui,j+1 − Ei,jui,j−1 = Fi,j

za i = 1, 2, . . . , n i j = 1, 2, . . . , m. U njoj treba jos uvaziti rubne uvjete kojiglase:

u0,j = u00,j, un+1,j = u0

n+1,j za j = 1, 2, . . . , m

ui,0 = u0i,0, ui,m+1 = u0

i,m+1 za i = 1, 2, . . . , n.

M. Jurak 31. svibnja 2006.

26 Direktne metode za linearne sustave

Rjesenje ovog sustava (ui,j) je mrezna funkcija. Njene vrijednosti aproksimirajutocno rjesenje u tockama mreze: ui,j ≈ u(xi, yj).

Da bismo od diferencijskih jednadzbi dosli do sustava linearnih jednadzbimoramo uvesti nacin indeksiranja cvorova mreze. O nacinu indeksiranja ovisimatrica sustava.

Indeksirajmo mrezne tocke u leksikografskom poretku:

k = (j − 1)n + i, i = 1, 2, . . . , n, j = 1, 2, . . . , m

vk = ui,j, ak = Ai,j, bk = Bi,j , ck = Ci,j, dk = Di,j, ek = Ei,j , fk = Fi,j.

Uocimo da je tada

ui+1,j = vk+1, ui−1,j = vk−1, ui,j+1 = vk+n, ui,j−1 = vk−n.

Uzimajuci u obzir rubne uvjete dobivamo sljedeci niz jednadzbi:

1. redak, k = i

a1v1 − b1vk+1 − d1vk+n = f1 + c1u00,1 + e1u

01,0 (i = 1)

akvk − bkvk+1 − ckvk−1 − dkvk+n = fk + eku0k,0 (i = 2, . . . , n − 1)

anvn − cnvn−1 − dnv2n = fn + bnu0n+1,1 + enu

0n,0 (i = n)

j-ti redak za 1 < j < m, k = (j − 1)n + i

akvk − bkvk+1 − dkvk+n − ekvk−n = fk + cku00,j (i = 1)

akvk − bkvk+1 − ckvk−1 − dkvk+n − ekvk−n = fk (i = 2, . . . , n − 1)

akvk − ckvk−1 − dkvk+n − ekvk−n = fk + bku0n+1,j (i = n)

m-ti redak, k = (m − 1)n + i

akvk − bkvk+1 − ekvk−n = fk + cku00,m + dku

01,m+1 (i = 1)

akvk − bkvk+1 − ckvk−1 − ekvk−n = fk + dku0i,m+1 (i = 2, . . . , n − 1)

akvk − ckvk−1 − ekvk−n = fk + bku0n+1,m + dku

0n,m+1 (i = n)

Radna verzija

1.15 Diskretizacija parcijalne diferencijalne jednadzbe 27

Primjer. n = 3, m = 4, N = n ∗ m = 12.

a1 −b1 0 −d1 0 0 0 0 0 0 0 0−c2 a2 −b2 0 −d2 0 0 0 0 0 0 00 −c3 a3 0 0 −d3 0 0 0 0 0 0

−e4 0 0 a4 −b4 0 −d4 0 0 0 0 00 −e5 0 −c5 a5 −b5 0 −d5 0 0 0 00 0 −e6 0 −c6 a6 0 0 −d6 0 0 00 0 0 −e7 0 0 a7 −b7 0 −d7 0 00 0 0 0 −e8 0 −c8 a8 −b8 0 −d8 00 0 0 0 0 −e9 0 −c9 a9 0 0 −d9

0 0 0 0 0 0 −e10 0 0 a10 −b10 00 0 0 0 0 0 0 −e11 0 −c11 a11 −b110 0 0 0 0 0 0 0 −e12 0 −c12 a12

v1

v2

v3

v4

v5

v6

v7

v8

v9

v10

v11

v12

=

f1 + c1u0

0,1 + e1u0

1,0

f2 + e2u0

2,0

f3 + b3u0

4,1 + e3u0

3,0

f4 + c4u0

0,2

f5

f6 + b6u0

4,2

f7 + c7u0

0,3

f8

f9 + b9u0

4,3

f10 + c10u0

0,4 + d10u0

1,5

f11 + d11u0

2,5

f12 + d12u0

3,5 + b12u0

4,4

1.15.2 Trakaste matrice

Matrica koju smo dobili diskretizacijom elipticke parcijalne diferencijalne jed-nadzbe ima tek 5 dijagonala u kojima se nalaze elementi razliciti od nule. Takvamatrica je specijalan slucaj trakastih matrica u kojima se elementi razliciti odnule nalaze u jednoj traci oko glavne dijagonale.

Preciznije, kazemo da je matrica A ∈ RN×N trakasta ako se svi elementi aij

matrice razliciti od nule nalaze u podrucju indeksa

Jp,q = (i, j) : − q ≤ i − j ≤ p

za neke 0 ≤ p, q < N . Uocimo u ovoj definiciji da izraz i − j predstavlja indeksdijagonale u matrici: i− j = 0 daje glavnu dijagonalu (svi elementi aij za koje jei = j); i− j = −1 je prva dijagonala iznad glavne dijagonale, a i − j = 1 je prvadijagonala ispod glavne dijagonal, itd. Prema tome, trakasta matrica s indeksimap i q ima p dijagonala s elementima razlicitim od nule ispod glavne dijagonalei q dijagonala iznad glavne dijagonale. Ukupno p + q + 1 dijagonala sadrzi sveelemente matrice razlicite od nule.

Prirodno je matricu koja ima trakastu strukturu pamtiti u trakastoj formi ukojoj se pamte samo dijagonale matrice koje padaju u podrucje Jp,q. Pri tome sedijagonale originalne matrice smjestaju u retke. Ako zapis matrice A u trakstojformi ozacimo s A.band, onda imamo

A.band(i − j + q + 1, j) = ai,j . (1.15)

M. Jurak 31. svibnja 2006.

28 Direktne metode za linearne sustave

Matrica A.band ima dimenziju (q+p+1)×N . U prvom retku te matrice pamti senajvisa dijagonala (dijagonala s indeksom i− j = −q) i redom ostale dijagonale.Glavna dijagonala matrice A nalazi se u retku q + 1 matrice A.band.

Primjer 1.1 U ovom primjeru imamo trakastu matricu dimenzije 8 × 8 s parametrima p = 1i q = 2.

A =

a11 a12 a13 0 0 0 0 0a21 a22 a23 a24 0 0 0 00 a32 a33 a34 a35 0 0 00 0 a43 a44 a45 a46 0 00 0 0 a54 a55 a56 a57 00 0 0 0 a65 a66 a67 a68

0 0 0 0 0 a76 a77 a78

0 0 0 0 0 0 a87 a88

U trakastom zapisu pamti se samo p + q + 1 = 4 dijagonale matrice, pa je dimenzija matriceA.band jednaka 4 × 8. Time je potreba za memorijom prepolovljena.

A.band =

∗ ∗ a13 a24 a35 a46 a57 a68

∗ a12 a23 a34 a45 a56 a67 a78

a11 a22 a33 a44 a55 a66 a77 a88

a21 a32 a43 a54 a65 a76 a87 ∗

Iz ovog primjera se vidi da svi elementi matrice A.band nisu dobro defini-rani: takvi su u primjeru oznaceni zvjezdicom. To slijedi stoga sto jedino glavnadijagonala ima N elemenata, dok su sve druge krace.

Svaki algoritam koji radi s matricom u trakastoj formi treba voditi racunao tome da nikada ne dohvati vrijednosti izvan trake koja se pamti. To je lakopostici ako se uoci da u svakom retku matrice ima najvise p + q + 1 elemenatarazlicitih od nule, q desno od dijagonalnog i p lijevo od dijagonalnog, pa stoga ui-tom retku indeks stupca treba biti u granicama

max(1, i − p) ≤ j ≤ min(N, i + q) (1.16)

Analogne granice vrijede za indeks retka u svakom pojedinom stupcu.Ako je matrica simetricna (p = q), onda mozemo prepoloviti kolicinu memorije

potrebnu za pamcenje sustava. Tada, naime, mozemo pamtiti samo gornji trokuttrakaste matrice, sto znaci da ce zapis u matrice u trakastoj formi biti isto osim stoce se pamtiti samo gornje dijagonale i dimenzija matrice A.band ce biti (q+1)×N(umjesto (2q + 1) × N).

Trakasti zapis matrice je pogodan za metodu Gaussovih eliminacija stoga stoeliminacije nikad ne popunjavaju elementima razlicitim od nule matricu izvantrake. To se svojstvo lako provjerava.

Primjer 1.2 Uzmimo primjer simetricne matrice A dobivene diskretizacijom elipticke par-cijalne diferencijalne jednadzbe na pravokutniku. Uz n diskretizacijskih tocaka po x-osi i mtocaka po y-osi te leksikografski poredak dobili smo simetricnu matricu reda N = mn koja imatrakastu formu; sirina trake je p = q = n. Zapisat cemo algoritam faktorizacije Choleskog smatricom u trakastoj formi u kojoj se pamti samo gornji trokut matrice. Radi kratkoce zapisamatricu A.band oznacavamo s B i uvodimo oznaku α(i, j) = (i− j +n+1, j). Algoritam glasi:

Radna verzija

1.16 Zadaci 29

Algoritam 1.10 (Faktorizacija Choleskog)

1: for j = 1, 2, . . . , N do

2: B(α(j, j)) = [B(α(j, j)) −∑j−1k=max(1,j−n) B(α(k, j))2]1/2

3: for i = j + 1, . . . , min(j + n, N) do

4: B(α(i, j)) = [B(α(i, j)) −∑j−1k=max(1,i−n) B(α(k, i))B(α(k, j))]/B(α(j, j))

5: end for

6: end for

Zadatak. Provjerite Algoritam 1.10 i izvedite odgovarajuce algoritme za rjesavanjesustava nakon faktorizacije.

1.16 Zadaci

Z1.1. Napisite algoritam koji rjesava sustav s donjom trokutastom matricom.

Z1.2. Pokazite da je broj operacija u algoritmu iz Zadatka Z2.1 jednak n2, gdjeje n red matrice.

Z1.3. Pokazite da je broj fp-operacija potrebnih za mnozenje gornje (donje) tro-kutaste matrice s vektorom jednak n2.

Z1.4. Reorganizirajte algoritam iz Zadatka Z2.1 po stupcima.

Z1.5. Inverz gornje (donje) trokutaste matrice je gornja (donja) trokutasta ma-trica.

Z1.6. Produkt od dvije gornje (donje) trokutaste matrice je gornja (donja) tro-kutasta matrica.

Z1.7. Inverz jedinicne gornje (donje) trokutaste matrice je jedinicna gornja (do-nja) trokutasta matrica.

Z1.8. Produkt od dvije jedinicne gornje (donje) trokutaste matrice je jedinicnagornja (donja) trokutasta matrica.

Z1.9. Dokazite formulu (1.2) ako su vektori m(k) i ek oblika (1.1).

Z1.10. Neka su σ i σ′ dvije permutacije na skupu 1, 2, . . . , n i neka su Pσ i Pσ′

pripadne permutacijska matrice. Dokazite da je

PσPσ′ = Pσ′σ,

gdje je σ σ′ kompozicija dviju permutacija.

Z1.11. Neka je σ permutacija na skupu 1, 2, . . . , n i Pσ njena permutacijska ma-trice. Dokazite da je

Pσ−1 = P−1σ = P τ

σ

gdje je σ−1 inverzna permutacija za permutaciju σ.

M. Jurak 31. svibnja 2006.

30 Direktne metode za linearne sustave

Z1.12. Neka je σ permutacija na skupu 1, 2, . . . , n i Pσ njena permutacijska ma-trice te A matrica reda n. Dokazite da je

(PσA)ij = Aσ(i)j , (AP τσ )ij = Aiσ(j).

Z1.13. Dokazite da za uvjetovanost matrice A vrijedi ocjena (1.6) za svaku opera-torsku matricnu normu.

Radna verzija