• Nem Talált Eredményt

Gauss-módszer

In document Numerikus módszerek (Pldal 67-80)

Ellen®rz® kérdések

3. Lineáris egyenletrendszerek megoldása

3.3. Gauss-módszer

Innét

kδxk

kxk ≤ kA−1k · kAk 1− kA−1δAk

kδbk

kAk · kxk +kδAk kAk

≤ κ(A)

1−κ(A)kδAk/kAk · kδbk

kbk +kδAk kAk

.

Érdemes egy kicsit elid®zni a fenti tétel állításán. A benne szerepl® képlet azt fejezi ki, hogy a megoldás relatív hibája függ az együtthatómátrix és a jobb oldal relatív hibájától. A képletben szorzótényez®ként szerepel még viszont az együtthatómátrix kondíciószáma. Ez mutatja, hogy a megoldás relatív hibája úgy is nagy lehet, ha az együtthatómátrix és a jobb oldal hibája nem túl nagy, de az együtthatómátrix kondíciószáma nagy.

A gyakorlatban egy egyenletrendszer megoldása során az együtthatómátrix és a jobb oldali vektor több dolog miatt is perturbálódhat. Pl. amiatt, hogy az elemeik mérési adatok, így hibával terheltek. De még csak nem is kell hibával terheltnek lenniuk az adatoknak, hiszen magából a lebeg®pontos ábrázolásból is származik hiba. Csak egy A+δA mátrixot és egy b+δb vektort tudunk ábrázolni az eredetiek helyett. Ezekre érvényesek akδAk≤ukAkéskδbk≤ukbk becslések1. Tegyük fel, hogyκ(A)u≤1/2. Ekkor még ha kerekítési hiba nélkül oldjuk is meg az egyenletrendszert, azx megoldásra érvényes azˆ

kx−xˆk kxk

≤4uκ(A) becslés. Ez a hiba nagyon nagy lehet, ha a kondíciószám nagy.

3.3. Gauss-módszer

A lineáris egyenletrendszerek megoldási módszereit két nagy csoportba oszthatjuk: ún. direkt és iterációs módszerek. Direkt módszerek esetén a megoldást véges sok aritmetikai m¶velettel állítjuk el®. Ha minden lépést pontosan számolunk, azaz a lépések nem terheltek a lebeg®pontos számolásból származó hibákkal, akkor pontosan megkapjuk az egyenletrendszer megoldását. Ilyen megoldási módszer pl. a Cramer-szabály. Megjegyezzük persze, hogy ennek alkalmazása háromnál több egyenlet esetén egyáltalán nem praktikus. Iterációs módszerek esetén egy, a megoldáshoz tartó vektorsorozatot állítunk el®, és ennek egy megfelel® elemével közelítjük a megoldást.

Kisméret¶ lineáris egyenletrendszerek megoldását általában úgy végezzük, hogy valamelyik egyenletb®l kifejezzük valamelyik ismeretlent, és azt a többi egyenletbe helyettesítjük. Ezzel a módszerrel az ismeretlenek száma eggyel csökkenthet®. Másik lehet®ség, hogy valamelyik egyen-let egy ügyesen választott számszorosát kivonjuk egy másik egyenegyen-letb®l, kiejtve ezzel valamelyik ismeretlent. Felcserélhetünk egymással egyenleteket is, hiszen ezek sorrendjét®l nem függ a megol-dás. Felcserélhetjük a változókat is, csak az egyenletrendszer megoldásának felírásakor gyelembe kell majd vennünk ezt a cserét. Ezekkel a módszerekkel ismét csökkenthet® az ismeretlenek száma.

A felsorolt eljárások egyike sem változtatja meg az egyenletrendszer megoldását. Természetesen nagyméret¶ egyenletrendszerek megoldásához vagy egy lineáris egyenletrendszerek megoldásá-ra szolgáló progmegoldásá-ram elkészítéséhez a fenti eljárásokat valamilyen szabálynak megfelel®en kellene alkalmaznunk.

A legegyszer¶bb, de máig nagyon sokszor használt, direkt lineáris egyenletrendszer megol-dó módszer az ún. Gauss-módszer, amely lényegében a fent ismertetett eljárások szisztematikus leírása. A módszer két lépésb®l áll. Az els® az ún. eliminációs rész (Gauss-elimináció), a máso-dik pedig a visszahelyettesítés. Az eliminációs lépéssel olyan alakra hozzuk az egyenletrendszert,

1u a gépi pontosságot jelöli.

melynek utolsó egyenletében csak az utolsó ismeretlen szerepel, az utolsó el®ttiben csak az utolsó kett®, stb. Ezen új egyenletrendszer együtthatómátrixa már egy fels® háromszögmátrix lesz. Az eljárás után a megoldás az utolsó egyenlett®l visszafelé egyszer¶ visszahelyettesítéssel nyerhet®.

Nézzük az eljárást most részletesen. Tegyük fel egyel®re, hogy az eljárás során sehol sem fordul el® nullával való osztás! Kés®bb majd megvizsgáljuk, hogy ha ez nem áll fenn, akkor hogy lehet a módszert módosítani.

Tegyük fel tehát, hogy az Ax = b egyenletrendszer megoldását keressük, ahol A ∈ Rn×n, b ∈ Rn és det(A) 6= 0. Az egyszer¶ség kedvéért csak az ismeretlenek együtthatóit kiírva az egyenletrendszer az alábbi alakú.

a11 a12 . . . a1n b1

a21 a22 . . . a2n b2

a31 a32 . . . a3n b3 ...

an1 an2 . . . ann bn

Lássuk el az együtthatókat egy (1) fels® indexszel, amely mutatja, hogy ez az elimináció során nyert els® (azaz az eredeti) egyenletrendszer

a(1)11 a(1)12 . . . a(1)1n b(1)1 a(1)21 a(1)22 . . . a(1)2n b(1)2 a(1)31 a(1)32 . . . a(1)3n b(1)3

...

a(1)n1 a(1)n2 . . . a(1)nn b(1)n

.

Els® lépésként az els® egyenlet segítségével kiejtjük a többi egyenletb®l az els® változót. Ezt úgy érjük el, hogy az els® egyenlet egy számszorosát kivonjuk a megfelel® egyenletb®l. Legyen tehát l21 = a(1)21/a(1)11, . . . , ln1 =a(1)n1/a(1)11. Ekkor könny¶ látni, hogy az i. egyenletb®l kivonva az els®

egyenletli1-szeresét azi.egyenletb®l kiesik az els® változó. Azlij alakú szorzókat úgy indexeljük, hogylij azi.sor j.elemének kinullázásához használt szorzót jelentse. Így az

a(1)11 a(1)12 . . . a(1)1n b(1)1 0 a(1)22 −l21a(1)12 . . . a(1)2n −l21a(1)1n b(1)2 −l21b1

0 a(1)32 −l31a(1)12 . . . a(1)3n −l31a(1)1n b(1)3 −l31b1

...

0 a(1)n2 −ln1a(1)12 . . . a(1)nn−ln1a(1)1n b(1)n −ln1b1 .

egyenletrendszerhez jutunk. A könnyebb átláthatóság kedvéért lássuk el az elemeket most(2)fels®

indexszel. Mivel az els® sor elemei nem változnak, így ott megtartjuk az(1)-es indexet.

a(1)11 a(1)12 . . . a(1)1n b(1)1 0 a(2)22 . . . a(2)2n b(2)2 0 a(2)32 . . . a(2)3n b(2)3

...

0 a(2)n2 . . . a(2)nn b(2)n

.

3.3. Gauss-módszer 65

Most kiszámítva az l32 = a(2)32/a(2)22, . . . , ln2 = a(2)n2/a(2)22 szorzókat, hasonlóan lenullázhatjuk a második oszlop f®átló alatti elemeit is, majd átindexelés után kapjuk az új

a(1)11 a(1)12 . . . a(1)1n b(1)1 0 a(2)22 . . . a(2)2n b(2)2 0 0 . . . a(3)3n b(3)3

...

0 0 . . . a(3)nn b(3)n

egyenletrendszert. Ezt folytatjuk addig, míg az utolsó el®tti f®átlóbeli elem alatti egyetlen elem is le nem nullázódik. Ekkor a megfelel® indexelést elvégezve kapjuk az

a(1)11 a(1)12 . . . a(1)1n b(1)1 0 a(2)22 . . . a(2)2n b(2)2 0 0 . . . a(3)3n b(3)3

...

0 0 . . . a(n)nn b(n)n

egyenletrendszert. Ezzel az eliminációs rész végére értünk.

A fenti egyenletrendszer együtthatómátrixa egy fels® háromszögmátrix. Megoldása egyszer¶

visszahelyettesítéssel történik. Az utolsó egyenletb®l nyerjük azxn ismeretlen értékét az

xn = b(n)n

a(n)nn

formulával. Ezután visszafelé haladva rendre az

xn−1= b(n−1)n−1 −a(n−1)n−1,nxn a(n−1)n−1,n−1

, ...

x2= b(2)2 −xna(2)2n − · · · −x3a(2)23 a(2)22

, x1= b(1)1 −xna(1)1n − · · · −x2a(1)12

a(1)11 értékeket kapjuk.

Azokat a f®átlóbeli elemeket, melyek segítségével lenullázzuk az alattuk lév® elemeket, f®ele-meknek nevezzük. Egy adott f®elem alatti elemek kinullázását felírhatjuk mátrixszorzás segítsé-gével is. Legyen lk = [0, . . . ,0, lk+1,k, . . . , ln,k]T ∈Rn(k= 1, . . . , n−1). Ekkor a Gauss-elimináció k-adik lépése úgy változtatja meg a mátrixot, mintha az Lk := E−lkeTk mátrixszal szoroztuk volna azt. Az Lk (k= 1, . . . , n−1)mátrixszal való szorzást Gauss-transzformációnak nevezzük.

A teljes eliminációs eljárás során létrejöv® fels® háromszögmátrix Ln−1. . .L2L1A alakban írható.

Ezt a mátrixot általában U-val jelöljük, utalva arra, hogy ez egy fels® (upper) háromszögmátrix.

3.3.1. tétel.

A Gauss-transzformáció Lk =E−lkeTk mátrixa invertálható, és L−1k =E+lkeTk,k= 1, . . . , n−

1.

Bizonyítás. Azt kell megmutatni, hogy (E−lkeTk)(E+lkeTk) =E. Elvégezve a szorzást azt kapjuk, hogy

(E−lkeTk)(E+lkeTk) =E−lkeTk +lkeTk +lkeTklkeTk =E+lkeTklkeTk =E.

Az utolsó lépés onnét következik, hogy az lkeTk mátrix els®ksora csupa nulla elemb®l áll, és ak.

oszloptól jobbra is csak nulla elemek szerepelnek. Így a mátrix négyzete nullmátrixot ad.

Most vizsgáljuk meg, hogy milyen mátrixok esetén hajtható végre a Gauss-módszer a fent ismertetett módon, azaz úgy, hogy közben egyik f®elem sem lesz nulla. Ekkor ugyanis a nullával való osztás miatt nem tud végigfutni az eljárás.

3.3.2. tétel.

A Gauss-módszer pontosan akkor hajtható végre, ha az A mátrix egyik f®minorja sem zérus, azaz det(A(1 :k,1 :k))6= 0 (k= 1, . . . , n).

Bizonyítás. A Gauss-elimináció során az egyes sorokból kivonjuk más sorok számszorosait. Ez az eljárás nem változtatja meg a determinánst. Tehát

det(A(1 : 1,1 : 1)) = det(A(1)(1 : 1,1 : 1)) =a(1)11 6= 0, det(A(1 : 2,1 : 2)) = det(A(2)(1 : 2,1 : 2)) =a(1)11a(2)22 6= 0,

...

det(A(1 :n,1 :n)) = det(A(n)(1 :n,1 :n)) =a(1)11a(2)22 . . . a(n)nn 6= 0.

Az utolsó feltétel a visszahelyettesítés miatt kell, hiszen ez úgy kezd®dik, hogya(n)nn-el osztanunk kell azxn ismeretlen kiszámításához. Ebb®l következik az állítás. .

3.3.3. tétel.

Ha az A mátrix

1. szigorúan domináns f®átlójú, 2. szimmetrikus, pozitív denit mátrix, 3. M-mátrix,

akkor a Gauss-módszer végrehajtható az el®z® algoritmussal.

Bizonyítás. 1. Legyen A el®ször szigorúan domináns f®átlójú. El®ször megmutatjuk, hogy az eliminációs eljárás ez a tulajdonság meg®rz®dik. Elegend® ezt az els® ill.i-edik sorra megmutatni.

Tegyük fel tehát, hogy az els® ési-edik sorban domináns a f®átló, azaz

|a11|>|a12|+|a13|+· · ·+|a1n| /· |ai1| és

|aii|>|ai1|+· · ·+|ai,i−1|+|ai,i+1|+· · ·+|ain| /· |a11|.

3.3. Gauss-módszer 67

Ezekb®l

|a11ai1| ≥ |a12ai1|+|a13ai1|+· · ·+|a1nai1|,

|aiia11|>|ai1a11|+· · ·+|ai,i−1a11|+|ai,i+1a11|+· · ·+|aina11| és

|aiia11|>|a1iai1|+

n

X

j=2,j6=i

(|a1jai1|+|aija11|).

Az új mátrixi-edik sorának i-edik eleme:(aiia11−ai1a1i)/a11.

|aiia11−ai1a1i| ≥ ||aiia11| − |ai1a1i||

>

n

X

j=2,j6=i

(|a1jai1|+|aija11|)≥

n

X

j=2,j6=i

|a1jai1−aija11|.

Végül az|a11| értékkel való osztás mutatja a dominanciát.

2. Legyen most A szimmetrikus, pozitív denit mátrix. Szimmetrikus, pozitív denit mátrix determinánsa pozitív (sajátértékek szorzata). Legyen xkolyan nemnulla vektor, melynek ak+ 1 : nelemei nullák. Ezzel xTkAxk>0, ami mutatja, hogy ak-adik minormátrix pozitív denit, azaz determinánsa pozitív. Tehát nem nulla.

3. Legyen végül A M-mátrix. Ekkor van olyan g>0vektor, hogy Ag>0. Ismét azt mutatjuk meg, hogy a Gauss-elimináció egy lépése után a mátrix továbbra is M-mátrix marad. Elég ezt belátni az els® transzformációra. Az els® transzformáció után a f®átlón kívüli elemek továbbra sem lehetnek pozitívak. Továbbá A−1g>0 egy pozitív vektor, mellyel L1AA−1g=L1g >0, hiszen L1 nemnegatív mátrix csupa egyessel a f®átlójában.

Vizsgáljuk meg a Gauss-módszer egyes lépéseinek m¶veletszámát! A m¶veletszámok ismerete a kés®bbiekben segít abban, hogy az adott problémát mindig a lehet® leggyorsabban oldjuk meg.

Kezdjük az elimináció m¶veletigényével. Tegyük fel, hogy ak-adik f®elemmel nullázunk. Ekkor ki kell számolnunk az lk+1,k, . . . , ln,k szorzókat (n−k op). A k-adik sor k+ 1 : n+ 1 elemét szoroznunk kell a kiszámított szorzókkal (n−k+ 1op), majd ki kell vonni azt azi-edik sorból (i = k+ 1, . . . , n) (egyenként n−k+ 1 op). Ez összesen2(n−k+ 1)(n−k) op. Ezután a m¶veletszámokat összeadjuk az összes f®elemre. Így az elimináció m¶veletszáma

n−1

X

k=1

(2(n−k+ 1)(n−k) +n−k) =

n−1

X

k=1

2(n−k)2+ 3(n−k)

= 2(n−1)n(2n−1)

6 +3(n−1)n

2 = 4n3+ 3n2−7n

6 =2

3n3+O(n2)op.

Itt felhasználtuk az els® ntermészetes szám összegére és négyzetösszegére vonatkozó összegkép-leteket. A visszahelyettesítés m¶veletigényér®l könnyen láthatóan1 + 3 +· · ·+ 2n−1 =n2op.

A Gauss-módszer teljes m¶veletigénye tehát 2

3n3+O(n2).

Vegyük észre, hogy nagy méret¶ egyenletrendszerek esetén a visszahelyettesítés m¶veletigénye elhanyagolható az elimináció m¶veletigényéhez képest.

Ingamódszer

A gyakorlatban sokszor olyan egyenletrendszereket kell megoldanunk, melyek együtthatómátrixa tridiagonális. Ilyen feladattal találkozunk pl. a spline-interpolációnál ill. a dierenciálegyenletek numerikus megoldása esetén.

Legyen tehát a megoldandó lineáris egyenletrendszer

 alkalmazva látjuk, hogy nem szükséges az eliminációt minden oszlopon teljesen végigfuttatni, hiszen a szubdiagonál alatt csak nulla elemek vannak, hanem elegend® csak a szubdiagonálbeli elemeket lenullázni. (Ezzel várható, hogy az n3 nagyságrend¶ eliminációs m¶veletszám csak n nagyságrend¶ lesz.) Most az elimináció során a f®elemmel leosztjuk a sorát is. Ez ugyan két osztást jelent soronként, de így minden sorban csak két el®re nem ismert elem lesz a három helyett, továbbá a f®átlóban 1-esek fognak állni, így a visszahelyettesítés során nem kell ezekkel az elemekkel osztani. Az els®i−2oszlop eliminációja után az egyenletrendszer az

 alakú lesz, aholαii megfelel® konstansok. Nyilvánvalóan

α2=−c1 b1

, β2= f1 b1

és az elimináció ill. a f®elemmel való osztás miatt αi+1= −ci

aiαi+bi, βi+1= fi−aiβi

aiαi+bi. (3.3.1)

A fenti két képlet segítségével az αi, βi együtthatók meghatározhatók, s®t ha bevezetjük az α1 = β1 = 0 kezdeti értékeket, akkor az is könnyen megjegyezhet®, hogy honnét kell indítani a (3.3.1) rekurziót.

Az elimináció után tehát az

3.4. LU-felbontás 69

egyenletrendszerhez jutunk. A visszahelyettesítésnél innét nyilvánvalóan xn= fn−anβn

anαn+bn

,

majd a többi ismeretlen pedig azxi−1ixii (i=n:−1 : 2) képlettel nyerhet®.

A most tridiagonális mátrixokra ismertetett lineáris egyenletrendszer megoldási módot inga-módszernek vagy Thomas2-algoritmusnak vagy egyszer¶sített Gauss-módszernek nevezzük. Az algoritmus tehát a korábbi jelölésekkel az alábbi módon foglalható össze, melyb®l az is látszik, hogy az algoritmus8n−3 op m¶veletet igényel.

Inga-módszer α1:= 0,β1:= 0 for i:=1:n-1 do

αi+1:=−ci/(aiαi+bi) βi+1:= (fi−aiβi)/(aiαi+bi) end for

yn:= (fn−anβn)/(anαn+bn) for i:=n:-1:2 do

yi−1:=αiyii

end for

Mivel az ingamódszer tulajdonképpen olyan Gauss-módszer, amely kihasználja, hogy a mátrix tridiagonális, így biztosan elakadás nélkül végigfut a 3.3.3. tételben felsorolt mátrixokra. Ezen belül, ha a mátrix szigorúan domináns f®átlójú, akkor mivel ez a tulajdonság az elimináció során is megmarad, igaz lesz, hogy|αi|<1 (i= 2, . . . , n).

3.4. LU-felbontás

Az el®z® fejezetben láttuk, hogy bizonyos feltételek mellett egy A mátrix Gauss-transzformációkkal fels® háromszögmátrix alakra hozható. Ezt a tulajdonságot b®víti ki az alábbi tétel.

3.4.1. tétel. (LU-felbontás)

Tegyük fel, hogy az A ∈ Rn×n mátrixra det(A(1 : k,1 : k)) 6= 0 (k = 1, . . . , n−1), azaz a Gauss-elimináció végrehajtható vele. Ekkor létezik egy olyan L normált (f®átlóban egyesek szerepelnek) alsó (lower) háromszögmátrix és egy U fels® (upper) háromszögmátrix, melyekkel A=LU. Ha egy reguláris mátrixnak létezikLU-felbontása, akkor azLU-felbontása egyértel-m¶.

Bizonyítás. A Gauss-elimináció során a Gauss-transzformációk az A mátrixot fels® három-szögmátrix alakúra hozzák. Legyen ez az U mátrix. Így tehát

Ln−1Ln−2. . .L1A=U.

2Llewellyn Thomas (19031992) angol zikus. A módszert többen is kitalálták a múlt század közepén. Thomas a [36] cikkben említi. Bruce [5] cikke az els®, amelyik széles körhöz eljutó folyóiratban jelenteti meg a módszert.

David Young hívja el®ször Thomas-algoritmusnak. Magyarul szokás ingamódszernek is nevezni a módszert. Az elnevezés a szorzók és az ismeretlenek meghatározási sorrendjére utal.

Mivel(E−lkeTk)−1=E+lkeTk, és lkeTklleTl =0 hal > k, az A mátrix az alábbi alakban írható A=L−11 . . .L−1n−2L−1n−1U=

n−1

Y

k=1

(E+lkeTk)

! U

= E+

n−1

X

k=1

lkeTk

!

| {z }

=:L,alsó normált háromszögmátrix

U=LU.

Az egyértelm¶ség igazolásához tegyük fel, hogy van két különböz® LU-felbontása is az A invertálható mátrixnak: A= ˜LU˜ =LU. Ekkor

−1L= ˜UU−1=E,

mivel normált alsó háromszögmátrixok szorzata normált alsó háromszögmátrix, a fels®ké fels®

háromszögmátrix.

3.4.2. következmény. Ha egy reguláris mátrixnak valamelyik f®minorja nulla, akkor nincs LU-felbontása.

3.4.3. megjegyzés. Az LU-felbontásban tehát U az elimináció során kialakuló fels® háromszög-mátrix, L pedig azlij szorzókból az

L=

1 0 . . . 0 l21 1 . . . 0 l31 l32 . . . 0

...

ln1 ln2 . . . 1

 módon készült mátrix.

Az LU-felbontás alkalmazása

AzLU-felbontást a korábbiak alapján a következ® esetekben érdemes kihasználni.

• Determináns. A mátrix determinánsa megkapható, ha az U mátrix f®átlóbeli elemeit össze-szorozzuk.

• Lineáris egyenletrendszer megoldása. Ha már kiszámoltuk egy mátrix LU-felbontását, akkor L és U tárolható A helyén a számítógép memóriájában, hiszen az L mátrix f®átlójában álló egyeseket nem kell eltárolnunk. Ekkor az Ax=L(Ux) =b egyenletrendszert már két háromszögmátrixú egyenletrendszer megoldásával meg tudjuk oldani. Így a m¶veletszám 2n2 op lesz, ami nagyságrenddel kisebb, mint a Gauss-módszer2n3/3m¶veletigénye. Így tehát, ha több olyan lineáris egyenletrendszert kell megoldanunk, melyek csak a jobb oldali vektorban különböznek, akkor érdemes az els® megoldása után eltárolni az LU-felbontás mátrixait, és a többi egyenletrendszert már a fenti módszerrel megoldani.

• Inverz mátrix. Tipikus példa a fenti esetre az, amikor egy mátrix inverzét kell meghatároz-nunk. Ekkor el®ször meghatározhatjuk az LU-felbontást, ami2n3/3 +O(n2)m¶velet, majd

3.5. F®elemkiválasztás, általános LU-felbontás, Cholesky-felbontás 71

pedig megoldunk n darab lineáris egyenletrendszert, melyek jobb oldalai az egységvekto-rok. Ez további2n3 m¶velet, ami összesen8n3/3 +O(n2)m¶veletet ad. Ha el®re ismert az LU-felbontás, akkor csak 2n2 a m¶veletszám.

Ha nem ismert el®re az LU-felbontás, akkor a fentinél jobb m¶veletszámot érhetünk el, nevezetesen2n2+O(n2)-et, ha a Gauss-elimináció helyett az ún. GaussJordan3-eliminációt alkalmazzuk, ami lineáris egyenetrendszer megoldásakor nem praktikus, de mátrixinverz számítás esetén igen (3.11.7. feladat). Lényege, hogy a f®elemmel nemcsak a f®átló alatt, hanem a f®átló felett is nullázunk. Megjegyezzük még, hogy egy mátrix inverzét, annak nagy m¶veletigénye miatt, a gyakorlatban csak akkor számítjuk ki, ha explicit módon szükségünk van az inverz mátrix egyes elemeire.

3.5. F®elemkiválasztás, általános LU-felbontás, Cholesky-felbontás

3.5.1. F®elemkiválasztás

Eddig a Gauss-módszernél és az LU-felbontásnál feltettük, hogy az eljárás végrehajtható, azaz nem fordul el® olyan eset, hogy a f®elem nulla lenne. Most nézzük meg azt az esetet, amikor ez a feltétel mégsem teljesül. Mit tehetünk ebben az esetben? Ha a k-adik oszlop eliminációjánál tartunk, és aza(k)kk f®elem nulla lenne, akkor a k-adik egyenletet cseréljük ki egy olyan nagyobb sorszámú (k+1, . . . , n) egyenlettel, melyben ak-adik ismeretlenhez tartozó együttható nem nulla.

Az ilyen csere biztosan végrehajtható, mert különben az együtthatómátrixk.oszlopa el®állna az els®k−1 oszlop lineáris kombinációjaként. Ez pedig nem fordulhat el®, mert detA-ról feltettük, hogy nem nulla.

Az egyenletcserének nem csak akkor van jelent®sége, ha különben nem futna végig az eliminá-ciós eljárás. Eddig nem vettük ugyanis gyelembe, hogy a Gauss-módszert általában számítógépek segítségével hajtjuk végre, azaz a számolásnál lebeg®pontos számrendszert használunk. Milyen hatása van vajon ennek a számított megoldásra? Alkalmazva a2.5.2.tétel eredményét a számábrá-zolás hibájáról, az egyenletrendszer együtthatómátrixának egyaij elemére|fl(aij)−aij| ≤u|aij|, ahol u a gépi pontosság. Bevezetve egy A= [aij]∈Rn×n mátrix esetén az |A| ∈Rn×n jelölést az[|aij|]mátrixra, a fentiek szerint a

|fl(A)−A| ≤u|A|

becsléshez jutunk. Az alábbi, az LU-felbontás hibájára vonatkozó tételt bizonyítás nélkül közöljük [18].

3.5.1. tétel. (Golub, van Loan [18], 105. oldal)

Tegyük fel, hogy egy A∈Rn×n mátrix LU-felbontását készítjük el egy olyan számítógépen, amely u gépi pontosságú lebeg®pontos számokat használ. Tegyük fel továbbá, hogy az elimi-náció során mely alatt egyik f®elem sem lett nulla az L ésˆ U mátrixokhoz jutottunk,ˆ melyekkel LˆUˆ −A=δA. Ekkor érvényes a következ® becslés:

|δA| ≤3(n−1)u(|A|+|Lˆ| · |Uˆ|) +O(u2).

A fenti becslésben szerepel az |Lˆ| mátrix, így az egyik célunk az lehet, hogy az elimináció során ennek elemei a lehet® legkisebbek legyenek. Arról, hogy ennek elérése soránU elemei semˆ

3Wilhelm Jordan (18421899) német geodéta. Nem tévesztend® össze (kiejtésben sem) a francia Camille Jor-dannal, akinek nevéhez pl. a Jordan-mérték elnevezés f¶z®dik.

válnak túl naggyá, kés®bb lesz szó. MivelL elemeit úgy kapjuk, hogy a f®elemmel osztjuk le azˆ egyes oszlopok f®átló alatti elemeit, így ezek az elemek 1-nél nem nagyobb abszolútérték¶ek, ha f®elemnek az A(k)(k+ 1 :n, k)vektor legnagyobb abszolútérték¶ elemét választjuk.

Annak érdekében tehát, hogy minél pontosabb megoldást kapjunk, a sorcserét akkor is érde-mes végrehajtani, ha a f®elemek nem nullák. Azt az eljárást, amikor ak-adik lépésben a f®elemet az A(k)(k+ 1 :n, k)oszlop legnagyobb abszolútérték¶ elemének választjuk, majd ezen elem sorát felcseréljük a k. sorral, részleges f®elemkiválasztásnak hívjuk. A részleges f®elemkiválasztáshoz összesen(n2−n)/2 összehasonlítás szükséges.

Még jobban csökkenthet® azL mátrix elemeinek abszolútértéke, ha a legnagyobb abszolútér-ˆ ték¶ elemet ak-adik lépésben nem csak az oszlopban, hanem a teljes A(k)(k:n, k:n)blokkban keressük. Ezután az így megtalált új f®elem sorát és oszlopát cseréljük ak-adik sorral és oszloppal.

Ezt az eljárást teljes f®elemkiválasztásnak nevezzük. Ezn(n+ 1)(2n+ 1)/6−1 =n3/3 +O(n2) összehasonlítással jár, ami ha elfogadjuk, hogy egy összehasonlítás kb. ugyanannyi ideig tart, mint egy lebeg®pontos m¶velet már a Gauss-módszer nagyságrendjébe esik. Emiatt a gyakorlat-ban általágyakorlat-ban a részleges f®elemkiválasztást alkalmazzák, a teljes f®elemkiválasztást csak akkor érdemes használni, ha nagy pontosságú megoldásra van szükségünk.

3.5.2. példa. Tekintsük az alábbi feladatot, ahol tegyük fel, hogy a megoldás során mindig 4 számjegyre kerekítünk.

0.003x1+ 59.14x2 = 59.17 5.291x1−6.13x2 = 46.78

A pontos megoldás x1 = 10.00, x2 = 1.000. F®elemkiválasztás nélkül a megoldás x1 = −10, x2 = 1.001 (a kiegyszer¶södés miatt hamis eredményt kapunk), részleges f®-elemkiválasztással a pontos eredményt kapjuk.

3.5.2. Általános LU-felbontás

Az LU-felbontás csak olyan A∈Rn×nmátrixokra végezhet® el, melyeknek minden1,2, . . . , n−1 -ed rend¶ bal fels® sarokdeterminánsa különbözik nullától. Az alábbi tétel azt mutatja, hogy minden A mátrix sorai átrendezhet®k úgy, hogy az így keletkez® mátrixnak legyen már LU-felbontása.

3.5.3. tétel. (LU-felbontás általános mátrixra)

Legyen A∈Rn×n egy tetsz®leges mátrix. Ekkor létezik egy olyan L alsó normált háromszög-mátrix, melynek elemei egynél nem nagyobb abszolút érték¶ek, egy U fels® háromszögháromszög-mátrix, és egy P permutációs mátrix, melyekkel PA=LU.

Bizonyítás. Hajtsuk végre az alábbi eljárást az A mátrixszal. Az eljárás minden mátrixszal végrehajtható.

• Legyen A(1)=A, ésk= 1.

• Ha A(k)(k : n, k) = 0, akkor legyen Pk = Lk =E, különben válasszuk ki a vektor nem nulla elemei közül a legnagyobb abszolútérték¶t (legyen eza(k)sk), és deniáljuk a

Pk= [e1, . . . ,ek−1,es,ek+1, . . . ,es−1,ek,es+1, . . . ,en]T

permutációs mátrixot, valamint legyen Lk a PkA(k) mátrix k-adik oszlopához tartozó Gauss-transzformációs mátrix.

3.5. F®elemkiválasztás, általános LU-felbontás, Cholesky-felbontás 73

• Legyen A(k+1)=LkPkA(k).

• Ezután legyen k=k+ 1, és járjunk el hasonlóan, mígk=nnem lesz.

Végrehajtva az el®z® lépéseket, el®áll egy

U=Ln−1Pn−1. . .L1P1A

fels® háromszögmátrix. Mivel P2i = E (hiszen Pi az i-edik sort cseréli egy nagyobb sorszámú sorral, így ha kétszer alkalmazzuk, akkor az egységmátrixot (identitást) nyerjük), ezért

n−1n−2. . .L¯1Pn−1Pn−2. . .P1A=U, aholL¯n−1=Ln−1 és

k =Pn−1Pn−2. . .Pk+1LkPk+1. . .Pn−2Pn−1.

Mivel Lk =E−lkeTk, és Pk a k-adik sort vagy oszlopot cseréli egy nagyobb sorszámúra, ezért L¯k=E− Pn−1Pn−2. . .Pk+1lk

| {z }

=:l?klk(k+ 1 :n)elemeinek cseréivel

eTkPk+1. . .Pn−2Pn−1

| {z }

eTk

.

Az L¯k mátrixok E−l?keTk alakúak, így inverzei L¯−1 = E+l?keTk alakban írhatók, melyek szorzata normált alsó háromszögmátrix lesz. Legyen

L= ¯L−11 . . .L¯−1n−1.

A részleges f®elemkiválasztásból következik, hogy L-nek nincs 1-nél nagyobb abszolútérték¶ eleme (emiattkLk∞ ≤n). Továbbá legyen

P=Pn−1. . .P1,

ami nyilván egy permutációs mátrix. Ezekkel a jelölésekkel tehát PA=LU.

Ezt akartuk bizonyítani.

3.5.4. tétel. (Golub, Van Loan [18], 115. oldal)

Legyen adott egy A∈Rn×n mátrix. Tegyük fel, hogy a lebeg®pontos számokkal való részle-ges f®elemkiválasztásos Gauss-eliminációs eljárás során a P,ˆ L ésˆ U mátrixokhoz jutottunk,ˆ melyekkel PˆTLˆUˆ −A=δA. Ekkor érvényes a

|δA| ≤3(n−1)u(|A|+|PˆT| · |Lˆ| · |Uˆ|) +O(u2) becslés. Tehát

kδAk≤3(n−1)u(kAk+nkUˆk) +O(u2).

Vegyük észre, hogy a fenti képletben szerepel az U mátrix maximumnormája. Vizsgáljuk meg, hogy ha részleges f®elemkiválasztást csinálunk annak érdekében, hogy L elemei egynél kisebb ab-szolútérték¶ek legyenek, akkor vajon nem növekszik-e meg ezzel párhuzamosankUk. Vezessük be a

ρ= max

i,j,k

|ˆa(k)ij | kAk

ún. növekedési faktort, ami azt méri, hogy az elimináció során az eliminált A mátrix egyes lépésekbeli elemei mennyire n®hetnek megkAk-hoz képest. A növekedési faktorral a következ®

becslést kapjuk

kδAk≤3(n−1)u(kAk+n2ρkAk) +O(u2)≤6n3ρkAku+O(u2).

A gyakorlatban a növekedési faktor általában 10-nél nem szokott nagyobb lenni, így ez egy

A gyakorlatban a növekedési faktor általában 10-nél nem szokott nagyobb lenni, így ez egy

In document Numerikus módszerek (Pldal 67-80)