Cholesky-felbontás

A Wikipédiából, a szabad enciklopédiából
(Cholesky felbontás szócikkből átirányítva)

A lineáris algebrában a Cholesky-felbontás a szimmetrikus, pozitív definit mátrixok felbontása alsó trianguláris mátrixok és azok konjugált transzponáltjainak szorzatává.

Ezt az eljárást André-Louis Cholesky fedezte fel a valós mátrixokhoz.

Az alsó trianguláris mátrix az eredeti pozitív definit mátrix Cholesky-háromszöge.

Hogyha ez alkalmazható, akkor a Cholesky-felbontás nagyjából kétszer eredményesebb, mint az LU felbontás a lineáris egyenletrendszerek megoldásánál.

Állítás[szerkesztés]

Ha A-nak valós elemei vannak, és szimmetrikus (vagy általánosabban hermitikus) és pozitív definit, akkor A felbontható

ahol L alsó trianguláris mátrix szigorúan pozitív főátlóbeli elemekkel, és L* a konjugált transzponáltja (más nevén adjungáltja, vagy Hermite-transzponáltja) L-nek. Ez a Cholesky-felbontás.

A Cholesky-felbontás egyértelmű: adott egy hermitikus, pozitív definit A mátrix, csak egy alsó trianguláris L mátrix létezik, szigorúan pozitív főátlóbeli tagokkal, amivel A=LL*. A fordított eset triviális: ha A felírható, mint LL*, valamely invertálható L (nem feltétlen alsó trianguláris) mátrixra, akkor A hermitikus és pozitív definit.

Azt a feltételt, hogy a diagonális szigorúan pozitív legyen, elhagyhatjuk, hogy kiterjesszük a felbontást pozitív definit esetre. Az állításban szerepel: a négyzetes A mátrixnak van Cholesky-felbontása, akkor és csak akkor, ha A hermitikus és pozitív szemidefinit. A Cholesky-felbontás pozitív szemidefinit mátrixokra általában nem egyértelmű.

Speciális esetben az A szimmetrikus, pozitív definit mátrix valós elemekkel, feltehetjük, hogy L szintén valós elemekkel rendelkezik.

Alkalmazás[szerkesztés]

A Cholesky-felbontást főleg az Ax = b alakú lineáris mátrixegyenletek numerikus megoldására használják. Ha az A mátrix szimmetrikus és pozitív definit, akkor Ax = b megoldható. A megoldás menete a következő:

  • Első lépésként Cholesky-felbontással kiszámoljuk A = LLT mátrixegyenletben szereplő L-t,
  • majd megoldjuk Ly = b-t y-ra,
  • végül LTx = y-t x-re.

Lineáris legkisebb négyzetek[szerkesztés]

A gyakorlatban gyakran fordulnak elő Ax = b alakú rendszerek, ahol A szimmetrikus és pozitív definit. Például a lineáris legkisebb négyzetek problémájában a normál egyenletek ilyen alakúak. A akár egy energiafüggvényből is származhat, így annak fizikai megfontolások miatt pozitívnak kell lennie. Ez gyakran fordul elő parciális differenciálegyenlet-rendszerek megoldásánál.

Monte Carlo szimuláció[szerkesztés]

A Cholesky-felbontást gyakran alkalmazzák a Monte Carlo-módszerben arra, hogy egymással korreláló változókat szimuláljanak. Alkalmazva ezt korreláló részvények vektorára, u előállít egy Lu vektort azokkal a kovarianciatulajdonságokkal, amivel a rendszert modellezzük.

A Cholesky-felbontás számítása[szerkesztés]

A Cholesky-algoritmus[szerkesztés]

A Cholesky-algoritmust arra használják, hogy kiszámolják a felbontott L mátrixot, lényegében a Gauss elimináció módosított változata.

A rekurzív algoritmus i:=1-gyel indul és

Az i-edik lépésnél a A(i) mátrix a következő:

,

ahol Ii‒1 az i ‒ 1 dimenziójú egységmátrixot jelöli.

Ha most meghatározzuk az Li mátrixot

akkor felírhatjuk A(i) mátrixot, mint

ahol

Megjegyezzük, hogy bi bi* egy külső szorzat, ezért ezt az algoritmust külső szorzatos változatnak nevezik (Golub & Van Loan).

Ezt ismételjük i-re 1-től n-ig. Az n-edik lépés után A(n+1) = I eredményt kapjuk. Ezért az alsó trianguláris L mátrixra adódik:

A Cholesky-Banachiewicz és Cholesky-Crout algoritmus[szerkesztés]

Ha kiírjuk az A = LL* mátrix-szorzást részleteiben, akkor:

Tehát a következő képleteket nyerjük a mátrix elemeire:

A négyzetgyök alatti kifejezés mindig pozitív, ha A elemei a valós számok közül kerülnek ki és pozitív definit. A komplex hermitikus mátrixokra a következők érvényesek:

Tehát ki tudjuk számítani az i-edik oszlop j-edik elemét, ha tudjuk a tőle balra és fölötte elhelyezkedő értékét. A számításra két különböző sorrendet szoktak követni.

  • A Cholesky-Banachiewicz algoritmus a bal felső sarokban kezdi a felbontást, és soronként halad.
  • A Cholesky-Crout algoritmus szintén a bal felső sarokban kezdődik, viszont oszloponként halad.

A számítás stabilitása[szerkesztés]

A Cholesky-felbontás alkalmas lineáris egyenletrendszerek megoldására. Az LU felbontás numerikusan instabil módszer, hacsak nem pivot elemekkel *főelem-kiválasztással?* hajtjuk végre azt. A fellépő hibák a felbontandó mátrix ún. növekedési faktorától függenek, ami az esetek többségében alacsony értéket vesz fel. Ezzel szemben, ha a Cholesky-felbontással dolgozunk, kétszer olyan gyorsan haladhatunk, főleg, hogy nincs szükség pivot elemek kijelölésére *főelem-kiválasztásra?*. Ezzel a módszerrel a hiba mindig kicsi lesz. Ha az Ax = b lineáris egyenletrendszerre y-t kaptunk megoldásnak, akkor a valódi gyöktől való eltérés leírható a következőképpen: (A + E)y = b , ahol : Itt || ||2 a mátrix 2-norma cn egy n-től függő kis állandó, pedig a gépepszilon. Egyetlen ismert hátránya van a Cholesky-felbontásnak. Az algoritmus során négyzetgyököket kell számítani, viszont a kerekítési hibákból adódóan előfordulhat, hogy negatív számok kerülnek a gyök alá. Szerencsére ez a gond csak nagyon rosszul rendezett mátrixok esetén szokott fellépni.

A négyzetgyökvonás kikerülése[szerkesztés]

A felbontás egy másik módja:

Ebben a formában nincsen szükség négyzetgyökökre. Ha A pozitív definit, akkor D főátlóbeli elemei mind pozitívak. Ugyanakkor használható D helyett bármilyen négyzetes és szimmetrikus mátrix. A következő rekurzív formulákkal meghatározhatóak D és L tagjai:

Komplex hermitikus mátrixok esetén pedig a következők érvényesek:

Pozitív szemidefinit mátrixok Cholesky-felbontása[szerkesztés]

Láthattuk, hogy minden pozitív definit mátrixnak van Cholesky-felbontása. A módszerünk kiterjeszthető (itt nem teljesen részletezett érveléssel) pozitív szemidefinitekre is. Sajnos ez esetben nem jutunk explicit numerikus algoritmusokhoz, amikkel végrehajtható a felbontás. Ha A pozitív szemidefinit n×n-es mátrix, akkor az {Ak} = {A + (1/k)In} sorozat tagjai pozitív definitek. Továbbá

az operátornorma esetén. Pozitív definit esetben minden Ak-nak van Cholesky-felbontása, Ak = LkLk*. Az operátornorma tulajdonságaiból adódóan:

Tehát {Lk} a Banach-tér operátorainak egy korlátos készlete, és relatív kompakt (mivel a vektortér dimenzióinak száma véges). Következésképp van konvergens sorozata, amit az {Lk} sorozat jelöl ki, és a határértéke L. Ha L a határértéke ennek a sorozatnak, akkor megmutatható, hogy ez az L alsó trianguláris nemnegatív diagonális elemekkel és A = LL*. Bármely x-re és y-ra:

Ebből A = LL*. Mivel a tárgyalt vektorterünk dimenzióinak száma véges, ezért minden topológia az operátorok terén ekvivalens.

Általánosítás[szerkesztés]

A Cholesky-felbontás általánosítható akár nem véges mátrixokra is operátorok segítségével. Legyen a Hilbert-terek egy sorozata! Az operátormátrix

úgy hat a direkt összegzésre, hogy

ahol bármely

egy korlátos operátor. Ha A pozitív (szemidefinit) abban az értelemben, hogy minden véges k-ra és bármely , akkor van olyan L operátormátrix úgy, hogy A = LL*.

Online kalkulátor[szerkesztés]