Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä

Samankaltaiset tiedostot
Numeeriset menetelmät

Iteratiiviset ratkaisumenetelmät

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

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

Matriisilaskenta Luento 8: LU-hajotelma

Numeeriset menetelmät

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

Inversio-ongelmien laskennallinen peruskurssi Luento 3

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

5.1. Normi ja suppeneminen Vektoriavaruus V on normiavaruus, jos siinä on määritelty normi : V R + = [0, ) jolla on ominaisuudet:

MS-C1340 Lineaarialgebra ja

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

Inversio-ongelmien laskennallinen peruskurssi Luento 2

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Ratkaisuehdotukset LH 7 / vko 47

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

MS-C1340 Lineaarialgebra ja

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Numeeriset menetelmät

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Matematiikan tukikurssi, kurssikerta 3

BM20A0700, Matematiikka KoTiB2

Luento 9: Newtonin iteraation sovellus: optimointiongelma

Johdatus tekoälyn taustalla olevaan matematiikkaan

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

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

Numeeriset menetelmät

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

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

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

Vektoreiden virittämä aliavaruus

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

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

MS-C1340 Lineaarialgebra ja

Luento 8: Epälineaarinen optimointi

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

9 Matriisit. 9.1 Matriisien laskutoimituksia

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

(0 desimaalia, 2 merkitsevää numeroa).

Sisätuloavaruudet. 4. lokakuuta 2006

Konjugaattigradienttimenetelmä

Matematiikan tukikurssi

Ortogonaalisen kannan etsiminen

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

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

Mat Lineaarinen ohjelmointi

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Matematiikka B2 - TUDI

MATEMATIIKAN JAOS NUMEERISET MENETELMÄT

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Inversio-ongelmien laskennallinen peruskurssi Luento 4

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

Ominaisarvo ja ominaisvektori

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Ominaisarvo-hajoitelma ja diagonalisointi

Lineaarinen yhtälöryhmä

Gaussin ja Jordanin eliminointimenetelmä

Luento 8: Epälineaarinen optimointi

Käänteismatriisi 1 / 14

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

Matriisiteoria Harjoitus 1, kevät Olkoon. cos α sin α A(α) = . sin α cos α. Osoita, että A(α + β) = A(α)A(β). Mikä matriisi A(α)A( α) on?

Ominaisarvo ja ominaisvektori

Malliratkaisut Demot

Matematiikka B2 - Avoin yliopisto

1 Ominaisarvot ja ominaisvektorit

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

1 Rajoittamaton optimointi

5 Ominaisarvot ja ominaisvektorit

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

Käänteismatriisin ominaisuuksia

Insinöörimatematiikka D

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Harjoitusten 5 vastaukset

Epälineaaristen yhtälöiden ratkaisumenetelmät

Likimääräisratkaisut ja regularisaatio

Demo 1: Simplex-menetelmä

Insinöörimatematiikka D

802118P Lineaarialgebra I (4 op)

Ratkaisuehdotukset LH 8 / vko 47

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

Päättelyn voisi aloittaa myös edellisen loppupuolelta ja näyttää kuten alkupuolella, että välttämättä dim W < R 1 R 1

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

Ennakkotehtävän ratkaisu

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

1 Komparatiivinen statiikka ja implisiittifunktiolause

Ominaisarvot ja ominaisvektorit 140 / 170

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.

Lineaarikuvauksen R n R m matriisi

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.

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

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

Teknillinen tiedekunta, matematiikan jaos Numeeriset menetelmät

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

ominaisvektorit. Nyt 2 3 6

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

Talousmatematiikan perusteet: Luento 9. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo

Transkriptio:

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä Matriisit voivat olla kooltaan niin suuria, että LU-hajotelman laskeminen ei ole järkevä tapa ratkaista lineaarista yhtälöryhmää Ax = b, (1) missä A R n n on kääntyvä matriisi. Yksi syy on se, että noin 2 3 n3 floppia on kestämättömän paljon, kun n = 10 5 tai enemmän. Myös muistin määrä asettaa rajoituksia sille, kuinka suuria matriiseja voidaan säilyttää tietokoneen muistissa. Matriisi, jonka koko on n n edellyttää siis, että n 2 lukua voidaan säilyttää muistissa. Tosin usein suuret matriisit ovat harvoja, eli niissä on huomattavan vähän nollasta poikkeavia alkioita. Tällöin matriisista säilötään muistiin vain nollasta poikkeavat alkiot (sekä tietenkin niiden sijainti matriisissa). Tällöin n voi olla valtavan paljon suurempi kuin mitä ennalta arvioiden tuntui mahdolliselta. Esimerkki 1 Matriisia kutsutaan tridiagonaaliseksi, jos siinä esiintyy nollasta poikkeavia alkioita vain päädiagonaalilla sekä ensimmäisillä ala-ja ylädiagonaaleilla. Tällöin muistin tarve on vain 3n lukua verrattuna n 2 :een, jos nollatkin säilytettäisiin muistissa. (Esimerkiksi, jos n = 10 4, niin n 2 = 10 8. Mutta harvuus huomiomalla matriisin koko n voisikin olla yli 30 miljoonaa.) Seuraavaksi tarkastelemme niin sanottuja iteratiivisia menetelmiä, joiden avulla yhtälöryhmän (1) ratkaisua x = A 1 b pyritään approksimoimaan ilman, että matriisista lasketaan hajotelmaa. Lähestymistapa on tällöin täysin erilainen. Lähtökohdaksi voidaan mieltää sarjaoppi. Sarjoista muistamme, että laskemalla summien s k = 1 + x + x 2 + k k ja xs k = x+x 2 + x k+1 erotuksen saamme s k = 1 xk+1 1 x, kun x 1. Erityisesti, kun x < 1, pätee (1 x) 1 = x j. kunhan annamme k:n kasvaa rajatta. Siis saamme luvun 1 x käänteisluvun ottamalla (periaattessa äärettömän) summan x:n potensseista. Sama kaava pätee myös matriiseille, kunhan itseisarvoehto x < 1 korvataan sopivasti. Tähän tarvitaan matriisinormia mittaamaan annetun matrisin B R n n suuruutta. Tavallisin matriisinormi on määritelty siten, että B = max Bv. (2) v =1 1

Tällöin siis B mielletään funktioksi R n :ltä R n :lle siten, että v Bv, toisin sanoen vektori v kuvautuu vektoriksi Bv. Siten (2) ilmaisee kuinka pitkäksi enintään B kuvaa yksikkövektoreita. Tämän perusteella on helppo osoittaa, matriisinormi toteuttaa tulon suhteen epäyhtälön AB A B sekä yhteenlaskun suhteen kolmioepäyhtälön A+B A + B. Näiden avulla voidaan suoraan päätellä, että käänteismatriiskaava (I B) 1 = B j (3) pätee kunhan matriisi B R n n toteuttaa riittävän ehdon B < 1 sarjan suppenemiselle. Sarjaa (3) kutsutaan B:n Neumannin sarjaksi. Se, että (3) pätee on helppo todentaa suoralla laskulla (I B) Bj = I. Se, että sarja suppenee seuraa samalla perusteella kuin s k :n tapauksessa. Neumannin sarjaa ei tietenkään kannata käyttää käänteismatriisin laskemiseen, sillä LU-hajotelma on paljon edullisempi tapa ratkaista (kohtuullisen kokoinen) lineaarinen yhtälöryhmä. Neumannin sarja on vain tietyn tyyppinen apuväline, joka mahdollistaa iteratiivisten kehittämisen. Ei ole realistista olettaa että yhtälöryhmä (1) olisi suoraan sellainen että se voitaisiin esittää muodossa A = I (I A) = I B jossa B < 1 pätisi. Yritetään kiertää tätä ongelmaa pilkkomalla eli splittaamalla A siten, että asetetaan A = M N jossa M:llä on helppo ratkaista lineaarisia yhtälöryhmiä. Jos siis tämä on mahdollista, niin yhtälöryhmä (1) muuntuu M 1 :llä kertomalla vasemmalta ekvivalenttiin muotoon (I M 1 N)x = M 1 b. (4) Tähän Neumannin sarjaa voidaan sitten yrittää käyttää, jos M 1 N < 1 pätee. Se, että M:llä on helppo ratkaista lineaarisia yhtälöryhmiä tarkoittaa, että M 1 ei siis esiinny sellaisenaan (siis matriisituloa M 1 N ei konkreettisesti muodosteta!). Oletuksena on, että funktio v M 1 v voidaan edullisesti toteuttaa. Tällöin matriisitulo v M 1 Nv (5) 2

on sallittu operaatio. Seuraavat kaksi esimerkkiä ovat tärkeimmät perustapaukset siitä, miten M voidaan yrittää valita. Esimerkki 2 Jacobi-splittauksella tarkoitetaan splittausta A = M N = D (D A), jossa D on A:n diagonaaliosa, eli se diagonaalimatriisi, joka saadaan, kun otetaan A:n diagonaali. Jotta M olisi kääntyvä, pitää tietenkin olettaa, että a jj 0 kaikilla j = 1,...,n. Esimerkki 3 Gauss-Seidel-splittauksella tarkoitetaan splittausta A = M N = L (L A), jossa L on A:n alakolmio-osa, eli se alakolmiomatriisi joka saadaan, kun otetaan A:n alakolmio ja yläkolmion elementit diagonaalin yläpuolella on korvattu nollilla. (Vastaavasti voitaisiin valita M:ksi A:n yläkolmio-osa.) Tällöin L:llä voidaan eteenpäin sijoittamalla ratkoa lineaarisia yhtälöryhmiä nopeasti. Kun sopiva A:n splittaus on valittu, asetetaan B = M 1 N Neumannin sarjaan (3). Siten yhtälöryhmän (4) ratkaisee x = (M 1 N) j M 1 b. Laskennallisesti tämä kannattaa toteuttaa rekursiona x k = M 1 b+m 1 Nx k 1 (6) missä x 0 = M 1 b. Tällöin askeleella k olemme laskeneet approksimaation x k = k (M 1 N) j M 1 b yhtälöryhmän (1) ratkaisulle x. Rekursiokaavaa (6) kutsutaan yksinkertaiseksi iteraatioksi. Esimerkin 2 tapauksessa puhutaan Jacobin iteraatiosta ja Esimerkin 3 Gauss-Seidelin iteraatiosta. Rekursioaskel (6) toteutetaan siten, että c = M 1 b on laskettu ja kirjattu muistiin koko iteraation ajaksi. Siten askeleella k lasketaan ensin x k 1 Nx k 1 (7) (Huomaa, että koska x k 1 :tä ei enää tarvita, laskettu Nx k 1 voitaisiin kirjoittaa muistiin x k 1 :n päälle.) Sen jälkeen lasketaan Nx k 1 M 1 (Nx k 1 ) (8) joka lasketaan yhteen c:n kanssa. Näin on tuotettu x k rekursion (6) mukaisesti. Muistin tarve on kaksi vektoria, jos vektoreita joita ei enää laskennassa tarvita poistetaan heti muistista. Laskennan kompleksisuus per iteraatioaskel (ts. kuinka nopeasti yksi iteraatioaskel voidaan tehdä) riippuu siitä, kuinka 3

paljon (7) ja (8) kuluttavat floppeja. Perussääntö on, että suuruluokka on syytä olla O(n). Laskennan tarkkuutta arviodaan virheen sekä residuaalin e k = x x k = A 1 b x k r k = Ax k b avulla. Näiden erona on, että yleensä residuaali on helpommin saatavilla (sillä emme tietenkään tunnea 1 b:tä). Iteraation (6) yhteydessä voimme kuitenkin approksimoida virhettä, sillä e k = k (M 1 N) j M 1 b (M 1 N) j M 1 b = (M 1 N) j M 1 b. j=k+1 Siten matriisinormin ominaisuuksien perusteella saamme e k j=k+1 M 1 N j M 1 b = M 1 N k+1 1 M 1 N M 1 b. Siten jos M 1 N < 1, niin virhe pienenee joka askeleella vähintäänkin tämän estimaatin mukaisesti. Tässä yhteydessä on hyvä painottaa, että lineaarisen yhtälöryhmän tarkkaa ratkaisua ei läheskään aina tarvita. (Numeerisesti laskettu ratkaisu tietenkin poikkeaa aina x:stä pyöristysvirheiden takia, oli käytetty menetelmä mikä tahansa.) Yleensä vaadittu tarkkuus ilmaistaan suhteellisen residuaalin normin r k = Ax k b b b avulla, josta voidaan vaatia että esimerkiksi tarkkuus 10 6 on riittävä. (Vertaa konetarkkuuteen, joka oli siis noin 10 16.) Jos splittauksemme ei toteuta M 1 N < 1, niin yksinkertainen iteraatio (6) tuskin toimii, ts. virheet ja residuaalit eivät pienene vaikka k kasvaa. Koska johdettu iteraatio perustui pelkästään Neumannin sarjan (3) suoraviivaiseen käyttöön, sitä voidaan kehittää paremmaksi. Kuvataan seuraavaksi joitain ideoita mitä tässä yhteydessä voidaan yrittää. Pyritään siis käyttämään Neumannin sarjaa (3) tarkoituksena ratkaista yhtälöryhmä Ax = (I B)x = b, missä B = I A. Tehdään näin välittämättä siitä päteekö ehto B < 1. Iteraatioaskelta (6) muokkaamalla saamme x k = b+bx k 1 = x k 1 +b (I B)x k 1 = x k 1 +(b Ax k 1 ) = x k 1 r k 1 (9) 4

Tosin sanoen residuaali toteuttaa r k = Ax k b = Ax k 1 Ar k 1 b = r k 1 Ar k 1. (10) Tavoite tietenkin on, että r k olisi pienempi kuin r k 1. Tämän perusteella voimme saada aikaan paremman iteratiivisen menetelmän seuraavasti. Korvataan iteraatioaskel (9) iteraatioaskeleella x k = x k 1 a k 1 r k 1, (11) valitsemalla jotenkin järkevästi a k 1 R sen sijaan, että a k 1 = 1. Tällä yritteellä x k saamme (10):n sijaan residuaalille r k = Ax k b = r k 1 a k 1 Ar k 1. Tätä tarkastelemalla huomaamme, että (muista Gram-Schmidtin ortogonalisointi prosessi!) a k 1 kannattaa valita siten, että projisoimme r k 1 :stä vektorin Ar k 1 suuntaisen komponentin pois. Siis asetamme a k 1 = (r k 1,Ar k 1 ) Ar k 1 2. Vaikka muutos saattaa tuntua pieneltä, tämä takaa sen, että jokaisella askeleella k pätee r k r k 1 (12) riippumatta siitä oliko oletukset Neumannin sarjan käytölle voimassa B:lle vai ei. Näin määriteltyä iteratiivista menetelmää (11) kutsutaan nimellä Orthomin(1). Muistitarpeeltaan ja työmäärältään tämä on samaa luokkaa kuin suoraviivainen Neumannin sarjaan pertustuva iteraatio (6). Käytännössä Orthomin(1) menetelmä ei kuitenkaan ole riittävän nopea iteratiivinen menetelmä. Toisin sanoen, vaikka (12) päteekin, residuaali ei pienene riittävän nopeasti. Peukalosääntö on, että aivan ehdottomasti k < n on maksimi iteraatiomäärä joka kaytännössä voidaan hyväksyä. Jos riittävää tarkkuutta ei siihen mennessä ole saavutettu, menetelmä on epäonnistunut ja on syytä yrittää jotain muutta Oikeasti käytösssä olevat menetelmät tekevät vieläkin fiksumpia päivityksiä kuin Orthomin(1). Näitä ovat konjugaattigradientti menetelmä CG (silloin kun A on positiividefiniitti) ja GMRES menetelmä. Nämä algoritmit päivittävät approximaatiota muodossa (11) siten, että optimaalisuus (12) yhä pätee mutta residuaalin pienemisnopeus on (toivottavasti merkittävästi) suurempi kuin Orthomin(1) menetelmällä. Lopuksi todettakoon, että iteratiivisia menetelmiä käytetään muihinkin ongelmiin, kuin pelkästään lineaaristen yhtälöryhmien ratkaisemiseen. Epälineaariset yhtälöt pitää ratkaista iteratiivisesti aina, oli n sitten suuri tai pieni. Ominaisarvoja lasketaan iteratiivisilla menetelmillä. 5