of 30 /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)

Text of Direktne Metode Za Linearne Sustave

  • 1Direktne 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 a1n0 a22 a23 a2n0 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 a120 a22

    ] [x1x2

    ]=

    [b1b2

    ],

    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

    nj=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/ann2: for i = n 1, n 2, . . . , 1 do3: xi = bi4: for j = i+ 1, i+ 2, . . . , n do5: xi = xi aijxj6: end for

    7: xi = xi/aii8: 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 detA = 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:

    n1i=1

    (2(n i) + 1) = (2n+ 1)(n 1) 2n1i=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 xnte 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 do2: xj = bj/ajj3: for i = 1, 2, . . . , j 1 do4: bi = bi aijxj5: 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

    MatricaA Rnn ima LU faktorizaciju ako postoji jedinicna donja trokutastamatrica L i gornja trokutasta matrica U takve da je

    A = LU.

    LU faktorizacija matrice nije uvijek moguca. Na primjer, matrica1 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

    L12 L1 = U2U11 .

    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

    L12 L1 = U2U11 = I

    odnosno L1 = L2 i U1 = U2.

    1.3 Gaussove eliminacije

    Zadana je kvadratna matrica A Rnn i vektor desne strane b Rn. 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 sA(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)1a

    (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. Nakonk 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 = ka

    (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 matricomA(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 0a(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 0a(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 0m(1)2 1 0 0m(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 00 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) = Ln1Ln2 L2L1A, b(n) = Ln1Ln2 L2L1b(2),gdje je

    Lk =

    1 0 0 0...

    . . ....

    .... . .

    0 1 0 00 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 = Ln1Ln2 L2L1A,i odavde

    A = L11 L12 L1n1U.

    Matrica Lk moze se zapisati u obliku

    Lk = Im(k) ekgdje 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

    (Im(k) ek)1 = I+m(k) ek (1.2)

    te stoga dobivamo

    L = L11 L12 L1n1 =

    1 0 0 0m

    (1)2 0 0 0

    m(1)3 1 0 0...

    . . ....

    . . ....

    ...

    m(1)n1 m(k)n1 1 0

    m(1)n m(k)n m(n1)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 Rnn 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 izvodenja 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 do3: for i = k + 1, k + 2, . . . , n do4: z = aik/akk5: aik = z6: for j = k + 1, k + 2, . . . , n do7: aij = aij zakj8: 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 do4: for i = k + 1, k + 2, . . . , n do5: bi = bi aikbk6: end for

    7: end for

    8: bn = bn/ann9: for i = n 1, n 2, . . . , 1 do10: for j = i+ 1, i+ 2, . . . , n do11: bi = bi aijbj12: end for

    13: bi = bi/aii14: 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(nk) 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

    n1k=1

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

    j(2j + 1) =

    n1j=1

    j + 2

    n1j=1

    j2

    =n(n 1)

    2+ 2

    (n 1)n(2n 1)6

    = n(n 1)4n+ 16

    .

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

    n1k=1

    2(n k) =n1j=1

    2j = n(n 1)

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

    n1i=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+ 16

    + 2n2 n = 23n3 +

    3

    2n2 7

    6n.

    1.7 Pivotiranje

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

    0 11 1

    ] [x1x2

    ]=

    [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

    ] [x1x2

    ]=

    [12

    ]. (1.3)

    Primjenom Gaussovih eliminacija dolazimo do sustava[ 10 1 1

    ] [x1x2

    ]=

    [1

    2 1

    ],

    cije je rjesenje

    x2 =1 21 , 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

    ] [x1x2

    ]=

    [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

    ] [x1x2

    ]=

    [1

    2

    ].

    Gaussove eliminacije daju[1 1

    0 1 1] [

    x1x2

    ]=

    [1

    2 1]

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

    x2 =2 11 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 poredakjednadzbi. Ako na primjer u (1.3) zamijenimo poredak jednadzbi dolazimo dosustava [

    1 1 1

    ] [x1x2

    ]=

    [21

    ]koji nakon eliminacija postaje[

    1 10 1

    ] [x1x2

    ]=

    [2

    1 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 do3: pi = i4: end for

    5: for k = 1, 2, . . . , n 1 do6: 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 pj11: for i = k + 1, k + 2, . . . , n do12: z = apik/apkk13: apik = z14: for j = k + 1, k + 2, . . . , n do15: apij = apij zapkj16: 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 do5: for i = k + 1, k + 2, . . . , n do6: bpi = bpi apikbpk7: end for

    8: end for

    9: xn = bpn/apnn10: for i = n 1, n 2, . . . , 1 do11: tmp = 0.012: for j = i+ 1, i+ 2, . . . , n do13: tmp = tmp+ apijxj14: end for

    15: xi = (bpi tmp)/apii16: 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

    nj=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

    PP = P , P1 = P1 = 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 2

    6 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 6

    6 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)pika

    (k)pkk

    1a

    (k)pkj, k < i, j,

    a(k)pika

    (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) (promjena

    je 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)pika

    (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 =i1k=1

    a(k)pika

    (k)pkk

    1 a(k)pkj + 1 a(i)pij

    =i1k=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 =

    jk=1

    likukj =

    j1k=1

    a(k)pika

    (k)pkk

    1 a(k)pkj + a(j)pija

    (j)pjj

    1 a(i)pij

    =

    j1k=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 dozi = bpi

    i1k=1 likzk

    end for

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

    Radna verzija

  • 1.11 Elementarna analiza greske 17

    xi =1uii(zi

    nj=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 dobpi = bpi

    i1k=1 apikbpk

    end for

    for i = n, n 1, . . . , 1 doxi =

    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 kvadratnimmatricama reda n oznacavat cemo takoder sa :

    A = maxx 6=0

    Axx .

    Na primjer, za standardne vektorske norme

    x1 =n

    i=1

    |xi|, x2 =(

    ni=1

    x2i

    )1/2, x = max{|x1|, . . . , |xn|},

    dobivamo sljedece (operatorske) matricne norme

    A1 = max1jn

    ni=1

    |aij|, A2 =(AA), A = max

    1in

    nj=1

    |aij, |

    gdje je (A) spektralni radijus matrice A.

    Za regularnu kvadratnu matricu A reda n i vektor b Rn neka je x Rntocno rjesenje jednadzbe

    Ax = b,

    a x priblizno rjesenje dobiveno nekom numerickom metodom. Rezidualni vektor

    r = bAx

    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 xx .

    Koristeci rezidualnu jednadzbu dobivamo

    x xx =

    A1rx A

    1 rx .

    S druge strane, iz jednadzbe Ax = b dobivamo b A x sto daje1

    x Ab ,

    i stoga imamox xx A A

    1 rb .

    Broj(A) = A A1 1

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

    r A x x i stoga jex xx

    rA x .

    Iz jednadzbe x = A1b dobivamo x A1b sto daje1

    x 1

    A1b ,

    i stoga imamox xx

    1

    A A1rb .

    Spojimo li ove dvije ocjene dobivamo

    1

    (A)

    rb

    x xx (A)

    rb . (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) maxmin

    (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)

    bb

    x xx (A)

    bb .

    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) = Axodakle je x x A1 A x te stoga imamo

    x xx A

    1 A = (A)AA .

    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

    Ax = bAx = 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 xr = bAx (izracunati u dvostrukoj preciznosti)Lz = P rUe = zx = 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 dode 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 matricaA Rnn 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 = D1U , 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 jeA = (aij),

    Radna verzija

  • 1.14 Faktorizacija Choleskog 21

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

    aij =

    nk=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 =

    jk=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 = ai1d1

    .

    Time je citav prvi stupac matrice L odreden.Drugi stupac: j = 2.

    Za i = 2:

    a22 =

    2k=1

    l2kdkl2k = l221d1 + d2 d2 = a22 l221d1.

    Za i > 2:

    ai2 =

    2k=1

    likdkl2k = li1d1l21 + li2d2 li2 = 1d2(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 j1k=1

    l2jkdk

    lij =1

    dj(aij

    j1k=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 do3: for k = 1, . . . , j 1 do4: vk = ljkdk5: end for

    6: dj = ajj7: for k = 1, . . . , j 1 do8: dj = dj ljkvk9: end for

    10: for i = j + 1, . . . , n do11: lij = aij12: for k = 1, . . . , j 1 do13: lij = lij likvk14: end for

    15: lij = lij/dj16: 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 LDLx = b

    sto daje

    Ly = b

    Lx = D1y

    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 Rnn je pozitivno definitna ako za svakivektor 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 Rnn 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 = ALx Lx = 0

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

    Teorem 1.5 (Faktorizacija Choleskog) Neka je A Rnn 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 do3: gjj = ajj4: for k = 1, . . . , j 1 do5: gjj = gjj g2jk6: end for

    7: gjj =gjj

    8: for i = j + 1, . . . , n do9: gij = aij

    10: for k = 1, . . . , j 1 do11: gij = gij gikgjk12: end for

    13: gij = gij/gjj14: 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

    (k1u

    x

    ) y

    (k2u

    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

    (k1u

    x

    ) i,j 1

    hx

    [k1i+ 1

    2,j

    u

    x

    i+ 1

    2,j k1

    i 12,j

    u

    x

    i 1

    2,j

    ] 1

    hx

    [k1i+ 1

    2,j

    ui+1,j ui,jhx

    k1i 1

    2,j

    ui,j ui1,jhx

    ]=

    1

    h2x

    [k1i+ 1

    2,jui+1,j + k

    1i 1

    2,jui1,j (k1i+ 1

    2,j+ k1

    i 12,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

    (k2u

    y

    ) i,j 1

    h2y

    [k2i,j+ 1

    2

    ui,j+1 + k2i,j 1

    2

    ui,j1 (k2i,j+ 12

    + k2i,j 1

    2

    )ui,j

    ].

    Time dolazimo do diferencijske jednadzbe

    1h2x

    [k1i+ 1

    2,jui+1,j + k

    1i 1

    2,jui1,j (k1i+ 1

    2,j+ k1

    i 12,j)ui,j

    ] 1h2y

    [k2i,j+ 1

    2

    ui,j+1 + k2i,j 1

    2

    ui,j1 (k2i,j+ 12

    + k2i,j 1

    2

    )ui,j

    ]+ci,jui,j = fi,j.

    Da bismo pojednostavili zapis uvedimo oznake:

    =hxhy, h = hx (1.10)

    Ai,j = k1i+ 1

    2,j+ k1

    i 12,j+ 2(k2

    i,j+ 12

    + k2i,j 1

    2

    ) + h2ci,j (1.11)

    Bi,j = k1i+ 1

    2,j, Ci,j = k

    1i 1

    2,j

    (1.12)

    Di,j = 2k2

    i,j+ 12

    , Ei,j = 2k2

    i,j 12

    (1.13)

    Fi,j = h2fi,j . (1.14)

    Sada imamo diferencijsku jednadzbu

    Ai,jui,j Bi,jui+1,j Ci,jui1,j Di,jui,j+1 Ei,jui,j1 = Fi,jza i = 1, 2, . . . , n i j = 1, 2, . . . , m. U njoj treba jos uvaziti rubne uvjete kojiglase:

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

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

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

    0i,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, . . . , mvk = 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, ui1,j = vk1, ui,j+1 = vk+n, ui,j1 = vkn.

    Uzimajuci u obzir rubne uvjete dobivamo sljedeci niz jednadzbi:

    1. redak, k = i

    a1v1 b1vk+1 d1vk+n = f1 + c1u00,1 + e1u01,0 (i = 1)akvk bkvk+1 ckvk1 dkvk+n = fk + eku0k,0 (i = 2, . . . , n 1)

    anvn cnvn1 dnv2n = fn + bnu0n+1,1 + enu0n,0 (i = n)

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

    akvk bkvk+1 dkvk+n ekvkn = fk + cku00,j (i = 1)akvk bkvk+1 ckvk1 dkvk+n ekvkn = fk (i = 2, . . . , n 1)

    akvk ckvk1 dkvk+n ekvkn = fk + bku0n+1,j (i = n)

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

    akvk bkvk+1 ekvkn = fk + cku00,m + dku01,m+1 (i = 1)akvk bkvk+1 ckvk1 ekvkn = fk + dku0i,m+1 (i = 2, . . . , n 1)

    akvk ckvk1 ekvkn = fk + bku0n+1,m + dku0n,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 0c2 a2 b2 0 d2 0 0 0 0 0 0 00 c3 a3 0 0 d3 0 0 0 0 0 0e4 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 d90 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

    v1v2v3v4v5v6v7v8v9v10v11v12

    =

    f1 + c1u00,1 + e1u0

    1,0

    f2 + e2u02,0f3 + b3u04,1 + e3u

    0

    3,0

    f4 + c4u00,2f5

    f6 + b6u04,2f7 + c7u00,3

    f8f9 + b9u04,3

    f10 + c10u00,4 + d10u0

    1,5

    f11 + d11u02,5f12 + d12u03,5 + b12u

    0

    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 RNN trakasta ako se svi elementi aijmatrice 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

    MatricaA.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 a680 0 0 0 0 a76 a77 a780 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 a78a11 a22 a33 a44 a55 a66 a77 a88a21 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 memorijepotrebnu 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 matriceA.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 do2: B((j, j)) = [B((j, j)) j1k=max(1,jn) B((k, j))2]1/23: for i = j + 1, . . . ,min(j + n,N) do

    4: B((i, j)) = [B((i, j)) j1k=max(1,in) B((k, i))B((k, j))]/B((j, j))5: end for6: 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 Ppripadne permutacijska matrice. Dokazite da je

    PP = P,

    gdje je kompozicija dviju permutacija.Z1.11. Neka je permutacija na skupu {1, 2, . . . , n} i P njena permutacijska ma-

    trice. Dokazite da jeP1 = 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

    (PA)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