Matriisilaskenta Luento 8: LU-hajotelma Antti Rasila 2016
Matriisihajotelmat 1/2 Usein matriisiyhtälön Ax = y ratkaiseminen on epäkäytännöllistä ja hidasta. Siksi numeerisessa matriisilaskennassa usein pyritään esittämään matriisi A kahden tai usemman jotakin yksinkertaista muotoa olevan matriisin tulona. Tällaista esitystä kutsutaan matriisihajotelmaksi. Useimmat suorat (ei-iteratiiviset) menetelmät perustuvat hajotelmien käyttöön. Matriisilaskenta 2/15
Matriisihajotelmat 2/2 Hajotelma helpottaa matriisiyhtälön ratkaisemista ja saattaa myös antaa käyttökelpoista tietoa itse matriisista. Matriisihajotelmia on monia erilaisia, koska eri tilanteissa tarvitaan eri hajotelmia. Matriisihajotelmia ei yleensä kannata laskea käsin, mutta niitä löytyy valmiiksi implementoituna eri laskentaohjelmistoista ja -kirjastoista. Matriisilaskenta 3/15
LU-hajotelma Tarkastellaan yhtälöryhmän Ax = y ratkaisemista, kun A R n n on yläkolmiomatriisi, eli a jk = 0, kun j > k. Tällöin siis matriisiyhtälöä Ax = y vastaa yhtälöryhmä a 11 x 1 + a 12 x 2 +... + a 1n x n = y 1, a 22 x 2 +... + a 2n x n = y 2,... a nn x n = y n. Tällöin tuntemattomat x 1,..., x n voidaan ratkaista takaisinsijoituksella. Matriisilaskenta 4/15
Esimerkki Olkoot Tällöin 1 2 1 0 A = 0 4 2, y = 16 0 0 2 4 Ax = y x 1 2x 2 + x 3 = 0, 4x 2 + 2x 3 = 16, 2x 3 = 4. Saadaan x 3 = 2, eli x 2 = 1 4 (16 2x 3) = 5, ja x 1 = 2x 2 x 3 = 12. Ratkaisu on siis x = (12, 5, 2). Matriisilaskenta 5/15
LU-hajotelma ja matriisiyhtälön ratkaiseminen 1/3 Edellisen esimerkin menettelyä voidaan soveltaa yleisesti: x n = y n a nn, ja x j = 1 a jj ( y j n k=j+1 a jk x j ). Matriisiyhtälön ratkaisemisen kannalta on siis edullista, jos matriisi A saadaan muutettua yläkolmiomuotoon (tai alakolmiomuotoon). Matriisilaskenta 6/15
LU-hajotelma ja matriisiyhtälön ratkaiseminen 2/3 Tästä päädytään LU-hajotelmaan: Jos A R n n, niin etsitään sellaiset matriisit L, U R n n, että 1) L on alakolmio- ja U on yläkolmiomatriisi, ja 2) A = LU. Matriisilaskenta 7/15
LU-hajotelma ja matriisiyhtälön ratkaiseminen 3/3 Tällöin yhtälö Ax = y voidaan ratkaista ratkaisemalla kaksi kolmiomatriisiyhtälöä { Lz = y, eli Ax = LUx = Lz = y. Ux = z, Molemmat yhtälöt voidaan ratkaista takaisinsijoituksella: Ensin ratkaistaan z yhtälöstä Lz = y ja sitten x yhtälöstä Ux = z. Seuraavaksi tutkitaan miten hajotelma A = LU voidaan löytää nk. Doolittlen algoritmia käyttäen. Matriisilaskenta 8/15
LU-hajotelman laskeminen 1/2 Selvitetään aluksi tuntemattomien määrä. Matriisit L ja U ovat l 11 0 0 u 11 u 12 u 1n l 21 l 22 0 0 u 22 u 2n L =.... U =...... l n1 l n2 l nn, 0 0 u nn. Siten matriisiin L liittyvien tuntemattomien määrä on n(n + 1)/2 ja samoin matriisiin U liittyvien. Yhteensä tehtävässä siis on n 2 + n tuntematonta. Koska matriisissa A on vain n 2 alkiota, voidaan L:n tai U:n alkioista n kappaletta valita vapaasti. Matriisilaskenta 9/15
LU-hajotelman laskeminen 2/2 Kiinnitetään jomman kumman diagonaalialkiot ykkösiksi. Jos l 11 =... = l nn = 1, niin saadaan Doolittlen algoritmi, ja jos u 11 =... = u nn = 1, saadaan Croutin algoritmi. Huom. Jos valitaan l 11 =... = l nn = 1, niin det(l) = 1. Lisäksi, A on kääntyvä, jos ja vain jos det(a) 0 eli det(u) 0. Siten U on kääntyvä ja siis U:n diagonaalialkiot ovat nollasta poikkeavia. Matriisilaskenta 10/15
Esimerkki: Doolittlen menetelmä 1/2 Muodostetaan matriisin A LU-hajotelma Doolittlen menetelmällä, kun 3 5 2 1 0 0 u 11 u 12 u 13 A = 0 8 2 = l 21 1 0 0 u 22 u 23. 6 2 8 l 31 l 32 1 0 0 u 33 Ensimmäisellä rivillä saadaan heti u 11 = 3, u 12 = 5 ja u 13 = 2. Toisella rivillä l 21 u 11 = 0, joten l 21 = 0 (koska u 11 0). Edelleen, l 21 u 12 + u 22 = 8, joten u 22 = 8 (koska l 21 = 0). Saadaan myös l 21 u 13 + u 23 = 2, ja siis u 23 = 2 (koska l 21 = 0). Samaan tapaan kolmannella rivillä l 31 u 11 = 6 ja siis l 31 = 2 (koska u 11 = 3). Matriisilaskenta 11/15
Esimerkki: Doolittlen menetelmä 2/2 Koska l 31 = 2, u 12 = 5 ja u 22 = 8, saadaan yhtälöstä l 31 u 12 + l 32 u 22 = 2 ratkaistua l 32 = 1. Lopuksi sijoittamalla saadut arvot yhtälöön l 31 u 13 + l 32 u 23 + u 33 = 8 saadaan u 33 = 6. Saadaan siis esitys 1 0 0 3 5 2 A = LU = 0 1 0 2 1 1 0 8 2 0 0 6. Yleinen algoritmi toimii samaan tapaan, eli ratkaistaan A:n alkioista muodostuvat yhtälöt järjestyksessä a 11, a 12,..., a 1n, a 21,..., a nn. Matriisilaskenta 12/15
Huomautuksia 1/2 Algoritmi katkeaa, jos U:n diagonaalille ilmestyy nollia. LU-hajotelmaa voidaan käyttää myös ei-kääntyville matriiseille. Ei-neliömatriisin A R m n LU-hajotelmassa 1 0 0 l 21 1 0 L =..... Rm m l m1 l m2 1 on alakolmiomatriisi. Matriisilaskenta 13/15
Huomautuksia 2/2 Yläkolmiomatriisi on muotoa u 11 u 12 u 13 u 1n 0 u 22 u 23 u 2n U =. 0 0... Rm n. 0 0 u mm u mn Matriisilaskenta 14/15
Esimerkki Kaikilla matriiseilla ei ole LU-hajotelmaa. Yritetään muodostaa hajotelma matriisille: ) ( a 0 A = ( 0 1 1 0 Tällöin ad = 0 ja siten a = 0 tai d = 0. = b c ) ( d e 0 f ). Lisäksi ae = 1, joten a 0, ja bd = 1, joten d 0. Nämä kolme ehtoa eivät voi olla samaan aikaan voimassa. Hajotelma voidaan kuitenkin löytää vaihtamalla rivien järjestystä. Matriisilaskenta 15/15