Numerikus módszerek 1.
3. előadás: MátrixokLU-felbontása
Lócsi Levente
ELTE IK
2013. szeptember 23.
Tartalomjegyzék
1 Alsó háromszögmátrixok és Gauss-elimináció
2 Háromszögmátrixokról
3 LU-felbontás Gauss-eliminációval
4 AzLU-felbontás „közvetlen” kiszámítása
Tartalomjegyzék
1 Alsó háromszögmátrixok és Gauss-elimináció
2 Háromszögmátrixokról
3 LU-felbontás Gauss-eliminációval
4 AzLU-felbontás „közvetlen” kiszámítása
Balról szorzás alsó háromszögmátrixokkal
Mi történik, ha az alábbi L∈R3×3 mátrixszal megszorzunk egy A∈R3×3 mátrixot balról?
∗ ∗ ∗
∗ ∗ ∗
∗ ∗ ∗
1 0 0 2 1 0 0 0 1
? ? ?
? ? ?
? ? ?
Az 1. sor kétszeresét hozzáadjuk a 2. sorhoz.
Balról szorzás alsó háromszögmátrixokkal
Mi történik, ha az alábbi L∈R3×3 mátrixszal megszorzunk egy A∈R3×3 mátrixot balról?
1 0 0
2 1 0
−3 0 1
Az 1. sor kétszeresét hozzáadjuk a 2. sorhoz, valamint az 1. sor háromszorosát levonjuk a 3. sorból. (∼GE)
A Gauss-elimináció lépései mátrixszorzással
Írjuk fel a GE k-adik lépését ugyanilyen módszerrel! (A∈Rn×n)
Lk =
1
. ..
1 lk+1,k 1
... ...
ln,k 1
=I+vkek⊤, vk =
0(1.)
...
0(k.) lk+1,k
...
ln,k
.
(A zérus elemek nincsenek feltüntetveLk-ban.) Tehát ha li,k =−a(k−1)i,k
a(k−1)k,k (k =1, . . . ,n−1;i =k+1, . . . ,n), akkor Lk·A(k−1) =A(k), vagyis megkaptuk a GE k-adik lépését.
Példa
Példa: GE az Lk mátrixokkal
Írjuk fel a Gauss-elimináció lépéseit mátrixszorzások segítségével a következő mátrix esetén (ua. mint az előző előadáson)!
A=
2 0 3
−4 5 −2
6 −5 4
A Gauss–Jordan-módszer lépései mátrixszorzással
Házi feladat
Írjuk fel a Gauss–Jordan-féle elimináció lépéseit mátrixszorzás formájában!
Tartalomjegyzék
1 Alsó háromszögmátrixok és Gauss-elimináció
2 Háromszögmátrixokról
3 LU-felbontás Gauss-eliminációval
4 AzLU-felbontás „közvetlen” kiszámítása
Elnevezések, jelölések
Definíció: alsó háromszögmátrix
Az L∈Rn×n mátrixot alsó háromszögmátrixnaknevezzük, ha i <j esetén li,j =0. (A főátló felett csupa nulla.) L:={L∈Rn×n : li,j =0(i <j)},
L1 :={L∈Rn×n : li,j =0(i<j),li,i =1}.
Definíció: felső háromszögmátrix
Az U ∈Rn×n mátrixotfelső háromszögmátrixnaknevezzük, ha i >j esetén ui,j =0. (A főátló alatt csupa nulla.) U :={U ∈Rn×n : ui,j =0(i >j)}.
Háromszögmátrixok halmazának zártsága
Állítás: háromszögmátrixról
1 Ha L′,L′′∈ L, akkor L′·L′′∈ L.
2 Ha U′,U′′∈ U, akkor U′·U′′ ∈ U.
3 Ha L′,L′′∈ L1, akkor L′·L′′∈ L1.
4 Ha L∈ Lés ∃L−1, akkor L−1∈ L.
5 Ha U ∈ U és ∃U−1, akkor U−1 ∈ U.
6 Ha L∈ L1, akkor ∃L−1 és L−1∈ L1. Biz.: házi feladat (beadható).
Útmutatás: 1.Kell:(L′·L′′)i,j=0 (i<j), írjuk fel a mátrixszorzást:
(L′·L′′)i,j=P
. . .. Használjuk ki, hogyL′,L′′∈ L: minden tag kiesik.
2.Hasonlóképp.3.Határozzuk meg a szorzat főátlóbeli elemeit is.
4., 5., 6.Az inverz Gauss-eliminációval meghatározható.
Az L
kmátrixokról
Definíció: Lk
Lk =Lk(v) :=I+vek⊤∈Rn×n, ahol v ∈Rn, vi =0(i ≤k) és ek ∈Rna k-adik egységvektor.
Állítás: Lk inverze
L−1k =Lk(v)−1=Lk(−v) =I−vek⊤.
Biz.:
Lk ·L−1k = (I+vek⊤)(I−vek⊤) =I+vek⊤−vek⊤
| {z }
0
−v ek⊤v
|{z}0
ek⊤=I.
Szemléletesen?
Az L
kmátrixokról
Hogyan szorzunk össze két ilyen mátrixot?
1 0 0 0 1 0 0 3 1
1 0 0 2 1 0 1 0 1
1 0 0 2 1 0 1 3 1
1 0 0 2 1 0 1 0 1
1 0 0 0 1 0 0 3 1
1 0 0 2 1 0 7 3 1
A bal oldali sorrendben „szépen” szorzódik. Általában is.
Az L
kmátrixokról
Állítás: Lk mátrixok szorzata
L−11 ·L−12 · · ·L−1n−1 =I−v1e1⊤−v2e2⊤−. . .−vn−1en−1⊤ .
Biz.: Indukcióval.
• L−11 ·L−12 = (I−v1e1⊤)(I−v2e2⊤) =I−v1e1⊤−v2e2⊤+v1(e1⊤v2)e2⊤.
• Tfh. L−11 ·L−12 · · ·L−1k =I−v1e1⊤−v2e2⊤−. . .−vkek⊤.
• L−11 ·L−12 · · ·L−1k ·L−1k+1 =
= (I−v1e⊤1 −v2e2⊤−. . .−vkek⊤)(I−vk+1ek⊤+1) =
=I−v1e1⊤−v2e2⊤−. . .−vkek⊤−vk+1ek+1⊤ + +v1e1⊤vk+1ek+1⊤ +. . .+vkek⊤vk+1ek⊤+1
| {z }
kiesnek
=X.
Tartalomjegyzék
1 Alsó háromszögmátrixok és Gauss-elimináció
2 Háromszögmátrixokról
3 LU-felbontás Gauss-eliminációval
4 AzLU-felbontás „közvetlen” kiszámítása
LU -felbontás
Definíció: LU-felbontás
Az Amátrix LU-felbontásának nevezzük azL·U szorzatot, ha A=LU, L∈ L1,U ∈ U.
LU -felbontás Gauss-eliminációval
A Gauss-eliminációt felírhatjuk alsó háromszögmátrixok segítségével:
Ln−1· · ·L2·L1·A=U, majd az inverzekkel egyesével átszorozva:
A=L−11 ·L−12 · · ·L−1n−1
| {z }
L
·U.
Az imént láttuk, hogy a fenti szorzat is alsó háromszögmátrix.
A=LU.
Példa
Példa: LU-felbontás GE-val
Készítsük el a példamátrixunk LU-felbontását
(a) részletezve azLk mátrixokat, a számítás menetét, (b) majd „tömör” írásmóddal!
LU -felbontás Gauss-eliminációval
Tétel: LU-felbontás létezése
Ha a Gauss-elimináció végrehajtható sor és oszlopcsere nélkül, azaz ak,k(k−1)6=0(k=1, . . . ,n−1), akkor az A mátrixLU-felbontása létezik.
Biz.: Láttuk.
Összefoglalva: Haa(k−1)k,k 6=0, akkor azLk mátrixok felírhatók, a Gauss-elimináció („előre” része) végén felső háromszög alakú mátrixot kapunk. Ez leszU. AzLk
mátrixok inverzének szorzataként pedig adódikL.
LU -felbontás Gauss-eliminációval
Definíció: főminorok
Az A∈Rn×n mátrix Ak főminoraazA mátrix bal felsők×k-as részmátrixa.
Tétel: LU-felbontás létezése (A-ra vonatkozó feltétellel) Ha detAk 6=0(k =1, . . . ,n−1), akkor létezik az Amátrix LU-felbontása.
Biz.: Belátjuk, hogy ekvivalens az előző feltétellel.
• Ak =Lk·Uk (főminorok).
• detAk =detLk ·detUk =1·u1,1·u2,2· · ·uk,k =
=a1,1(0)·a(1)2,2· · ·ak,k(k−1).
• detAk = (detAk−1)·a(k−1)k,k ⇔a(k−1)k,k 6=0.
LU -felbontás Gauss-eliminációval
Tétel: az LU-felbontás egyértelműségéről
Ha A-nak létezikLU-felbontása, továbbá detA6=0, akkor az LU-felbontás egyértelmű.
Biz.: Indirekt, táblán. Meggondoltuk.
Megjegyzés: L és U megadása
Az eddigieket összefoglalva felírhatjuk azA=LU felbontást:
L∈ L1 és li,j = ai(j−1),j
aj(j−1),j (i >j), U ∈ U és ui,j =a(i−1)i,j (i ≤j).
Miért jó az LU -felbontás?
Tegyük fel, hogy
• az Ax=b LER megoldható, és
• rendelkezésünkre áll az A=LU felbontás.
Ekkor Ax=L·U·x
| {z }
y
=b helyett (13n3+O(n2)) 1 oldjuk meg azLy =b, (21n2+O(n)) 2 majd az Ux =y LER-t. (12n2+O(n))
Persze valamikor elő kell állítani azLU-felbontást. (13n3+O(n2))
Előnyös, ha sokszor ugyanaz A.
Tartalomjegyzék
1 Alsó háromszögmátrixok és Gauss-elimináció
2 Háromszögmátrixokról
3 LU-felbontás Gauss-eliminációval
4 AzLU-felbontás „közvetlen” kiszámítása
Az LU -felbontás „közvetlen” kiszámítása
• Nem ismerjük L-t és U-t: ismeretlenek a mátrixokban.
• Viszont szorzatukat ismerjük: LU =A.
• A egyes elemeit a mátrixszorzás alapján felírva egyenleteket kapunk Lés U elemeire.
• Jó sorrendben felírva az egyenleteket, mindig megkapjuk egy-egy új ismeretlen értékét.
Jó sorrendek
1. 1. 1. 1.
2. 3. 3. 3.
4. 4. 5. 5.
6. 6. 6. 6.
sorfolytonosan
1. 3. 5. 7.
2. 3. 5. 7.
2. 4. 5. 7.
2. 4. 6. 7.
oszlopfolytonosan
1. 1. 1. 1.
2. 3. 3. 3.
2. 4. 5. 5.
2. 4. 6. 7.
parkettaszerűen
Példa
Példa: LU-felbontás közvetlenül
(a) Készítsük el a példamátrixunkLU-felbontását közvetlenül a mátrixszorzás alapján.
(b) Nézzünk egy újabb példát is. (Vigyázat, detB2 =0.)
A=
2 0 3
−4 5 −2
6 −5 4
, B=
2 −2 3
−4 4 −2
6 −5 4
Az LU -felbontás „közvetlen” kiszámítása
Tétel: az LU-felbontás „közvetlen” kiszámítása
Az Lés U mátrixok elemei a következő képletekkel számolhatók:
i ≤j (felső) ui,j =ai,j−
i−1X
k=1
li,k ·uk,j,
i >j (alsó) li,j = 1 uj,j
ai,j−
j−1
X
k=1
li,k·uk,j
.
Ha jó sorrendben számolunk, mindig ismert az egész jobb oldal.
Biz.: Mátrixszorzás felírása, háromszögmátrix voltuk kihasználása, egy tag leválasztása, kifejezése. Táblán.
Példák Matlab-ban
1 Az LU-felbontás működése „kisebb” (n≈7) mátrixokra,
2 valamint „nagyobb” mátrixokra (n≈50) színkóddal.
3 LER megoldásaLU-felbontás segítségével.
4 Sok LER (m≈10,100) megoldása futási idejének összevetése nagyobb mátrixok (n≈50,100,200) esetén: GE-val valamint az LU-felbontás kihasználásával.