DRN: Soustavy linárních rovnic numericky, norma Algoritmus (GEM: Gaussova eliminace s částečným pivotováním pro převod rozšířené regulární matice na horní trojúhelníkový tvar). Zadána matice C = (c i,j ) n,m i,j=1 reálných čísel, kde m n. 0. Nastavíme k = 1. 1. Jestliže c i,k = 0 pro všechna i = k,..., n, pak čtvercová submatice (c i,j ) n,n i,j=1 není regulární. Algoritmus selhal a končí. V opačném případě provedeme pivotování : Mezi řádky i = k až n vybereme takový řádek k, který má největší hodnotu c i,k. Jestliže je k k, zaměníme řádky k a k. (Nové) číslo c k,k se nazývá pivot. Pokračujeme krokem 2. 2. Pro i = k + 1,..., n provedeme následující: Pokud c i,k 0, určíme l i,k = c i,k c k,k, nastavíme c i,k = 0 a pro j > k počítáme c i,j = c i,j l i,k c k,j. Jestliže k < n, zvýšíme k o jedničku a jdeme zpět na krok 1. Jinak algoritmus skončil. Výstup: matice (c i,j ) n,m i,j=1. Poznámka: Výstup má tvar c 1,1 c 1,2 c 1,n 1 c 1,n c 1,m 0 c 2,2 c 2,n 1 c 2,n c 2,m...... 0 0 c n 1,n 1 c n 1,n c n 1,m 0 0 0 c n,n c n,m 1
Výpočetní náročnost GEM při redukci matice n (n + c) je rovna 2 3 n3 + cn 2 + O(n 2 ) + c O(n). Algoritmus (GJM: Gaussova-Jordanova eliminace pro převod rozšířené regulární matice na skoro diagonální). Zadána matice C = (c i,j ) n,m i,j=1 reálných čísel, kde m n. 0. Nastavíme k = 1. 1. Jestliže c i,k = 0 pro všechna i = k,..., n, pak čtvercová submatice (c i,j ) n,n i,j=1 není regulární. Algoritmus selhal a končí. V opačném případě provedeme pivotování : Mezi řádky i = k až n vybereme takový řádek k, který má největší možnou hodnotu c i,k. Jestliže je k k, zaměníme řádky k a k. (Nové) číslo c k,k se nazývá pivot. Pokračujeme krokem 2. 2. Pro j > k počítáme c k,j = c k,j c k,k. Nastavíme c k,k = 1. Pro všechna i k taková, že c i,k 0, pro j > k počítáme c i,j = c i,j c i,k c k,j, pak nastavíme c i,k = 0. Jestliže k < n, zvýšíme k o jedničku a jdeme zpět na krok 1. Jinak algoritmus skončil. Výstup: matice (c i,j ) n,m i,j=1. Poznámka: Výstup má tvar 1 0 0 0 c 1,n+1 c 1,m 0 1 0 0 c 2,n+1 c 2,m....... 0 0 1 0 c n 1,n+1 c n 1,m 0 0 0 1 c n,n+1 c n,m Výpočetní náročnost GJM při redukci matice n (n + c) je rovna n 3 + 2cn 2 + O(n 2 ) + c O(n). 2
Algoritmus (zpětný chod pro řešení soustav s horní trojúhelníkovou maticí). Zadána soustava U x = d, kde U je regulární horní trojúhelníková matice n n. 1. Pro k od n krokem 1 po 1 vypočítáme x k = 1 ( d k u k,i x i ). u k,k i>k Soustavu A x = b, jejíž regulární matice A je horní (resp. dolní) trojúhelníková, lze řešit zpětným (resp. dopředným) dosazením s výpočetní náročností n 2. 3
Uvažujme n n matici A reálných čísel. Řekneme, že n n matice L, U, P jsou jejím LUP rozkladem (LUP factorization), jestliže P je permutační matice, U je horní trojúhelníková matice, L je dolní trojúhelníková matice s jedničkami na diagonále a P A = LU. Jestliže GEM bez pivotování aplikovaná na A vede na trojúhelníkovou matici U, pak A = LU, kde matice L má prvky l i,k z GEM. Pro každou čtvercovou matici existuje LUP rozklad. Algoritmus (řešení soustavy rovnic LUP rozkladem). Zadána soustava A x = b, kde A je regulární (čtvercová) matice. 1. Najdeme LUP rozklad LU = P A. 2. Dopředným chodem najdeme d z rovnice Ld = P b. 3. Zpětným chodem vyřešíme rovnici U x = d. 4
Tradiční normy na IR n : x = n x k 2 (Euklidovská norma), k=1 x = max x k (maximová norma), k=1,...,n n x 1 = x k (součtová norma). k=1 Nechť V je vektorový prostor. Zobrazení : V IR se nazývá norma, jestliže splňuje tyto vlastnosti: x 0 pro všechna x IR n ; x = 0 právě tehdy, když x = 0; c x = c x pro všechna x IR n a c IR; x + y x + y pro všechna x, y IR n (trojúhelníková nerovnost). Nechť V je vektorový prostor matic. Zobrazení : V IR se nazývá maticová norma, jestliže je to norma a navíc splňuje AB A B pro všechny A, B M n n. Uvažujme normu x pro vektory z IR n a normu A M pro matice z M n n. Řekneme, že tyto normy jsou souhlasné, jestliže A x A M x pro všechny A M n n a x IR n. Indukované maticové normy: x = A = A R = max i=1,...,n j=1 x 1 = A 1 = A C = max j=1,...,n n a i,j (řádková norma), n a i,j (sloupcová norma), i=1 5
Předpokládejme, že matice A a vektory x 0, x a b 0, b jsou svázány vztahem A x 0 = b 0 a A x = b. Označme E x = x 0 x a E b = b 0 b. Uvažujme vektorovou normu, označme ε x = E x x, obdobně ε b. Pak platí ε x A M A 1 M ε b. Pro n n matici A zavádíme její číslo podmíněnosti (condition number) jako cond(a) = A A 1. Věta. Předpokládejme, že matice A 0, A a vektory x 0, x a b 0, b jsou svázány vztahem A 0 x 0 = b 0 a A x = b. Označme E A = A 0 A, E x = x 0 x a E b = b 0 b. Pak platí ( ε x cond(a) ε b + ε A x ). x 0 6
Věta. Jestliže matice B splňuje B M < 1 pro některou souhlasnou maticovou formu, pak příslušná iterační metoda x k+1 = B x k + c konverguje k x f pro libovolnou volbu x 0. Algoritmus (JIM: Jacobiho iterace). Zadána soustava A x = b lineárních rovnic, tolerance ε, libovolný iniciační vektor x 0. 0. Nastavíme k = 0. 1. Vypočteme ( x k+1 ) i = 1 (i 1 n ) a i,j ( x k ) j + a i,j ( x k ) j + b i. a i,i a i,i j=1 j=i+1 Pokud x k+1 x k ε, zvýšíme k o jedničku a jdeme zpět na krok 1. 7
Algoritmus (GSM: Gauss-Seidelova iterace). Zadána soustava A x = b lineárních rovnic, tolerance ε, libovolný iniciační vektor x 0. 0. Nastavíme k = 0. 1. Vypočteme ( x k+1 ) i = 1 (i 1 n ) a i,j ( x k+1 ) j + a i,j ( x k ) j + b i. a i,i a i,i j=1 j=j+1 Pokud x k+1 x k ε, zvýšíme k o jedničku a jdeme zpět na krok 1. Uvažujeme n n matici A. Řekneme, že A je ostře diagonálně dominantní, jestliže pro všechna i = 1,..., n platí a i,i > j i a i,j. Věta. Jestliže je A ostře diagonálně dominantní, pak JIM i GSM konvergují pro libovolnou počáteční volbu vektoru. 8
Algoritmus (SOR: superrelaxační metoda (Successive OverRelaxation Method)). Zadána soustava A x = b lineárních rovnic, tolerance ε, relaxační parametr λ IR, libovolný iniciační vektor x 0. 0. Nastavíme k = 0. 1. Vypočteme ( x k+1 ) i = (1 λ)( x k ) i λ (i 1 a i,j ( x k+1 ) j + a i,i j=1 n j=j+1 Pokud x k+1 x k ε, zvýšíme k o jedničku a jdeme zpět na krok 1. a i,j ( x k ) j ) + λb i a i,i. 9