Separoituvien yhtälöryhmien ratkaiseminen ohjelmoitavalla näytönohjaimella



Samankaltaiset tiedostot
Yleisen PSCR-menetelmän toteutus ohjelmoitavalla näytönoh

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Matematiikka B2 - Avoin yliopisto

Ennakkotehtävän ratkaisu

a b c d

Ortogonaalisen kannan etsiminen

Gaussin ja Jordanin eliminointimenetelmä

Lineaarinen yhtälöryhmä

Käänteismatriisin ominaisuuksia

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Ominaisvektoreiden lineaarinen riippumattomuus

Tyyppi metalli puu lasi työ I II III

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

MS-C1340 Lineaarialgebra ja

7 Vapaus. 7.1 Vapauden määritelmä

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Lineaariset kongruenssiyhtälöryhmät

Ominaisarvo-hajoitelma ja diagonalisointi

4.3. Matemaattinen induktio

Koodausteoria, Kesä 2014

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Sisätuloavaruudet. 4. lokakuuta 2006

Lineaarikuvauksen R n R m matriisi

LAUSEKKEET JA NIIDEN MUUNTAMINEN

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

5 Lineaariset yhtälöryhmät

Ortogonaaliprojektio äärellisulotteiselle aliavaruudelle

Yleiset lineaarimuunnokset

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

CUDA. Moniydinohjelmointi Mikko Honkonen

Matematiikka B2 - TUDI

Similaarisuus. Määritelmä. Huom.

Esimerkki 19. Esimerkissä 16 miniminormiratkaisu on (ˆx 1, ˆx 2 ) = (1, 0).

1. LINEAARISET YHTÄLÖRYHMÄT JA MATRIISIT. 1.1 Lineaariset yhtälöryhmät

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

1 Lineaariavaruus eli Vektoriavaruus

Numeeriset menetelmät

2.8. Kannanvaihto R n :ssä

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Muodonmuutostila hum

802118P Lineaarialgebra I (4 op)

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Käänteismatriisi 1 / 14

802320A LINEAARIALGEBRA OSA I

Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia: Mitä opimme?

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Äärellisesti generoitujen Abelin ryhmien peruslause

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Moniulotteisia todennäköisyysjakaumia

Numeeriset menetelmät

Numeeriset menetelmät

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

1 Matriisit ja lineaariset yhtälöryhmät

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Johdatus todennäköisyyslaskentaan Moniulotteisia todennäköisyysjakaumia. TKK (c) Ilkka Mellin (2005) 1

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

10 Matriisit ja yhtälöryhmät

Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.

2 Yhtälöitä ja epäyhtälöitä

sitä vastaava Cliffordin algebran kannan alkio. Merkitään I = e 1 e 2 e n

Ominaisarvot ja ominaisvektorit 140 / 170

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

} {{ } kertaa jotain

Lineaarialgebra ja differentiaaliyhtälöt Harjoitus 4 / Ratkaisut

Ominaisarvo ja ominaisvektori

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

Osoita, että täsmälleen yksi vektoriavaruuden ehto ei ole voimassa.

Lineaariset yhtälöryhmät ja matriisit

Determinantti 1 / 30

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

2.5. Matriisin avaruudet ja tunnusluvut

Diofantoksen yhtälön ratkaisut

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

1 Komparatiivinen statiikka ja implisiittifunktiolause

Matriisilaskenta Luento 8: LU-hajotelma

BM20A0700, Matematiikka KoTiB2

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

(1.1) Ae j = a k,j e k.

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

1 Rajoittamaton optimointi

Ominaisarvoon 4 liittyvät ominaisvektorit ovat yhtälön Ax = 4x eli yhtälöryhmän x 1 + 2x 2 + x 3 = 4x 1 3x 2 + x 3 = 4x 2 5x 2 x 3 = 4x 3.

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

Numeeriset menetelmät

Luento 5: Peliteoriaa

PERUSASIOITA ALGEBRASTA

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

Ominaisarvo ja ominaisvektori

Transkriptio:

Mirko Myllykoski Separoituvien yhtälöryhmien ratkaiseminen ohjelmoitavalla näytönohjaimella Tietotekniikan pro gradu -tutkielma 17. lokakuuta 2011 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä

Tekijä: Mirko Myllykoski Yhteystiedot: mirko.myllykoski@jyu.fi Työn nimi: Separoituvien yhtälöryhmien ratkaiseminen ohjelmoitavalla näytönohjaimella Title in English: Solving separable linear systems on GPU Työ: Tietotekniikan pro gradu -tutkielma Sivumäärä: 98 Tiivistelmä: Tutkielmassa käsitellään PSCR-menetelmän matemaattinen tausta ja ohjelmoitavien näytönohjaimien perusteet. Tutkielmaa varten toteutettiin kaksi ohjelmakoodia OpenCL-ohjelmoitirajapinnan avulla. Tridiagonaalisien yhtälöryhmien ratkaisemiseen käytettiin (rinnakkaista) syklinen reduktio -algoritmiä, jossa hyödynnettiin datan permutointia. Toteutuksia verrattiin toisiinsa ja CPU:lla suoritettavaan fortrantoteutukseen. Nopeusmittauksien perusteella OpenCL-toteutukset olivat kymmeniä kertoja CPU-toteutusta nopeampia. English abstract: This thesis covers mathematical background of the PSCR-method and gives introduction to programmable video cards. Two program codes were implemented by using the OpenCL-framework. The arising tridiagonal systems were solved by (parallel) cyclic reduction algorithm and the tridiagonal solver utilized data permutations. OpenCL-implementiations were compared to each others and CPU driven fortran code and the results show that OpenCL-implementations were dozens of time faster than CPU-implementation. Avainsanat: Divide & conquer, GPGPU, GPU, OpenCL, PSCR, Syklinen reduktio, Tridiagonaalinen yhtälöryhmä Keywords: Cyclic reduction, Divide & conquer, GPGPU, GPU, OpenCL, PSCR, Tridiagonal linear system Copyright c 2011 Mirko Myllykoski All rights reserved.

Sisältö 1 Johdanto 1 2 Motivaatio PSCR-menetelmän toteuttamiselle 4 2.1 Poissonin ongelma............................. 4 2.2 Diffuusioyhtälö............................... 7 3 Syklinen reduktio 9 3.1 Normaali syklinen reduktio......................... 9 3.2 Rinnakkainen syklinen reduktio...................... 11 4 PSCR-menetelmä 14 4.1 q-kantainen variantti projektiomatriisimuotoilulla............ 14 4.1.1 Projektiomatriisit.......................... 14 4.1.2 Tensoritulo............................. 15 4.1.3 Perusalgoritmi............................ 17 4.1.4 Aliongelmat ja niiden ominaisuudet................ 22 4.1.5 Osittaisratkaisut.......................... 27 4.1.6 Algoritmin lopullinen muoto.................... 28 4.1.7 Aritmeettisien laskentaoperaatioiden määrä........... 33 4.2 2-kantainen variantti syklinen reduktio -muotoilulla........... 34 4.2.1 Perusalgoritmi............................ 34 4.2.2 Rationaali- ja polynomihajotelmiin perustuva versio....... 35 4.2.3 Osamurtokehitelmään perustuva menetelmä........... 36 4.3 Yhteys projektiomatriisi- ja syklinen reduktio -muotoiluiden välillä... 37 5 OpenCL ja näytönohjaimet 40 5.1 Johdanto ohjelmoitaviin näytönohjaimiin................. 40 5.2 Johdanto OpenCL:ään........................... 42 5.2.1 OpenCL-laitteen hallinta ja säikeet................ 43 5.2.2 OpenCL-laitteen muistimalli.................... 45 5.3 nvidia................................... 46 i

5.3.1 Laskentaelementti.......................... 47 5.3.2 Muisti ja rekisterit......................... 48 5.4 ATI..................................... 50 5.4.1 Laskentaelementti.......................... 50 5.4.2 Muisti ja rekisterit......................... 51 6 Toteutus 53 6.1 Syklinen reduktio ja näytönohjain..................... 53 6.2 4-kantainen toteutus............................ 55 6.2.1 Isäntälaite.............................. 55 6.2.2 Näytönohjain / kaksiulotteinen versio............... 59 6.2.3 Näytönohjain / kolmiulotteinen versio.............. 61 6.2.4 Tridiagonaalisien yhtälöryhmien ratkaiseminen.......... 62 6.3 2-kantainen toteutus............................ 65 7 Tulokset 68 7.1 4-kantainen variantti............................ 69 7.1.1 Kaksiulotteinen toteutus...................... 69 7.1.2 Kolmiulotteinen toteutus...................... 72 7.1.3 Tridiagonaaliratkaisija....................... 76 7.2 2-kantainen variantti............................ 80 7.2.1 Kaksiulotteinen toteutus...................... 80 7.2.2 Kolmiulotteinen toteutus...................... 83 7.3 2- ja 4-kantaisien varianttien vertailua.................. 87 8 Yhteenveto 89 9 Lähteet 91 ii

1 Johdanto Viimeisen 10-15 vuoden aikana videopelien graafisen laskentavaativuuden kasvu on ajanut näytönohjainvalmistajat julkaisemaan toinen toistaan tehokkaampia näytönohjaimia. Pelkkä kasvava laskentateho ei kuitenkaan pitkään yksin riittänyt pelaajille ja pelikehittäjille, koska näytönohjaimiin sisäänrakennetut pintakäsittelyalgoritmit ja tehosteet eivät enää tarjonneet riittävää joustavuutta. Ratkaisuna näytönohjaimiin alettiin lisätä enemmän ohjelmoitavuutta, jolloin uudet ohjelmoitavat näytönohjaimet alkoivat vaikuttaa suuren datarinnakkaisen laskentatehonsa puolesta soveltuvilta myös tieteelliseen laskentaan. Yksi varsin vähän tutkittu käyttökohde näytönohjaimen laskentateholle olisi harvan lineaarisen yhtälöryhmän suora ratkaiseminen. Tässä tutkielmassa käsitellään niin sanotun PSCR-menetelmän (partial solution variant of the cyclic reduction) toteuttamista ohjelmoitavalla näytönohjaimella (graphics processing unit, GPU ). PSCR-menetelmä soveltuu tietyn tyyppisien separoituvien yhtälöryhmien ratkaisemiseen, jollaisia syntyy esimerkiksi silloin, kun Poissonin yhtälö diskretisoidaan suorakulmiossa ääreellisillä differensseillä tai FEM-menetelmillä tietyissä erikoistapauksissa. PSCR-menetelmää voidaan pitää niin sanottuna nopeana Poisson ratkaisijana (fast Poisson solver), jotka ovat erikoistuneita suoria menetelmiä Poissonin yhtälön ratkaisemiseen. Nopeiden Poisson ratkaisijoiden historia alkaa 60-luvulta, jolloin kehitettiin nopeaan Fourier-muunnokseen (fast Fourier transformation, FFT) perustuva menetelmä [1]. Kyseinen menetelmä perustuu siihen, että Poissonin yhtälön oikean puolen funktiolle tehdään Fourier-muunnos yhteen suuntaan, jolloin yhtälön diskretisoinnista syntyvä kerroinmatriisi muuttuu samalla lohkodiagonaaliseksi. Alkuperäisen yhtälön likiratkaisu saadaan selville muunnetun yhtälöryhmän ratkaisusta vastaavalla käänteisellä Fourier-muunnoksella. Menetelmän heikkoutena on sen, että yhtälön diskretisointiin käytetyn hilan tulee olla tasavälinen ainakin Fourier-muunnoksen suuntaan. Toisenlaista lähestymistapaa edustaa syklisen reduktion, jota käsiteltiin lähteessä [1], ja erityisesti sen ns. Buneman variantti [2]. Kaksi edellistä menetelmää voidaan myös yhdistää, jollain päädytään FACR(l)-menetelmään [3, 4], jossa yhtälöryhmän kokoa pienennetään ensin syklisen reduktion avulla, jonka jälkeen siirrytään käyttämään Fourier-muunnokseen perustuvaa menetelmää. Oman luokkansa muodostavat ns. mars- 1

sinta (marching) algoritmit [5, 6], jotka ovat laskenta-ajaltaan lähes optimaalisia, mutta epästabiileja käytännöllisien ongelmien kohdalla. PSCR-menetelmä kehitettiin korvaamaan fishpack-kirjaston [7], yleistettyyn sykliseen reduktioon perustuva, blktri-rutiini. PSCR-menetelmän 2-kantainen muotoilu esiteltiin ensimmäisen kerran lähteessä [8]. Menetelmää kehitettiin tämän jälkeen eteenpäin ainakin lähteessä [9]. Menetelmän q-kantainen versio muotoiltiin lopulta lähtessä [10], jossa menetelmää nimitettiin Divide & Conquer -menetelmäksi. Kantaluku q tarkoitaa sitä että yhtälöryhmän koko jaetaan jokaisella rekursioaskeleella luvulla q. Viimeaikaista tietoa PSCR-menetelmän kaltaisista algoritmeistä löytyy esimerkiksi lähteestä [11]. Tässä tutkielmassa käytetään lähteen [12] muotoilua. PSCR-menetelmä on jo valmiiksi rinnakkaistuva käytettäessä normaaleja keskussuorittimia ja tämän tutkielman tarkoituksena on selvittää miten tehokkaasti ohjelmoitavan näytönohjaimen resurssit olisivat hyödynnettävissä menetelmän rinnakkaistamiseen. Tämä asettaa uusia haasteita sillä algoritmin aikaisempi, lähteessä [12] käsitelty, rinnakkaistettu toteutus ei suoraan sovellu ohjelmoitavalle näytönohjaimelle. Ohjelmoitavan näytönohjain tarjoaa huomattavasti enemmän laskentatehoa kuin normaalin keskussuoritin. Vanhempien näytönohjaimien kohdalla tämä koski kuitenkin vain yksinkertaisen tarkkuuden liukulukulaskentaa, joka ei ole tieteellisen laskennan näkökulmasta kovinkaan hyödyllistä. Uudempien näytönohjaimien kaksinkertaisen tarkkuuden liukulukulaskentakapasiteetti on huomattavasti suurempi. Raa an laskentatehon ja valtavan muistikaistan perusteella GPU-toteutus saattaisi olla jopa kymmeniä ellei satoja kertoja CPU-toteutusta nopeampi. Edellä mainitut syyt tekevät GPUtoteutuksen tutkimisesta kannattavaa. PSCR-menetelmän kaltaisia suoria menetelmiä ei ole toteutettu kovinkaan paljoa ohjelmoitavalla näytönohjaimella. Nopeaan Fourier-muunnokseen perustuva menetelmä on varsin suoraviivainen totetuttaa mikäli FFT-algortmi on saatavilla (katso esim. [13]). Menetelmää on sovellettu kaksiulotteisen Poissonin yhtälön ratkaisemiseen esimerkiksi lähteessä [14]. Näytönohjainta on hyödynnetty myös syvyysvaikutelman luomiseen simuloidun diffuusion avulla lähteessä [15] ja tiheiden kerroinmatriisien käsittelyä on tutkittu lähteessä [16]. Iteratiivisia, varsinkin multigrid-menetelmään [17] perustuvia, toteutuksia on tutkittu paljon enemmän (katson esim. [18], [19], [20] ja [21]). PSCR-menetelmä tuottaa suuren joukon tridiagonaalisia yhtälöryhmiä, joiden ratkaiseminen on yksi tärkeimmistä asioista toteutuksen tehokkuuden kannalta. Syklinen reduktio ja sen rinnakainen versio ovat yksinkertaisuutensa ja hyvän rinnakkaistettavuutensa ansiosta yleisimmät kirjallisuudessa esiintyvät algoritmit. Näytönohjai- 2

men laitteistotason rajoitukset aiheuttavat kuitenkin ongelmia kyseisille algoritmeille. Syklistä reduktiota on hyödynnetty esimerkiksi jo edellä mainituissa lähteissä [15] ja [21]. Rinnakkaista syklistä reduktiota on puolestaan käytetty esimerkiksi lähteessä [22] ja molempien algoritmien hybriditoteutuksia on käsitelty laajemmin lähteissä [22] ja [23]. Syklisen reduktion käyttöä ohjelmoitavalla näytönohjaimella käsitellään tarkemmin luvussa 6.1. Kaikissa lähteissä näytönohjain havaittiin huomattavasti nopeammaksi kuin CPU, minkä perusteella PSCR-menetelmälle olisi odotettavissa huomattavaa nopeushyötyä GPU:ta käytettäessä. Tutkielmassa käydään läpi kaksi erillistä toteutusta PSCR-menetelmälle. Ensimmäistä toteutusta nimitetään tässä tutkielmassa 4-kantaiseksi variantiksi ja se soveltuu parhaiten tilanteisiin, joissa ratkaistava on suuri joukko riittävän samanlaisia yhtälöryhmiä. Toista toteutusta nimitetään 2-kantaiseksi variantiksi ja se soveltuu pelkästään Poissonin yhtälön tietyn tyyppisen diskreetin muodon ratkaisemiseen suorakulmiossa. Tutkielma on jaettu johdannon lisäksi kahdeksaan lukuun. Toisessa luvussa käsitellään tarkemmin motivaatiota PSCR-menetelmän toteuttamiselle. Luvussa käydään pintapuolisesti läpi se miten esimerkiksi Poissonin yhtälö saadaan muutettua PSCRmenetelmälle soveltuvaan muotoon ja miten ratkaisijaa voitaisin käyttää diffuusioyhtälön ratkaisemiseen. Kolmannessa luvussa tutustutaan syklinen reduktio -algoritmiin, jota hyödynnetään PSCR-menetelmän toteutuksen matalimmalla tasolla tridiagonaalisien yhtälöryhmien ratkaisemiseen. Neljäs luku sisältää PSCR-menetelmän matemaattisen muotoilun ja useiden tuloksien todistukset. Viidennessä luvussa käsitellään ohjelmoitavia näytönohjaimia ja niiden ohjelmointiin soveltuvaa OpenCL-rajapintaa. Sama luvun loppupuolella käydään pintapuolisesti läpi kahden suurimman näytönohjainvalmistajan näytönohjainarkkitehtuurit. Kuudes luku sisältää OpenCL-toteutuksen kuvauksen ja perustelut toteutuksen kehitysajan valinnoille. Seitsemäs luku on varattu tuloksien esittämiselle ja viimeinen luku toimii yhteenvetona. 3

2 Motivaatio PSCR-menetelmän toteuttamiselle Vaikka PSCR-menetelmän toteuttaminen GPU:lla olisi ohjelmistoteknisestä näkökulmasta varsin mielenkiintoista, tarvitaan menetelmän toteuttamisen motivaatioksi myös joitain käytännön käyttökohteita. Tarkastellaan seuraavaksi erilaisia ongelmia PSCRmenetelmän ratkaistavaksi. Ensimmäisessä aliluvussa muotoillaan Poissonin reunaarvotehtävä ja toisessa luvussa johdetaan PSCR-menetelmälle soveltuva diskreetti muoto diffuusioyhtälölle. 2.1 Poissonin ongelma Olkoon Ω R n avoin joukko ja BΩ R n sen reuna. Lisäksi olkoon f : Ω Ñ R ja g : BΩ Ñ R funktioita. Tarkastellaan osittaisdifferentiaaliyhtälöä $ & % u f, Ω:ssa ja u g, BΩ:lla, jossa u : Ω Ñ R on tuntematon, kahdesti differentioituva funktio. Kyseessä on ns. Poissonin reuna-arvotehtävä Dirichlet n reunaehdoilla. Yksiulotteisessa tapauksessa yhtälö on monissa tapauksissa mahdollista ratkaista analyyttisesti suljetussa muodossa. Tarkastellaan kuitenkin esimerkin vuoksi tapausta, jossa Ω sa, br ja g 0. Tällöin yhtälö on muotoa $ & % u 2 pxq fpxq, x P sa, br ja upaq upbq 0. Muunnetaan ongelma diskreettiin muotoon numeerista likiratkaisun muodostamista varten. Muodostetaan välin sa, br jako D n 1 px 0, x 1,..., x n 1 q, joka jakaa välin n 1 osaan ja merkitään h i : x i x i 1. Määritellään lineaarinen funktioavaruus Φ φ 1,..., φ n siten että φ i pxq $ '& '% x x i 1 h i, kun x i 1 x x i, x i 1 x h i 1, kun x i x x i 1 ja 0, muuten. 4

Tällöin φ 1 i pxq $ '& '% 1{h i, kun x i 1 x x i, 1{h i 1, kun x i x x i 1 ja 0, kun x x i 1 tai x i 1 x. Muodostetaan Poissonin yhtälölle Galerkinin variaatiomuotoilu: Etsi u P Φ s.e. kaikille v P Φ pätee» b a u 2 v» b a fv ðñ u 1 v b a ðñ» b a u 1 v 1» b a» b a u 1 v 1 Tällöin u u 1 φ i pxq u n φ n pxq, jossa kertoimet u 1,..., u n saadaan yhtälöryhmästä jossa h 1 h 2 h 1 h 2 1 h 2 1 h 2 h 2 h 3 h 2 h 3 1 h 3......... f i 1 h n h n hn 1 h nh n 1» b a fφ i» xi 1 fv. u 1 u 2. u n x i 1 fφ i.» b a f 1 f 2 fv., (2.1) Mikäli jako D n 1 on tasavälinen (h i h, i 1,..., n), saadaan edellisen yhtälöryhmän (2.1) kerroinmatriisi muotoon 1 h 2 1 1 2 1.......... 1 2 Kaksiulotteisessa tapauksessa Poissonin yhtälön diskretisointi voidaan suorittaa vastaavalla tavalla. Oletaan, että Ω sa 1, b 1 r sa 2, b 2 r ja g 0. Muodostetaan välin sa 1, b 1 r jako D 1,n1 1 px 1,0, x 1,1,..., x 1,n1 1q ja välin sa 2, b 2 r jako D 2,n2 1 px 2,0, x 2,1,..., x 2,n2 1q. Lisäksi merkitään h i,j : x i,j x i,j 1, i 1, 2. Jaetaan Ω edellä määriteltyjen jakojen avulla kolmioihin kuvan 2.1 esimerkin mukaisesti. Olkoon Φ φ i,j, i 1,..., n 1, j 1,..., n 2, edellä määritellystä kolmioinnista saaduista lineaarisista kantafunktioista muodostettu lineaarinen funktioavaruus, 5 f n

Kuva 2.1: Esimerkki suorakulmion muotoisen alueen jakamisesta kolmioelementteihin. joka toteututtaa asetetut homogeeniset Diriclet n reunaehdot. Kuvan 2.1 harmaa alue vastaa kantafunktiota, jonka keskipiste on merkitty kuvaan pallolla. Muodostetaan Poissonin yhtälölle Galerkinin variaatiomuotoilu: Etsi u P Φ s.e. kaikille v P Φ pätee» Ω p uqv» Ω fv ðñ ðñ» Ω» BΩ vp uq n u v» Ω u v Funktion u kantafunktioiden kertoimet u i,j, i 1,..., n 1, j 1,..., n 2, saadaan ratkaistua yhtälöryhmästä» Ω fv. pa 1 b M 2 M 1 b A 2 qū f, (2.2)» Ω fv 6

jossa " * A i tridiag 1, h i,j h i,j 1, 1 h i,j h i,j h i,j 1 h " * i,j 1 hi,j h i,j 1 M i diag P R n i n i, 2 ū ū 1 ū 2. P Rn 1n 2, ū j u j,1 u j,2. P Rn 2, P R n i n i, f ū n1 f 1 f 2. f n1 P Rn 1n 2, f j u j,n2 ³ ³ Ω fφ j,1 Ω fφ j,2. ³ Ω fφ j,n 2 P Rn 2 ja b on tensoritulo, joka määritellään luvussa 4.1.2. Mikäli jaot D 1,n 1 ja D 2,n 1 ovat tasavälisiä (h h 1,i h 2,j, i 1,..., n 1, j 1,..., n 2 ), saadaan edellisen yhtälöryhmän (2.2) kerroinmatriisi muotoon jossa ja I P R n 2 n 2 1 h 2 yhtälöryhmä olisi muotoa D D I I D I......... P Rn 1n 2 n 1 n 2, 4 1 I D 1 4 1......... P Rn 2 n 2 1 4 on yksikkömatriisi. Kolmiulotteisessa tapauksessa yleisen tapauksen pa 1 b M 2 b M 3 M 1 b A 2 b M 3 M 1 b M 2 b A 3 qū f. 2.2 Diffuusioyhtälö Olkoon Ω R n avoin joukko, BΩ R n Ω:n reuna ja I s0, T s puoliavoin väli jollekkin positiiviselle luvulle T. Lisäksi olkoon f : Ω I Ñ R ja g : BΩ I Ñ R 7

funktioita. Tarkastellaan osittaisdifferentiaaliyhtälöä $ '& '% γ Bu Bt k u f, u g, upx, 0q u 0 pxq, Ω I:ssa, BΩ I:lla ja x P Ω, jossa u : Ω I Ñ R on tuntematon kahdesti differentioituva funktio, u 0 : Ω Ñ R annettu alkuehto ja γ, k P R. Kyseessä on diffuusioyhtälö Dirichlet n reunaehdoilla. Diffuusioyhtälö voidaan diskretisoida edellisessä aliluvussa käsitellyllä menetelmällä, mutta kantafunktioiden kertoimet ovat tällöin aikariippuvaisia. Tarkastellaan kaksiulotteista tapausta ja oletetaan, että g 0. Merkitään kantafunktioiden kertoimia q i,j ptq, i 1,..., n 1, j 1,..., n 2. Tällöin saadaan muodostettua puolidiskreetti Galerkinin variaatiomuotoilu: Etsi uptq P Φ, t P I s.e. kaikille v P Φ pätee» Ω γ Bu Bt»Ω v k u v» Ω fv upx, 0q u 0 pxq, x P Ω, joka saadaan edelleen kirjoitettua kantafunktioiden kertoimien avulla muotoon n 1 n 2»»» Bqi,j ptq γφ i,j φ q i,j ptq k φ i,j φ f φ Bt i1 j1 Ω q i,j p0q q 0 i,j u0 px 1,i, x 2,j q, i 1,..., n 1, j 1,..., n 2 kaikille φ P Φ ja t P I. Diskreetti muoto voidaan nyt kirjoittaa matriisimuotoon $ & % γpm 1 b M 2 qq 1 ptq kpa 1 b M 2 M 1 b A 2 qqptq f qp0q q 0, jossa A 1, A 2, M 1, M 2 ja ˆ f on määritelty kuten Poissonin tehtävän yhteydessä. Aikadiskretisointi voidaan tehdä esimerkiksi implisiittisellä Eulerin menetelmällä M qn 1 q n t Ω Aq n 1 f n 1, jossa A ypa 1 b M 2 M 1 b A 2 q ja M γpm 1 b M 2 q. Termit uudelleenjärjestelemällä saadaan kpa1 b M2 M1 b A2q γ t pm 1 b M 2 q q n 1 f n 1 1 t Mqn, jossa n 1,..., T { t. Jokaisella aika-askeleella ratkaistaan siis separoituva yhtälöryhmä. 8 Ω

3 Syklinen reduktio Tutkielman myöhemmissä luvuissa havaitaan, että tridiagonaalisien yhtälöryhmien ratkaiseminen on erittäin tärkeässä asemassa PSCR-menetelmän toteutuksessa. Tätä tarkoitusta varten esitellään seuraavaksi syklinen reduktio (cyclic reduction) -algoritmi. Yksi ensimmäisistä syklisen reduktion idean maininneista artikkeleista on [1]. Lisätietoa menetelmästä ja sen historiasta löytyy esimerkiksi artikkelista [24]. Syklinen reduktio perustuu parittomien rivien rekursiiviseen eliminointiin yhtälöryhmästä, jolloin saadaan muodostettua sarja tridiagonaalisia yhtälöryhmiä, joiden koko puolittuu jokaisella rekursioaskeleella. Saman rekursioaskeleen parittomien rivien eliminoinnit ovat toisistaan riippumattomia, joten syklinen reduktio olisi helposti rinnakkaistettavissa. Menetelmää hyödynnetään laajasti tridiagonaalisien yhtälöryhmien ratkaisemiseen ohjelmoitavalla näytönohjaimella (katso esim. [15], [21], [25] ja [23]). Menetelmä yleistyy myös lohkotridiagonaalisille matriiseille, mitä hyödynnetään luvussa 4.2. Normaali syklinen reduktio on rinnakkaistettavuuden on kannalta kohtalaisen hyvä algoritmi. Rinnakkaisien tehtävien määrä kuitenkin puolittuu jokaisella rekursioaskeleella. Rinnakkaisen työn määrä voidaan kuitenkin pitää vakiona mikäli algoritmiin tehdään pieniä muutoksia, jolloin päädytään rinnakkaiseen sykliseen reduktioon (parallel cyclic reduction) [26], jossa jokainen aliyhtälöryhmä jaetaan jokaisella rekursioaskeleella kahteen toisistaan riippumattomaan osaan. Samalla päästää kokonaan eroon algoritmiin liittyvästä takaisinsijoitusvaiheesta, jolloin algoritmi myös yksinkertaistuu huomattavasti. Haittapuolena on tehtävän laskentatyön määrän kasvaminen. Algoritmin todellinen hyöty tulee ilmi, kun otetaan huomioon näytönohjaimen laitteistotason rajoitukset. Syklisen reduktion toteutusta käsitellään tarkemmin luvussa 6. 3.1 Normaali syklinen reduktio Olkoon D P R n n tridiagonaalinen matriisi (eli d i,j 0, kun i j 1) ja u, f P R n. Oletetaan, että n 2 k 1 jollekkin kokonaisluvulle k 2. Menetelmä voidaan muotoilla myös mielivaltaisen kokoiselle ongelmalle. Tällöin yhtälöryhmän ulkopuolisia rivejä ei käsitellä ja niitä vastaavat komponentit oletetaan nollaksi. Halutaan ratkaista 9

lineaarinen yhtälöryhmä jonka kerroinmatriisilla on rakenne D Du f, b 1 c 1 a 2 b 2 c 2........., jossa vektorit a, b ja c muodostavat matriisin D nauhaesityksen. Merkitään D p0q D, f p0q f ja u p0q u. Tarkastellaan yhtälöryhmän parillisia rivejä a p0q 2j 1 up0q 2j 2 bp0q 2j 1 up0q 2j 1 cp0q 2j 1 u 2j f p0q 2j 1 a n b n a p0q 2j up0q 2j 1 bp0q 2j up0q 2j cp0q 2j up0q 2j 1 a p0q 2j 1 up0q 2j bp0q 2j 1 up0q 2j 1 jossa j 1, 2,..., 2 k 1 1. Kerrotaan ylempi rivi vakiolla α p1q j rivi vakiolla β p1q j c p0q 2j {bp0q 2j 1 eliminoitua kaikki parittomat rivit. cp0q 2j f p0q 2j 1 up0q 2j 2 f p0q 2j 1, a p0q 2j {bp0q 2j 1 ja alempi, jolloin rivit yhteenlaskemalla yhtälöryhmästä saadaan Havaitan, että muokatut parilliset rivit muodostavat nyt uuden tridiagonaalisen yhtälöryhmän D p1q u p1q f p1q, jossa u p1q u p0q 2 u p0q 4. u p0q 2 k 2 D p1q a p1q j b p1q j c p1q j b p1q 1 c p1q 1 a p1q 2 b p1q 2 c p1q 2 α p1q j a p0q 2j 1, b p0q......... a p1q 2 k 1 1 b p1q 2 k 1 1 2j αp1q j c p0q 2j 1 βp1q j a p0q 2j 1, β p1q j c p0q 2j 1,, f p1q f p0q 2 k 2, f p0q 2 α p1q 1 f p0q 1 β p1q 1 f p0q 3 f p0q 4 α p1q 2 f p0q 3 β p1q 2 f p0q 5 10 α p1q 2 k 1 1 f p0q 2 k 3. β p1q 2 k 1 1 f p0q 2 k 1

ja jonka koko on puolet alkuperäisestä yhtälöryhmästä. Jokaiselle askeleelle i 1,..., k 1 voidaan helposti päätellä rekursiokaavat α piq j β piq j a piq j b piq j c piq j f piq j a pi 1q 2j {b pi 1q 2j 1, c pi 1q 2j {b pi 1q 2j 1, α piq j api 1q 2j 1, 2j α piq j cpi 1q 2j 1 βpiq j a pi 1q 2j 1, b pi 1q β piq j c pi 1q 2j 1, 2j α piq j f pi 1q 2j 1 βpiq j f pi 1q 2j 1, f pi 1q jossa j 1, 2,..., 2 k i 1. Uusi vektori f piq voidaan tallentaa alkuperäisen vektorin f päälle siten että komponentti f piq j kutsutaan reduktiovaiheeksi. tallennetaan paikkaan f 2 i j. Tätä algoritmin vaihetta Lopulta viimeisen reduktioaskeleen jälkeen yhtälöryhmä on muotoa b pk 1q 1 u pk 1q 1 f pk 1q 1 ðñ u 2 k 1 u pk 1q 1 f pk 1q 1 {b pk 1q 1. Nyt kaikki generoitujen aliyhtälöryhmien (parittomat) rivit voidaan ratkaista jokaisella askeleella i k 2,..., 0 kaavasta u 2 i pj 1q2 i 1 upiq j $ & % pf piq j u pi 1q a piq 1q j upi pj 1q{2 cpiq 1q j upi pj 1q{2 1, kun j on pariton j{2, muuten (3.1) jossa j 1, 2,..., 2 k i 1. Oletetaan lisäksi, että u pi 1q pi 1q 0 u 0. Viimeisen 2 k i 1 takaisinsijoitusaskeleen jälkeen u A 1 f. Vektori u voidaan tallentaa alkuperäisen vektorin f päälle. Kuva 3.1 sisältää esimerkin syklisen reduktion muistiinviittausrakenteesta, kun tuntemattomia on 15 kappaletta ja päivitetyt komponentit tallennetaan suoraan alkuperäisen vektorin f päälle. Ratkaistavat rivit on merkitty kuvaan mustalla. Yhtenäiset viivat vastaavat muistipyyntöjä ja katkoviivat siirtoja muistialueen ulkopuolelta, jolloin kyseisiä siirtoja ei huomioida. Algoritmi vaatii log 2 pnq 1 rekursioaskelta, joten algoritmin aritmeettisien laskentaoperaatioiden määrä tulee olemaan luokkaa Opn logpnqq. 3.2 Rinnakkainen syklinen reduktio Rinnakkaisen syklisen reduktion reduktiokaavat ovat lähes identtiset normaalin syklisen reduktion reduktiokaavojen kanssa ja algoritmi vaatii yhtä monta reduktioaskelta. 11

Kuva 3.1: Esimerkki syklisen reduktion muistiinviittausrakenteesta. Ero tulee siitä, että eliminointioperaatio toistetaan jokaiselle yhtälöryhmän riville jokaisella askeleella sen sijaan, että käsiteltäisiin vain parillisia rivejä. Tällöin jokaisesta tuntemattomasta saadaan vähitellen poistettua sivudiagonaalien tuoma vaikutus. Sivudiagonaalit siirtyvät jokaisella askeleella kauemmas diagonaalista, jolloin yhtälöryhmä saadaan lopulta diagonaaliseen muotoon viimmeisellä reduktioaskeleella. Voidaan myös ajatella, että jokainen aliyhtälöryhmä jaetaan jokaisella rekursioaskeleella kahteen toisistaan riippumattomaan aliyhtälöryhmään. Jokaiselle askeleelle i 1,..., k saadaan muunnellut kaavat α piq j β piq j a piq j b piq j c piq j f piq j a pi 1q j {b pi 1q, j 2 i 1 c pi 1q j {b pi 1q, j 2 i 1 α piq j api 1q, j 2 i 1 j α piq j cpi 1q β piq j 2 i 1 j a pi 1q, j 2 i 1 b pi 1q β piq j c pi 1q, j 2 i 1 j α piq j f pi 1q β piq j 2 i 1 j f pi 1q, j 2 i 1 f pi 1q jossa j 1, 2,..., n. Oletetaan lisäksi, että f piq j 0, kun j 1 tai n j. Lopulta u j f pkq j {b pkq j pa 1 fq j, j 1,..., n. Vektorit f piq, i 1,..., k, voidaan tallentaa alkuperäisen vektorin f päälle. Kuva 3.2 sisältää esimerkin rinnakkaisen syklisen reduktion muistiinviittausrakenteesta kun tuntemattomia on 15 kappaletta. Yhtenäiset viivat vastaavat muistipyyntöjä 12

ja katkoviivat siirtoja muistialueen ulkopuolelta, jolloin kyseisiä siirtoja ei huomioida. Kuva 3.2: Esimerkki rinnakkaisen syklisen reduktion muistiinviittausrakenteesta. Algoritmi vaatii normaalin syklisen reduktion tavoin log 2 pnq 1 rekursioaskelta, joten algoritmin aritmeettisien laskentaoperaatioiden määrä tulee olemaan myös luokkaa Opn logpnqq. 13

4 PSCR-menetelmä Tässä luvussa käsitellään tätä tutkielmaa varten toteutetun PSCR-menetelmän matemaattinen tausta. Ensimmäisessä aliluvussa esitellään lähteen [12] yleinen, projektiomatriisien avulla muotoiltu, PSCR-menetelmä. Kyseinen menetelmä kykenee ratkaisemaan lineaarisen yhtälöryhmän, jonka kerroinmatriisi voidaan esittää tensoritulon avulla tiettyjen oletuksien ollessa voimassa. Tälläisiä separoituvia kerroinmatriiseja syntyy esimerkiksi luvussa 2 esiteltyjen esimerkkitehtävien tapauksissa. Menetelmää voidaan hyödyntää myös iteratiivisen menetelmän pohjustimena (katso esim. [27]). Toisessa aliluvussa käsitellään yleisen PSCR-menetelmän erikoistapaus, jossa kantaluvuksi q on valittu 2 ja kerroinmatriisille on asetettu enemmän rajoituksia, jolloin menetelmä erikoistuu Poissonin yhtälön ratkaisemiseen suorakulmiossa käytettäessä tasavälistä kolmiointia. Menetelmä johdetaan vaihtoehtoisella tavalla luvussa 3.1 käsitellyn syklisen reduktion avulla. Lopuksi luvussa 4.3 osoitetaan projektiomatriisi- ja syklinen reduktio -muotoiluiden välinen yhteys. 4.1 q-kantainen variantti projektiomatriisimuotoilulla Käydään seuraavaksi läpi q-kantainen PSCR-menetelmä. Seurataan lähteen [12] muotoilua pienillä muutoksilla ja muutamalla ylimääräisellä todistuksella. Luvun alkupuolella määritellään ensin ortogonaalisien kerroinmatriisien ja tensoritulon käsitteet. Menetelmän muoto riippuu kantaluvun q valinnasta, jonka avulla luvussa 4.1.3 määritellään algoritmi perusmuodossaan. Luvussa 4.1.4 muodostetaan joukko lemmoja, jotka osoittavat, että perusmuotoinen algoritmi generoi tietyissä tapauksissa aliongelmia, joiden ratkaisuja nimitetään osittaisratkaisuiksi. Osittaisratkaisuiden muodostamista tarkastellaan tarkemmin luvussa 4.1.5. Algoritmin lopullinen muoto esitellään luvussa 4.1.6. 4.1.1 Projektiomatriisit PSCR-menetelmä perustuu alkuperäisen yhtälöryhmän projisointiin ortogonaalisilla projektiomatriiseilla, jolloin alkuperäinen yhtälöryhmä saadaan muutettua joukoksi toisistaan riippumattomia aliongelmia. Tätä varten täytyy ensin määritellä ortogo- 14

naalinen matriisi. Määritelmä 1. Matriisia A P R n n sanotaan ortogonaaliseksi mikäli matriisitulo A H A on diagonaalinen. Projektiomatriisi määritellään niihin liittyvien lineaarisien projektiokuvauksien avulla avulla. Määritelmä 2. Olkoon H L R n. Lineaarikuvaus f : L Ñ H on projektio, jos fpxq P H kaikilla x P L ja fpxq x kaikilla x P H. Projektiokuvaukseen f liittyvää matriisia P P R n n sanotaan projektiomatriisiksi. PSCR-menetelmän muotoilussa oletetaan, että projisoidut matriisit ovat säännöllisiä projektiomatriisin määrittelemässä kuva-avaruudessa, mikä määritellään seuraavasti: Määritelmä 3. Olkoon A P R n n ja olkoon P P R n n ortogonaalinen projektiomatriisi. Matriisi P AP P R n n on säännöllinen (eli kääntyvä) aliavaruudessa ImpP q mikäli löytyy matriisi B P R n n siten että BpP AP q P I n P pp AP qb. Ortogonaalisien projektiomatriisien avulla on mahdollista nollata osa vektorin tai matriisin komponenteista. Vektorin tapauksessa kyseinen operaatio onnistuu suoraan matriisi-vektori-kertolaskulla. Matriisin tapauksessa rivien nollaaminen on mahdollista kertomalla alkuperäinen matriisi vasemmalta ortogonaalisella kerroinmatriisilla ja sarakkeiden nollaaminen tapahtuu vastaavasti kertomalla alkuperäistä matriisia oikealta. 4.1.2 Tensoritulo Määritellään aluksi tensoritulo (tai Kronecker-tulo), jonka avulla tietyntyyppiset matriisit voidaan esittää separoidussa muodossa. Määritelmä 4. Olkoon A P R m 1 n 1 ja B P R m 2 n 2. Tällöin matriisien A ja B tensoritulo määritellään seuraavasti A b B a 1,1 B a 1,2 B a 1,n1 B a 2,1 B a 2,2 B a 2,n1 B...... P Rm 1m 2 n 1 n 2. a m1,1b a m1,2b a m1,n 1 B 15

Matriisin käsittelyä voidaan yksinkertaistaa huomattavasti mikäli se voidaan esittää separoidussa muodossa. PSCR-menetelmässä hyödynnetään erityisesti seuraavaa tensoritulon ominaisuutta: Teoreema 1. Olkoon A P R m 1 n 1 ja C P R n 1 p 1 sellaiset matriisit, että AC P R m 1 p 1 on olemassa, ja olkoon B P R m 2 n 2 ja D P R n 2 p 2 sellaiset matriisit, että BD P R m 2 p 2 on olemassa. Tällöin pätee pa b BqpC b Dq AC b BD. Todistus. Olkoon r m 2 pr 1 1q r 2 ja s p 2 ps 1 1q s 2, jossa r 1 P t1,..., m 1 u, r 2 P t1,..., m 2 u, s 1 P t1,..., p 1 u ja s 2 P t1,..., p 2 u. Tällöin rpa b BqpC b Dqs r,s n 1 n 2 i1 n 1 n 2 i1 j1 n1 pa b Bq r,i pc b Dq i,s a r1,ib r2,jc i,s1 d j,s2 n2 a r1,ic i,s1 i1 j1 pacq r1,s 1 pbdq r2,s 2 pac b BDq r,s. b r2,jd j,s2 Edellisestä teoreemasta seuraa myös suoraa seuraava tulos: Teoreema 2. Olkoon A ja B säännöllisiä matriiseja. Tällöin niiden tensoritulo A b B on myös säännöllinen ja pa b Bq 1 A 1 b B 1. Todistus. Todistus on suoraviivainen: pa 1 b B 1 qpa b Bq pa 1 A b B 1 Bq I pa b BqpA 1 b B 1 q paa 1 b BB 1 q I 16

4.1.3 Perusalgoritmi PSCR-menetelmä perustuu seuraavaan teoreemaan: Teoreema 3. Olkoon A säännöllinen matriisi ja P p1q, P p2q,..., P pkq annetut ortogonaaliset projektiomatriisit siten että P piq P pjq P piq, kun 1 i j k, ja P pkq I. Lisäksi oletetaan, että matriisit P piq AP piq, i 1,..., k, ovat säännöllisiä aliavaruudessa ImpP piq q. Määritellään f p1q f ja u pk 1q 0. Lineaarisen yhtälöryhmän Au f ratkaisu u voidaan muodostaa kahdessa vaiheessa: Ensimmäisessä vaiheessa jokaiselle i 1,..., k 1 ratkaistaan vektori v piq ja lasketaan vektori f pi 1q yhtälöistä P piq AP piq v piq P piq f piq (4.1) f pi 1q f piq AP piq v piq. (4.2) Toisessa vaiheessa jokaiselle i k,..., 1 ratkaistaan vektori u piq yhtälöistä P piq AP piq u piq P piq f piq P piq ApI P piq qu pi 1q (4.3) pi P piq qu piq pi P piq qu pi 1q. (4.4) Lopulta u u p1q A 1 f. Todistus. Seuraava todistus on hieman muunneltu versio lähteen [12] todistuksesta. Osoitetaan aluksi induktiolla, että pi P pi 1q qu piq pi P pi 1q qa 1 f kaikille i k,..., 2. Osatodistus. Tapaus i k: Algoritmin ensimmäisessä vaiheessa on generoitu joukko vektoreita f piq, i 1,..., k, joilla on seuraavanlainen rakenne f piq f AP p1q v p1q AP p2q v p2q AP pi 1q v pi 1q. (4.5) Ensimmäisen vaiheen viimeisellä askeleella (i k) projektiomatriisi sai muodon P pkq I, jolloin ratkaistiin lineaarinen yhtälöryhmä Au pkq f pkq. Yhdistämällä edellinen yhtälöön (4.5) saadaan u pkq A 1 f P p1q v p1q P p2q v p2q P pk 1q v pk 1q. Koska P piq P pjq P piq silloin, kun 1 i j k, saadaan pi P pk 1q qu pkq pi P pk 1q qa 1 f pi P pk 1q qpp p1q v p1q P pk 1q v pk 1q q pi P pk 1q qa 1 f. 17

Olkoon 2 i k 1 ja oletetaan, että pi P pj 1q qu pjq pi P pj 1q qa 1 f kaikille i j k. Toisen vaiheen kaavat (4.3) ja (4.4) ovat nyt induktio-oletuksen perusteella muotoa P piq AP piq u piq P piq f piq P piq ApI P piq qu pi 1q P piq f piq P piq ApI P piq qa 1 f pi P piq qu piq pi P piq qu pi 1q pi P piq qa 1 f. Hyödynnetään jälleen projektiomatriisien ominaisuutta P piq P pjq P piq, kun 1 i j k, ja yhtälöä (4.5), jolloin ensimmäisestä toisen vaiheen yhtälöstä saadaan P piq AP piq u piq P piq pf AP p1q v p1q AP pi 1q v pi 1q q P piq ApI P piq qa 1 f P piq ApA 1 f P p1q v p1q P p2q v p2q P pi 1q v pi 1q q. Nyt koska matriisi P piq AP piq on säännöllinen aliavaruudessa ImpP piq q niin P piq pu piq A 1 f P p1q v p1q P p2q v p2q P pi 1q v pi 1q q 0. (4.6) Termit uudelleen järjestelmällä ja induktio-oletusta hyödyntäen saadaan pi P pi 1q qu piq pi P piq qu piq pp piq P pi 1q qu piq pi P piq qa 1 f pp piq P pi 1q qu piq, josta nähdään, että riittää osoittaa, että pätee pp piq P pi 1q qu piq pp piq P pi 1q qa 1 f. Projektiomatriisien P piq,..., P pkq ominaisuuksia ja yhtälöä (4.6) hyödyntäen saadaan nyt pp piq P pi 1q qpu piq A 1 f P p1q v p1q P p2q v p2q P pi 1q v pi 1q q pi P pi 1q qp piq pu piq A 1 f P p1q v p1q P p2q v p2q P pi 1q v pi 1q q pi P pi 1q q 0 0. Projektiomatriisien P piq,..., P pkq ominaisuudesta P piq P pjq P piq, kun 1 i j k, pitäisi kuitenkin myös seurata pp piq P pi 1q qpp p1q v p1q P p2q v p2q P pi 1q v pi 1q q 0, jolloin täytyy olla pp piq P pi 1q qu piq pp piq P pi 1q qa 1 f. Nyt pi P pi 1q qu piq pi P pi 1q qa 1 f kaikille i k,..., 2. Induktiotodistus on valmis. m 18

Toisen vaiheen jälkeen tiedetään edellisen tuloksen ja yhtälön (4.4) kautta, että pi P p1q qu p1q pi P p1q qu p2q pi P p1q qa 1 f, (4.7) jolloin u p1q toteuttaa yhtälöön (4.3) yhdistettynä yhtälön P p1q AP p1q u p1q P p1q f p1q P p1q ApI P p1q qa 1 f P p1q AP p1q A 1 f. Matriisi P piq AP piq on säännöllinen aliavaruudessa ImpP piq q, joten edellisestä yhtälöstä seuraa P p1q u p1q P 1 A 1 f. Yhdistämällä tämä yhtälöön (4.7) saadaan u u p1q A 1 f. Teoreema 3 saattaa ensisilmäyksellä vaikuttaa olevan vailla käytännön mielenkiintoa sillä algoritmin toisen vaiheen ensimmäisellä askeleella P pkq I, joten ratkaistavana on alkuperäinen yhtälöryhmä muunnellulla oikean puolen vektorilla. Tietyn tyyppisien kerroinmatriisien kohdalla on kuitenkin mahdollista johtaa lisätuloksia, joihin yhdistettynä teoreema 3 on todella hyödyllinen. Näin on esimerkiksi silloin, kun kerroinmatriisi on lohkotridiagonaalinen. Menetelmän tarkempi muoto riippuu projektiomatriisien P p1q,..., P pkq valinnasta. Määritellään seuraavaksi q-kantaisen PSCR-menetelmän projektiomatriisit. Olkoon n 1 q k 1, jossa q ja k ovat kiinnitetyt kokonaisluvut siten että q 2 ja k 1. Menetelmä on mahdollista formuloida mielivaltaisen kokoiselle yhtälöryhmälle, mutta projektiomatriisien määritelmistä tulisi tällöin huomattavasti monimutkaisempia. Menetelmän laajentamista käsitellään tarkemmin luvussa 6.2. Määritellään kokonaislukujoukot siten että jossa i 0,..., k 1 ja J k H. J k J k 1 J 1 J 0 t1,..., n 1 u, J i q k i 1 j1 tj q i u, Nyt jokaisen joukon J i, i 1,..., k, avulla voidaan määritellä diagonaalimatriisi P piq diagtp i,1, p i,2,..., p i,n1 u asettamalla p i,j $ & % 1, kun j R J i ja 0, muuten. 19

Varsinaiset projektiomatriisit voidaan lopulta määritellä seuraavasti P piq P piq b I n2, i 1,..., k. Edellä määritellyt projektomatriisit P p1q,..., P pkq ovat määritelmiensä mukaan lohkodiagonaalisia siten että nollasta eroavat diagonaalilohkot ovat yksikkömatriiseja. Kuva 4.1 sisältää esimerkin teoreeman 3 matriisi-vektori-laskuista, kun i 1, q 4 ja n 1 15. Harmaat osat vastaavat alkuperäisen matriisin nollasta eroavia alkioita ja mustat osat vastaavat projisoidun matriisin nollasta eroavia alkioita. = (1) (1) (1) (1) P AP v P f (1) = - f (2) f (1) AP v (1) (1) ------------------------------------------------------------------------------------------------------------------ = - P AP u P f P A(I-P ) (1) (1) (1) (1) (1) (1) (1) (2) u = (1) (1) (1) (I-P )u (I-P )u (2) Kuva 4.1: Esimerkki teoreeman 3 matriisi-vektori-laskuista. 20

Todetaan vielä, että edellä määritellyt projektiomatriisit täyttävät teoreeman 4.1 oletukset. Lemma 1. Projektiomatriisit P piq,..., P pkq toteuttavat teoreeman 3 oletukset. Todistus. Projektiomatriisit P piq,..., P pkq ovat määritelmänsä mukaan diagonaalisia ja kaikki nollasta eroavat alkiot ovat ykkösiä, joten ne ovat selvästi ortogonaalisia projektiomatriiseja. J k H, joten P pkq I n1 ja siten P pkq P pkq b I n2 I. Todistetaan aluksi, että P piq P pjq P piq, kun 1 i j k. Matriisien P piq ja P pjq määritelmistä ja erityisesti ominaisuudesta J j J i seuraa p P piq P pjq q r,r $ & % 1, kun r R J i Y J j J i ja 0, muuten joten P piq P pjq P piq. Nyt tensoritulon ominaisuuksista seuraa P piq P pjq p P piq b I n2 qp P pjq b I n2 q p P piq P pjq q b I n2 P piq b I n2 P piq. 21

4.1.4 Aliongelmat ja niiden ominaisuudet Olkoon Au f lineaarinen yhtälöryhmä, jonka kerroinmatriisi A voidaan esittää tensoritulon avulla muodossa A A 1 b M 2 M 1 b A 2 cpm 1 b M 2 q P R n 1n 2 n 1 n 2, (4.8) jossa A 1, M 1 P R n 1 n 1, A 2, M 2 P R n 2 n 2 ja c P R. Lisäksi vektoreilla u ja f on lohkoesitys u u 1 u 2. ja f f 1 f 2., u n1 f n1 jossa u i, f i P R n 2, i 1,..., n 1. Tätä muotoa kutsutaan tässä tutkielmassa kaksiulotteiseksi tehtäväksi. Menetelmä on mahdollista muotoilla myös siten että kerroinmatriisi on muotoa A 1 b M 2 b M 3 M 1 b A 2 b M 3 M 1 b M 2 b A 3 cpm 1 b M 2 b M 2 q, jossa A 3, M 3 P R n 3 n 3. Tällöin kyseessä on kolmiulotteinen tehtävä. Oletetaan tästä eteenpäin, että A 1 ja A 2 ovat tridiagonaalisia ja M 1 ja M 2 ovat diagonaalisia. Matriisit M 1 ja M 2 voisivat olla myös tridiagonaalisia, mutta tällöin algoritmiin täytyy tehdä pieniä muutoksia. Edellä asetettujen oletusten perusteella kerroinmatriisi A on lohkotridiagonaalinen siten että diagonaalilohkot ovat tridiagonaalisia ja kodiakonaalilohkot diagonaalisia. Tarkastellaan projisoidun matriisin P piq AP piq rakennetta hieman tarkemmin muutaman lemman muodossa. Lemma 2. Projisoidut matriisit P piq AP piq, i 1,..., k, ovat lohkodiagonaalisia siten että diagonaalilla on yhteensä q k i kappaletta pq i 1qn 2 pq i 1qn 2 kokoisia lohkoja, joiden osalta P piq AP piq on identtinen A:n kanssa. Lohkojen välissä on yhteensä q k i 1 kappaletta n 2 n 2 kokoisia nollalohkoja. Todistus. Matriisit P piq, i 1,..., k, ovat määritelmänsä mukaan diagonaalisia ja p P piq q r,r 0 ðñ r j q i, 1 j q k i 1. Tällöin matriisit P piq A 1 P piq ja P piq M 1 P piq ovat lohkodiagonaalisia siten että kaikki nollasta eroavat alkiot ovat ryhmittyneet pq i 1q pq i 1q lohkoiksi diagonaalille. Ryhmiä on q k i kappaletta ja ne on erotettu toisistaan yhdellä nolla-alkiolla. Nolla-alkioita on diagonaalilla yhteensä 22

q k i 1 kappaletta. Projisoitu matriisi on nollasta eroavien lohkoryhmien osalta identtinen alkuperäisen matriisin kanssa. Tällöin P piq AP piq p P piq b I n2 qpa 1 b M 2 M 1 b A 2 cpm 1 b M 2 qqp P piq b I n2 q p P piq A 1 P piq q b M 2 p P piq M 1 P piq q b pa 2 cm 2 q, josta nähdään suoraan, että lemma on tosi. Lemma 2 yksinkertaistaa algoritmiä huomattavasti. Projektiomatriisilla P piq, i 1,..., k, molemmilta puolilta kertominen jakaa matriisin A q k i :een lohkotridiagonaaliseen osaan, joiden koko on on pq i 1qn 2 pq i 1qn 2. Tällöin yhtälöiden (4.1) ja (4.3) ratkaiseminen on ainakin pienillä i:n arvoilla huomattavasti helpompaa kuin projisoimattomien yhtälöryhmien ratkaiseminen. Kerroinmatriisin A lohkotridiagonaalisuuden huomioiminen tuottaa myöskin kaksi uutta tulosta. Tarkastellaan seuraavaksi yhtälöryhmien (4.1) ja (4.3) kerroinmatriiseja ja erityisesti niitä vektoreiden v piq ja u piq komponentteja, joita tarvitaan molempien vaiheiden yhtälöissä (4.2) ja (4.4) vektoreiden päivittämiseen. Aloitetaan määrittelemällä joukot K i, i 1,..., k, seuraavasti K i jpj i tj 1u Y tj 1u. Määritellään diagonaalimatriisit T piq diagtt i,1, t i,2,..., t i,n1 u, jossa t i,j $ & % Lopuksi määritellään apuprojektiomatriisit 1, jos j P K i ja 0, muuten. T piq T piq b I n2, i 1,..., k. Projektiomatriisit P p1q,..., P pkq ovat lohkodiagonaalisia siten että diagonaalilohkot ovat nollamatriiseja joukkojen J 1,..., J k alkioita vastaavilta kohdilta. Apuprojektiomatriisit T p1q,..., T pkq on määritelty vastaavasti siten että nollasta eroavat diagonaalilohkot sijaitsevat joukkojen J 1,..., J k alkioita vastaavien diagonaalilohkojen ympärillä. Kuva 4.2 sisältää esimerkin joukoista J i ja K i, i 1,..., 3, kun q 4 ja n 1 63. Joukon J i alkiot on merkitty kuvaan harmaalla ja joukon K i alkiot mustalla. 23

i=0 i=1 i=2 i=3 Kuva 4.2: Esimerkki joukoista J i ja K i, i 1,..., 3. Lemma 3. Ensimmäisen vaiheen yhtälöissä (4.1) ja (4.2) jokaiselle i 1,..., k 1 pätee P piq f piq P ImpP piq pi P pi 1q qq ja f pi 1q pi P piq qpf piq AT piq v piq q. Todistus. Todistuksen perusidea on lähteestä [12]. Kerrotaan (4.2):n molemmat puolet vasemmalta P piq :llä jolloin yhdessä (4.1) kanssa jokaiselle i 1,..., k 1 pätee P piq f pi 1q P piq f piq P piq AP piq v piq P piq f piq P piq f piq 0, jolloin jokaiselle i 2,..., k pätee myös P piq pi P pi 1q qf piq P piq f piq P piq 0 P piq f piq, josta saadaan edelleen P piq f piq P ImpP piq pi P pi 1q qq. Kun otetaan huomioon tieto siitä, että I P 0 I 0 I saadaan P piq f piq P ImpP piq pi P pi 1q qq kaikille i 1,..., k. Todistetaan seuraavaksi, että pi P piq qap piq v piq pi P piq qat piq v piq. Aputodistus. Olkoon matriisi B P R n 1 tridiagonaalinen. Todistetaan aputuloksena, että ppi P piq qb P piq q ppi P piq qb T piq q. Projektiomatriisien P piq ja T piq, i 1,..., k, määritelmien ja B:n tridiagonaalisuuden huomioiden ppi P piq qb P piq q r,s ppi P piq qb T piq q r,s $ & % $ & % B r,s, kun pr, sq P D P piq ja 0, muuten, B r,s, kun pr, sq P D T piq ja 0, muuten, 24

jossa D P piq tpr, sq P t1,..., n 1 u 2 : s P tr 1, r, r 1u ja r P J i ja s R J i u (4.9) D T piq tpr, sq P t1,..., n 1 u 2 : s P tr 1, r, r 1u ja r P J i ja s P K i u. (4.10) Joukot K i, i 1,..., k, on määritelty siten että s P J i ðñ ps R K i ja s 1, s 1 P K i q. (4.11) Olkoon pr, sq P D P piq. Jos s r 1, niin r P J i, josta seuraa (4.11):n kautta s r 1 P K i eli pr, r 1q P D T piq. Tapaus s r 1 voidaan todistaa samalla tavalla. Jos taas s r niin (4.9):n perusteella olisi samaan aikaan s P J i ja s R J i, joten ps, sq R D P piq. Tällöin D P piq D T piq. Olkoon pr, sq P D T piq. Jos s r 1, niin mikäli r 1 s P J i niin (4.11):sta seuraisi s R K i, joka olisi ristiriita eli pr, r 1q P D P piq. Tapaus s r 1 voidaan todistaa samalla tavalla. Jos taas s r niin s P J i, josta seuraa (4.11):n kautta samanaikaisesti s R K i ja s P K i, joten pr, rq R D T piq. Tällöin D T piq D P piq. Tällöin D P piq D T piq eli ppi P piq qb P piq q ppi P piq qb T piq q. m Matriisit A 1 ja M 1 ovat tridiagonaalisia, joten edellinen tulos pätee niille ja periytyy edelleen Kronecker tensoritulon ominaisuuksien kautta matriisille A eli pi P piq qap piq v i pi P piq qat piq v i. Nyt kun (4.2):een lisätään nolla muodossa (4.1) saadaan f pi 1q f piq AP piq v piq f piq AP piq v piq P piq f piq P piq AP piq v piq pi P piq qpf piq AP piq v piq q pi P piq qpf piq AT piq v piq q. Lemma 3 perusteella voidaan sanoa, että vektorin f pi 1q laskemiseksi yhtälössä (4.2) tarvitaan vain vektori T piq v piq, joka sisältää vain hyvin pienen osan vektorin v i n 2 -lohkoista. Tarkemmin sanottuna pelkästään päivitettävien f pi 1q :n alkioiden viereisiä n 2 -lohkoja vastaavat komponentit. Lisäksi yhtälöryhmän (4.1) oikea puoli kuuluu kuva-avaruuteen P piq pi P pi 1q q, jolloin se on hyvin harva koostuen pelkästään q 1:stä n 2 -lohkosta aliyhtälöryhmää kohden. Tälläisien aliongelmien ratkaisuja kutsutaan osittaisratkaisuiksi ja niitä käsitellään tarkemmin seuraavassa luvussa. 25

Lemma 4. Toisen vaiheen yhtälössä (4.3) jokaiselle i k,..., 1 pätee P piq f piq P piq ApI P piq qu pi 1q P ImpP piq pi P pi 1q qq Y ImpT piq q. Lisäksi yhtälöryhmän ratkaisusta u piq, i k,..., 1, tarvitaan vain kuva-avaruutta P piq pi P pi 1q q vastaavat komponentit. Todistus. Seuraava todistus on lähes suoraan lähteestä [28]. Lemman 3 mukaan P piq f piq P ImpI P pi 1q q kaikille i 1,..., k. Lemman 3 todistusta soveltaen voidaan helposti todeta (vaihtamalla indeksit r ja s keskenään), että P piq ApI P piq q T piq ApI P piq q, jolloin ImpP piq ApI P piq qq ImpT piq ApI P piq qq ImpT piq q kaikille i 1,..., k. Yhtälössä (4.4) viitataan vektoreihin pi P piq qu pi 1q, i k,..., 1. Lisäksi lopullinen ratkaisuksi saadaan u u p1q pi P p0q qu p1q. Koska pi P pkq q 0, tarvitaan vektorit pi P pi 1q qu piq, i k,..., 1. Kun muistetaan, että pi P piq qu piq pi P piq qu pi 1q ja P piq P pjq P piq kaikille 1 i j k, saadaan jokaiselle i k,..., 1 pi P pi 1q qu piq pi P pi 1q qpp piq u piq pi P piq qu piq q P piq u piq pi P piq qu piq P pi 1q P piq u piq P pi 1q pi P piq qu piq P piq u piq pi P piq qu pi 1q P pi 1q u piq pp pi 1q P pi 1q qu piq P piq pi P pi 1q qu piq P piq pi P pi 1q pi 1q qu Tällöin u piq tarvitaan vain aliavaruudessa ImpP piq pi P pi 1q qq. Lemma 4 tarjoaa lemmaa 3 vastaavat tulokset algoritmin toiselle vaiheelle. Yhtälön (4.3) oikeasta puolesta tarvitaan pelkästään kuva-avaruuksien P piq pi P pi 1q qq ja T piq yhdistettä vastaavat n 2 -lohkot eli yhteensä q 1 n 2 -lohkoa jokaista aliyhtälöryhmää kohden. Vektorista u piq :stä tarvitaan vain kuva-avaruutta P piq pi P pi 1q q vastaavat n 2 - lohkot eli q 1 lohkoa yhtä aliyhtälöryhmää kohden. Ratkaistavana on jälleen joukko aliongelmia, joiden ratkaisut ovat osittaisratkaisuja. Todetaan vielä, että algoritmin ensimmäisessä vaiheessa vektorit f pi 1q, i 1,..., k 1 ja toisessa vaiheessa vektorit u piq, i 1,..., k, voidaan tallentaa alkuperäisen vektorit f päälle. Lemma 5. Kuva-avaruudet ImpP piq pi P pi 1q qq, i 1,..., k, ovat pistevieraita. Todistus. Lemman seuraa suoraan siitä, että joukot pp i 1 zp i q, J i J i 1, i 1,..., k, ovat pistevieraita. 26

Lemman 3 mukaan P piq f piq P ImpP piq pi P pi 1q qq. Tällöin kaikki vektorit f pi 1q, i 1,..., k 1, voidaan tallentaa alkuperäisen vektorin f päälle. Lisäksi lemman 4 perusteella voidaan sanoa, että vektori u piq täytyy ratkaista vain kuva-avaruudessa ImpP piq pi P pi 1q qq, joten myös u piq, i 1,..., k, voidaan tallentaa f:n päälle. 4.1.5 Osittaisratkaisut Tarkastellaan seuraavaksi edellisessä luvussa esiintyneitä aliongelmia ja sitä miten ne olisivat tehokkaasti ratkaistavissa ominaisarvohajotelman avulla. Kyseisien ongelmien ratkaisuja nimitetään osittaisratkaisuiksi (partial solutions) [29, 30]. Oletetaan, että matriisit A 1 ja M 1 on projisoitu siten että kaikki nollasta eroavat alkiot ovat m m lohkossa samassa kohdassa diagonaalilla. Merkitään näitä diagonaalilohkoja matriiseilla à 1, M 1 P R m m ja à pã 1 b M 2 M 1 b A 2 cp M 1 b M 2 qq P R mn 2 mn 2. Olkoon Q ja R ovat ortogonaaliset projektiomatriisit muotoa Q Q b I n2 P R mn 2 mn 2 ja R R b I n2 P R mn 2 mn 2. Tarkastellaan yhtälöryhmää, jonka on muotoa Ãu f, (4.12) jossa f P ImpQq ja ratkaistavana on pelkästään vektori Ru. Ratkaistaan ensin joukko yleistettyjä ominaisarvo-ongelmia à 1 w i λ i M 1 w i, i 1,..., m. (4.13) Oletetaan, että ominaisvektorit w i, i 1,..., m, ovat w T i M 1 w j $ & % kaikille i, j 1,..., m. Tällöin matriiseilla 1, kun i j ja 0, muuten M 1 -ortonormaaleja eli W rw 1 w 2... w m s P R m m ja Λ diagtλ 1, λ 2,..., λ m u P R m m on ominaisuudet W T à 1 W Λ ja W T M 1 W I n1. Tällöin yhtälöryhmälle (4.12) pätee seuraava teoreemaan: 27

Teoreema 4. Rà 1 Q p RW b I n2 qppλ ci n1 q b M 2 I n1 b A 2 q 1 pw T Q b I n2 q Todistus. Seuraava todistus on lähes suoraan lähteestä [28]. Hyödyntäen tensoritulon ominaisuuksia saadaan à 1 à 1 b M 2 M 1 b A 2 cp M 1 1 b M 2 q W ΛW T b M 2 W I n1 W T b A 2 cpw I n1 W T b M 2 q pw b I n2 qppλ ci n1 q b M 2 I n1 b A 2 qpw T b I n2 q pw b I n2 qppλ ci n1 q b M 2 I n1 b A 2 q 1 pw T b I n2 q. Kerrotaan edellinen yhtälö vasemmalta R:llä ja oikealta Q:lla, jolloin saadaan Rà 1 Q p R b I n2 qpw b I n2 qppλ ci n2 q b M 2 I n1 b A 2 q 1 pw T b I n2 qp Q b I n2 q p RW b I n2 qppλ ci n2 q b M 2 I n1 b A 2 q 1 pw T Q b I n2 q. 1 1 Teoreeman 4 mukaan yhtälöryhmä (4.12) voidaan nyt ratkaista kolmessa osassa seuraavasti: 1. lasketaan vektori g pw T Q b I n2 qf, 2. ratkaistaan yhtälöryhmä ppλ ci n1 q b M 2 I n1 b A 2 qv g ja 3. lasketaan vektori u p RW b I n2 qv. Edellisen luvun aliongelmat voidaan kirjoittaa yhtälöryhmän (4.12) muotoon, jolloin teoreema 4 soveltuu niiden ratkaisemiseen. Lohkodiagonaalinen pmn 2 q pmn 2 q yhtälöryhmä saadaan muutettua m:ksi kappaleeksi tridiagonaalisia n 2 n 2 yhtälöryhmiä, jotka voidaan ratkaista Opn 2 q ajassa tai niihin voidaan soveltaa luvussa 3 käsiteltyjä syklinen reduktio -menetelmiä. 4.1.6 Algoritmin lopullinen muoto Jotta teoreemaa 4 voitaisiin hyödyntää yhtälöissä (4.1) ja (4.4), tarvitaan kaikki A:n ominaisarvot ja ominaisvektoreiden komponentit aliavaruudessa Imp QqYImp Rq, jossa Q ja R ovat menetelmässä käytetyt ortogonaaliset projektiomatriisit. Ominaisarvot 28

ja -vektorit saadaan selville ratkaisemalla yleistetyt ominaisarvotehtävät (4.13). Tätä voidaan pitää eräänlaisena alustusvaiheena algoritmille. Ominaisarvotehtävät tarvitaan ratkaista vain kerran mikäli matriisit A 1 ja M 1 pysyvät samoina. Tämän takia tämä algoritmi soveltuu parhaiten tilanteisiin, joissa pitää ratkoa suuri joukko yhtälöryhmiä, jotka eroava toisistaan pelkästään oikea puolen vektorin ja vakion c osilta. Tällöin algoritmin alustusvaihe suoritetaan vain kerran. Merkitään m : q i 1. Indeksoidaan rekursioaskeleet jälleen i 1,..., k, osittaisratkaisut j 1,..., q k i ja ominaisarvot r 1,..., m. Ratkaistavat ominaisarvoongelmat ovat muotoa :A piq j :w piq j,r : λpiq j,r M piq j :w piq j,r, (4.14) jossa :A piq j :M piq j pa 1 q l,l pa 1 q l,l 1 pa 1 q l 1,l pa 1 q l 1,l 1 pa 1 q l 1,l 2......... pm 1 q l,l pm 1 q l 1,l 1 pa 1 q l m,l m 1 pa 1 q l m,l m... l pj 1qq i 1 ja r 1,..., m. pm 1 q l m,l m, :wpiq j,r, w piq j,r,1 w piq j,r,2. w piq j,r,m, Tarkastellaan seuraavaksi varsinaisen algoritmin ensimmäistä vaiheetta eli kaavoja (4.1) ja (4.1). Jokaisella reduktioaskeleella i 1,..., k 1 ratkaistaan q k i osittaisratkaisua, joiden koko on m n 2. Lemman 3 avulla voidaan nyt määritellä tarvittavat projektiomatriisit Q j Q j b I n2 ja R j R j b I n2, jossa Q j diagtq j,1, q j,2,..., q j,m u ja r j diagtr j,1, r j,2,..., r j,m u. Lemman alkuosasta saadaan q j,l $ & % ja jälkimmäisestä osasta saadaan r j,l 1, kun pj 1qq i l P J i 1 ja 0, muuten $ & % 1, kunpj 1qq i l P K i ja 0, muuten. 29

Jokaisella askeleella ratkaistaan ensin mq k i tridiagonaalista yhtälöryhmää q 1 pλ piq j,l cqm 2 A 2 v j,l r1 w piq j,l,rq i 1 f piq ppj 1qq rqq i 1, (4.15) jossa j 1,..., q k i ja l 1,..., m. Algoritmi voidaan muotoilla myös kolmiulotteiselle ongelmalle, jolloin ratkaistavana on joukko kaksiulotteisia ongelmia muotoa q 1 A 2 b M 3 M 2 b A 3 pλ piq j,l cqpm 2 b M 3 q v j,l w piq f piq. j,l,rq i 1 ppj 1qq rqq i 1 Seuraavaksi muodostetaan kodiagonaalilohkojen vaikutuksen huomioivat päivitysvektorit ĝ piq j m l1 w piq j,l,1 v j,l ja ǧ piq j jossa j 1,..., q k i. Lopulta saadaan muodostettua f pi 1q -vektori fr pi 1q $ & % fr piq f piq jossa r 1,..., n 1. m l1 r1 pa 1 q r,r 1 M 2 ǧ piq j pa 1 q r,r 1 M 2 ĝ piq j 1, r, muuten, w piq j,l,m v j,l, (4.16) kun r jqi, j P N ja (4.17) Algoritmin toisessa vaiheessa tarvitaan kaavoja (4.3) ja (4.4). Jokaisella takaisinsijoitusaskeleella i k,..., 1 ratkaistaan q k i osittaisratkaisua kokoa m n 2. Lemmasta 4 voidaan päätellä tarvittavat projektiomatriisit Q j Q j b I n2 ja R j R j b I n2, jossa Q j diagtq j,1, q j,2,..., q j,m u ja r j diagtr j,1, r j,2,..., r j,m u. Lemman alkuosasta saadaan q j,l $ & % ja jälkimmäisestä osasta saadaan r j,l 1, kun pj 1qq i l P J i 1 Y K i ja 0, muuten $ & % 1, kunpj 1qq i l P J i 1 ja 0, muuten. Oletetaan, että pa 1 q 1,0 pa 1 q n1,n 1 1 0 ja u k 0 1 u k n 1 1 1 0. Jokaisella askeleella ratkaistaan ensin mq k i kodiagonaalilohkojen vaikutuksen huomioivaa tridiagonaalista yhtälöryhmää q 1 pλ piq j,l cqm 2 A 2 v j,l r1 30 w piq j,l,rq i 1 f piq ppj 1qq rqq i 1 ũ piq j,l, (4.18)