NUMERIKUS MÓDSZEREK I. TÉTELEK Szerkesztette: Balogh Tamás 014. január 19. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add el! - Így add tovább! 3.0 Unported Licenc feltételeinek megfelelően szabadon felhasználható. 1
1. A lebegőpontos számábrázolás egy modellje. A normalizált lebegőpontos szám fogalma, a legnagyobb, legkisebb pozitív szám, a relatív pontosság az M(t, k, k + ) gépi számhalmazban. Az input függvény (fl) fogalma, tétel az ábrázolt szám hibájáról. Példák a véges számábrázolás miatt előforduló furcsaságokra. Az a = ±m k, (m = t i=1 m i i, m i {0, 1}, m 1 = 1, t N, k Z) számot normalizált lebegőpontos számnak nevezzük, ahol m i a mantissza, t a mantissza hossza, k karakterisztika. Jelölése: a = ±[m 1... m t k]. Gépi számok halmaza: { M = M(t, k, k + ) := a = ±m k m = ahol 1 m 1, és M a 0-ra szimmetrikus. t m i i, m i {0, 1}, m 1 = 1, t N, k k k } {0}, + i=1 Nevezetes gépi számok: A legnagyobb ábrázolható pozitív szám: M = +[11... 1 k + ] = (1 1 ) k+ t A legkisebb ábrázolható pozitív szám: A relatív korlát/pontosság: ε 0 = +[10... 0 k ] = 1 k ε 1 = [10... 01 1] [10... 00 1] = 1 t 1 = 1 t 1 rákövetkezője 1 Input függvény: A valós számok gépi számokkal való megfeleltetése. fl: R x M, ahol M, (x > M ) M, (x < M ) fl(x) = 0, (0 x < ε 0 ) az x-hez legközelebbi gépi szám, (ε x M ) Az ábrázolt szám abszolút hibakorlátja: Tétel: ε 0, (0 x < ε 0 ) x fl(x) 1 x ε 1, (ε 0 x M )
Bizonyítás: (1) 0 x < ε 0 triviális () ε 0 x M : a, x M : triviális: x fl(x) = 0 b, x / M : Ekkor tegyük fel, hogy x x x (x, x M szomszédjai) x = [m 1... m t k], az itervallum hossza 1 t k (ezzel bevezethető a hiba. Így x fl(x) 1 1 t k = x 1 t 1 x ε 1. Az ábrázolt szám relatív hibakorlátja: Következmény: x fl(x) 1 x ε 1 = t (ε 0 x M ). A gépi ábrázolás miatt előforduló furcsaságok: (1) a b = a, ahol b 0. Például: [1100 1] [1000 3] [0000 1] [1100 1] () (a b) c a (b c): asszociativitás nem mindig teljesül. Például: } a = [1100 1] : [1100 1] c = [1100 1] b = [1000 3] } b = [1000 3] : [1000 ] a = [1101 1] c = [1000 3] (3) Kivonási jegyveszteség (relatív pontosság romlása). Például: [11011 ] [11000 ] [00011 ]= [11000 1] (4) A részeredmény nem ábrázolható, de az eredmény igen. Például: a + b, ahol S = max{ a, b } nagy. Ekkor S ( a s ) + ( b s ) alakban számolunk.. A hibaszámítás elemei. Az abszolút és relatív hiba, hibakorlát fogalma. Tétel az alapműveletek abszolút és relatív hibájáról. A függvényérték abszolút és relatív hibája. Függvény egy adott pontbeli kondíciószámának felírása. Jelölés: A: a pontos érték, a: a közelítő érték. (Hibája csak a közelítő értéknek van.) A közelítő érték pontos hibája: a = A a = aδa A közelítő érték abszolút hibája: a = A a A közelítő érték egy abszolút hibakorlátja: a a, a = a δ a A közelítő érték relatív hibája: δa = a A a A közelítő érték egy relatív hibakolátja: δ a δa 3
Az alapműveletek abszolút és relatív hibakorlátjai tétel: a±b = a + b δ a±b = a a±b a + a b = b a + a b δ a b =δ a + δ b a b = b a+ a b b δ a a + δ b b b a±b δ b bizonyítás: Tegyük fel, hogy A és B azonos nagyságrendű. Ekkor (a b) = AB ab = AB ab + ab ab = B(A a) + a(b b) = B a + a b = mert a b elhanyagolható. Ekkor (b + b) a + b a b a + a b, (a b) b a + a b b a + a b = a b, (a b) b a + a b δ(a b) = = = a ab ab a + b b = δ a + δ b, δ(a b) δa + δb δ a + δ b = δ a b. Az összevonás, kivonás és osztás bizonyítása analóg módon. Kivonás és összeadás esetén feltesszük még, hogy A és B azonos előjelű. A függvényérték abszolút hibakorlátja tétel: Ha f C 1 (k(a)) (k(a) = [a a, a + a ]), akkor f(a) = M 1 a, ahol M 1 = max{ f (ξ) : ξ k(a)}. bizonyítás: Lagrange-féle középérték-tételt alkalmazva: ξ k(a) : f(a) = f(a) f(a) = f (ξ) (A a) = f (ξ) a, így f(a) = f (ξ) a M 1 a = f(a). tétel: Ha f C (k(a)) (k(a) = [a a, a + a ]), akkor f(a) = f (a) a + M a, ahol M = max{ f (ξ) : ξ k(a)}. bizonyítás: A Taylor-formula segítségével: ξ k(a) : f(a) = f(a) + f (a)(a a) + f (ξ) (A a) f(a) = f(a) f(a) = f (a) a + f (ξ) (A a) f(a) f (a) a + M a f (a) a + M a. következmény: A függvényérték relatív hibakorlátja: δf(a) f (a) f(a) a, Az f függvény a-beli kondíciószáma: δf(a) a f (a) f(a) δ a = δ f(a) cond(f, a) = a f (a), így δ f(a) = cond(f, a) δ a. f(a) 4
3. Lineáris egyenletrendszerek (LER) megoldása Gauss-eliminációval. Az elimináció és a visszahelyettesítés műveletigénye. A sor-, illetve oszlopcsere szükségessége. A részleges és teljes főelemkiválasztás. Feladat: Ax = b x =?, ahol A R n n, x, b R n. Az egyenletrendszer megoldható, ha - b kifejezhető A oszlopvektorainak lineáris kombinációjaként, - A oszlopvektorai lineárisan függetlenek. Cél: Felsőháromszög alakra hozni az egyenletrendszert. Gauss elimináció (az egyik háromszög alakra hozó módszer): 0. lépés: Legyen a n+1 := b és a (0) ij := a ij. 1. lépés: 1. egyenlet változatlan, következőekből elimináljuk x 1 -t: új i. egyenlet := i. egyenlet a i1 a 11 1. egyenlet, ahol a 11 0, i =,..., n. Így a (1) ij := a (0) ij a(0) i1 a (0) 11 a (0) 1j (i =,..., n, j =,..., n + 1) k. lépés: k. egyenlet változatlan, következőekből elimináljuk x k -t: új i. egyenlet := i. egyenlet a(k 1) ik a (k) ij := a (k 1) ij a(k 1) ik a (k 1) kk a (k 1) kj a (k 1) kk k. egyenlet, azaz (n-1). lépés után felsőháromszög-mátrixot kapunk: (k = 1,..., n 1, i = k +1,..., n, j = k +1,..., n+1). a (0) 1,1 x 1 + + + a (0) 1,n x n = a (0) 1,n+1 a (i 1) i,i.. x i + + a (i 1) i,n. a (n 1) n,n. x n = a (i 1) i,n+1. x n = a (n 1) n,n+1 Visszahelyettesítés a felsőháromszüg-mátrixú egyenletrendszerbe: x i = 1 a (i 1) i,i x i együtthatója a (i 1) i,n+1 ami b i helyén keletkezik n (a (i 1) i,j x j ) j=i+1 x i utáni x-ek együtthatójukkal (i = n 1,..., 1) 5
Gauss-elimináció műveletigénye: Eliminációs fázis (felsőháromszög-alak kialakítása): a k. lépésben: (n k) db szorzás, (n k) (n k + 1) db osztás, (n k) (n k + 1) db összeadás. (n k) ( (n k) + 3 ) db művelet n 1 Visszahelyettesítési fázis: x i kifejezésénél: ( ) n 1 n 1 (n k) n(n k) + 3 = (n k) + 3 (n k) = (n 1)n(n + 1) (n 1)n = + 3 6 = 3 n3 + O(n ). 1 db osztás, (n i) (n k + 1) db szorzás, (n i) (n k + 1) db összeadás. +x n esetén 1 db osztás (n i) + 1 db művelet ( n 1 i=1 1 + (n i s ) ) n 1 + 1 = (s + 1) + 1 = s=1 n 1 s=1 (n 1)n = + n = n + O(n). s + (n 1) + 1 = A Gauss-elimináció elvégezhető sor- és oszlopcsere nélkül a (k 1) kk 0 (k = 1... n 1). Ha a k. lépésben mégis a (k 1) k,k = 0: lehetséges a sorcsere (egyenlet), a megoldás nem változik, oszlopcsere (a megoldásvektor komponensei cserélődnek). Kézi számításnál csak akkor cserélünk, ha muszáj. Gépi számolás esetén főelemkiválasztást alkalmazunk. Részleges főelemkiválasztás: A k. lépésnél: {a (k 1) k,k,..., a (k 1 n,k } közül a maximális abszolútértékű elem sorát cseréljük a k. sorral, a megoldás nem változik. Teljes főelemkiválasztás: A k. lépésnél a [k.-n.] sorok és oszlopok által meghatározott részmátrixban keressük a legnagyobb abszolútértékű elemet, ennek a sorát a k. sorral, illetve oszlopát a k. oszloppal cseréljük. A megoldás változik az oszlopcsere miatt, ezt nyomon kell követni. Mindkét főelemkiválasztós eljárásban a sor és oszlopcserét nem végezzük el, helyette az induláskor felvett sor és oszlopindexelő vektorban cserélünk. Nem kell az elimináció előtt ellenőrizni, hogy megoldható-e az egyenletrendszer, mert az algoritmus közben eldől a megoldhatóság. = 0 elemet cserélni, mert mindenhol (k n 1) 0 maradt, és az utolsó oszlopban is csak 0 marad, akkor végtelen sok megoldás van, egyébként, ha az utolsó oszlopban maradnak nemnulla elemek, akkor nincs megoldás. Ha nem tudjuk az a (k 1) k,k 6
4. A GE alkalmazásai: determináns számítása, azonos mátrixú lineáris egyenletrendszerek megoldása, mátrix inverz számítás. A GE felírása speciális mátrix szorzásokkal. Kapcsolata az LU felbontással. Determináns számítása: A Gauss-elimináció után a determináns a főátlóbeli elemek szorzatával számítható, mivel a Gauss-elminiáció átalakításai determinánstartóak. det(a) = a (0) 11 a (1)... a (n 1) nn ( 1) t, ahol a t a sor- és oszlopindexek összes inverziószáma. Azonos mátrixú lineáris egyenletrendszerek megoldása: Ax 1 = b 1, Ax = b, Ax 3 = b 3 Gauss-elimináció A b 1 b b 3 I x 1 x x 3. visszahelyettesítés Inverz számítása: Ax = I (x = A 1 egyenletből). A(x 1, x,..., x n ) = (e 1, e,..., e n ), így Ax i = e i. Gauss-elimináció A e 1 e... e n I x 1 x... x n. visszahelyettesítés I x=a 1 (a bol oldai oszlopcsere az eredményben sorcserét jelent!) A Gauss-elimináció felírása mátrix szorzásokkal: 1 0... 0. L k = 0 0... 0 0 l k+1,k. = I l k e k, ahol l k =. 0 0. 0... 0 0 l n,k 0 0 1 L k A (k 1) = A (k) a Gauss-elimináció egy lépése, ha az első k db sor nem változik, i. sor = i. sor - l ik k. sor. L n 1 L n L L 1 A =: U felsőháromszög-mátrix. Bizonyítás: A (k) első k darab sora nem változik i > k-ra: A (k 1) i. sora l ik A (k 1) k. sora. Kapcsolata az LU-felbontással: 0. 0 l k+1,k. l n,k, és l ik = a(k 1) ik a (k 1) kk. Az LU-felbontás: A = L 1 1 L 1... L 1 n 1 U = LU Tétel: L 1 k = I + l k e k. 7
Bizonyítás: L k L 1 k = (I l k e k )(I + l k e k ) = I l k (e k l k )e k = I 0 Tétel : L 1 1 L 1... L 1 n 1 = I + l 1 e 1 + l e + + l n 1 e n 1. Bizonyítás: Teljes indukcióval. k = 1 : (előző tétel) Tegyük fel, hogy k < n 1-re igaz. ekkor (k + 1)-re: 1... L 1 k ) L 1 k+1 = (I + l 1e 1 + + l k e k ) (I + l k+1 e k+1) = (L 1 = I + l 1 e 1 + + l k e k + l k+1 e k+1 + l 1 e 1 l k+1 e k+1 + + l k e k l k+1 e k+1 = 0 0 = I + l 1 e 1 + + l k+1 e k+1. Következmény: Ha a Gauss-elimináció elvégezhető sor és oszlopcsere nélkül, akkor A = LU alakú felbontás, ahol L L (1), U U. Igaz a megfordítás is. 5. Az LU felbontás, tétel a!-ről. A főminorok és az LU felbontás kapcsolata. L és U elemeinek meghatározásának menete, sorrendek az elemek kifejezésére. Műveletigénye. A = LU, ahol 1 0 L = 1, U = 1 0 Vagyis L alsóháromszög mátrix, diagonálisában 1-esek, U pedig felsőháromszög mátrix. Ax = b L(Ux ) = b y (1) Ly = b y, () Ux = y x. Tétel: Ha a Gauss-elimináció elvégezhető sor és oszlopcsere nélkül, akkor LU = A. Tétel: Ha det(a) 0! LU = A. Bizonyítás: Indirekt tegyük fel hogy olyan különböző L 1 U 1 és L U, hogy A = L 1 U 1 = L U. Mind a 4 mátrix intvertálható, hiszen det(l 1 ) = det(l ) = 1 8
és a det szorzástétel miatt így det(u 1 ) 0, det(u ) 0, L 1 L 1 = U U 1 1. Tudjuk, hogy két alsó háromszögmátrixot megszorozva alsó háromszögmátrixot és két felső háromszögmátrixot megszorozva felső háromszögmátrixot kapunk, és invertálható háromszög mátrix szorzata is ugyan olyan háromszög lesz. Tehát L 1 L 1 alsó háromszögmátrixot ad, és U U 1 1 felső háromszögmátrixot ad. Így egyenlőség csak akkor áll fent, ha mindkét oldalon diagonális mátrix áll, de akkor a bal mátrix I, így akkor a jobb is I. Tehát L 1 L 1 = I L = L 1, U U 1 1 = I U 1 = U. Tétel: Ha az A mátrix főminoraira: D k 0 előállítható. (k = 1,..., n 1), akkor az LU = A felbontás Bizonyítás: Ha D k : det(d k ) 0 (ugyanis D k = a (0) 11... a (k 1) kk ), úgy a GE elvégezhető, tehát LU felbontás. (k = 1,..., n), akkor az LU felbontás egyér- Tétel: Ha az A mátrix főminoraira D k 0 telmű. Bizonyítás: Ha det(a) 0 előző tétel! LU = A. L és U elemeinek meghatározása mátrixszorzással: Általános képlet: a ij = min(i,j) l ik u kj. Az a ij elem (i, j) poziciója határozza meg, hogy l ij vagy u ij elemet számol. Felsőháromszög mátrix elemei: i j a ij = l ii u ij + u ij = a ij Alsó háromszög mátrix elemei: i > j Sorrendek az elemek kifejezésére: i 1 i 1 l ik u kj a ij = l ij u jj + j 1 l ik u kj (l ii = 1 miatt). l ik u kj l ij = 1 j 1 (a ij l ik u kj ). u jj 9
sorfolytonosan (i, j) szerint, oszlopfolytonosan (i, j) szerint, parkettás módszer - sor/oszlop felváltva. U első sora = A első sora, L első oszlopa = A első oszlopa/a 11. Az LU-felbontás műveletigénye: u ij : rögzített i-re (i 1) szorzás, (i 1) összeadás = (i 1), l ij : rögzített j-re (j 1) szorzás, (j 1) öszeadás, 1 osztás = j 1, n n n 1 n 1 (i 1) + (j + 1) = i= j=1 j=1 i=j+1 3 n3 + O(n ). 6. Fogalmak: A szimmetrikus, pozitív definit, szigoróan diagonálisan domináns a sorokra illetve oszlopokra, fél sávszélesség, profil, Schur-komplementer. A GE (LU felbontás) megmaradási tételei. A szimmetrikus, ha A = A. A pozitív definit, ha λ i > 0 (i = 1... n) 10