Wstęp do metod numerycznych Faktoryzacja macierzy. P. F. Góra

Podobne dokumenty
Wstęp do metod numerycznych Równania macierzowe Faktoryzacja LU i Cholesky ego. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa Faktoryzacja LU. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa i faktoryzacja LU. P. F. Góra

Wstęp do metod numerycznych Faktoryzacja Cholesky ego i QR. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Zaawansowane metody numeryczne

5. Rozwiązywanie układów równań liniowych

Wstęp do metod numerycznych Inne rodzaje faktoryzacji. P. F. Góra

Metody numeryczne Wykład 4

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Rozwiązywanie układów równań liniowych

Zaawansowane metody numeryczne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Obliczenia naukowe Wykład nr 8

3. Macierze i Układy Równań Liniowych

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Układy równań liniowych. Krzysztof Patan

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

1 Układy równań liniowych

Metody dekompozycji macierzy stosowane w automatyce

, A T = A + B = [a ij + b ij ].

III TUTORIAL Z METOD OBLICZENIOWYCH

Wykład 5. Metoda eliminacji Gaussa

Macierze. Rozdział Działania na macierzach

A A A A A A A A A n n

10. Metody obliczeniowe najmniejszych kwadratów

Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Wartości i wektory własne

2. Układy równań liniowych

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Układy równań liniowych i metody ich rozwiązywania

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

3. Wykład Układy równań liniowych.

Wykład 14. Elementy algebry macierzy

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

O MACIERZACH I UKŁADACH RÓWNAŃ

1 Macierz odwrotna metoda operacji elementarnych

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Układy równań liniowych

NUMERYCZNE METODY ROZWIĄZYWANIA ROWNAŃ LINIOWYCH. PRZYGOTOWAŁA: ANNA BANAŚ KoMBo, WILiŚ

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

det[a 1,..., A i,..., A j,..., A n ] + det[a 1,..., ka j,..., A j,..., A n ] Dowód Udowodniliśmy, że: det[a 1,..., A i + ka j,..., A j,...

Wstęp do metod numerycznych Metody iteracyjne Algebraiczna metoda gradientów sprzężonych. P. F. Góra

Wstęp do metod numerycznych 5. Numeryczne zagadnienie własne. P. F. Góra

Układy równań i nierówności liniowych

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Wykład III Układy równań liniowych i dekompozycje macierzy

Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów. P. F. Góra

13 Układy równań liniowych

"Bieda przeczy matematyce; gdy się ją podzieli na więcej ludzi, nie staje się mniejsza." Gabriel Laub

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

Metody numeryczne II. Układy równań liniowych

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str

Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów. P. F. Góra

Własności wyznacznika

Wstęp do metod numerycznych 9a. Układy równań algebraicznych. P. F. Góra

Algebra liniowa z geometrią

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

D1. Algebra macierzy. D1.1. Definicje

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Metody numeryczne w przykładach

Wykład 4. Informatyka Stosowana. Magdalena Alama-Bućko. 25 marca Magdalena Alama-Bućko Wykład 4 25 marca / 25

DB Algebra liniowa semestr zimowy 2018

Analiza matematyczna i algebra liniowa Macierze

1 Macierze i wyznaczniki

Metody numeryczne. Janusz Szwabiński. nm_slides-7.tex Metody numeryczne Janusz Szwabiński 11/11/ :45 p.

Wektory i wartości własne

UKŁADY RÓWNAŃ LINIOWYCH

Programowanie liniowe metoda sympleks

Układy równań liniowych

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Metoda eliminacji Gaussa

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Programowanie liniowe metoda sympleks

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6 p. Rozwiazywanie układów równań. metody bezpośrednie,

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

Układy równań liniowych. Ax = b (1)

FUNKCJA LINIOWA - WYKRES

SZYBKI ALGORYTM Z MACIERZĄ SHURA DLA MACIERZY TRÓJDIAGONALNYCH

Wyznaczniki. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 6. Wykład z algebry liniowej Warszawa, listopad 2013

Wektory i wartości własne

Wstęp do metod numerycznych 6. Numeryczne zagadnienie własne. P. F. Góra

ALGEBRA Z GEOMETRIĄ MACIERZE ODWZOROWAŃ LINIOWYCH

Transkrypt:

Wstęp do metod numerycznych Faktoryzacja macierzy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2011

Uwagi o eliminacji Gaussa Przypuśćmy, że mamy rozwiazać kilka układów równań z ta sama lewa strona, a różnymi wyrazami wolnymi: Ax (i) = b (i), i = 1, 2,..., M (1) gdzie A R N N, x (i), b (i) R N. Eliminacja Gaussa (z wyborem elementu podstawowego!) jest efektywna, jeżeli z góry znamy wszystkie prawe strony b (1), b (2),..., b (M), gdyż w tym wypadku przeprowadzajac eliminację Gaussa, możemy przekształcać wszystkie prawe strony jednocześnie. Całkowity koszt rozwiazania (1) wynosi wówczas O(N 3 ) + O(MN 2 ). Copyright c 2010-11 P. F. Góra 3 2

Jeżeli jednak wszystkie prawe strony nie sa z góry znane co jest sytuacja typowa w obliczeniach iteracyjnych eliminacja Gaussa jest nieefektywna, gdyż trzebaby ja niepotrzebnie przeprowadzać dla każdej prawej strony z osobna, co podnosiłoby koszt numeryczny do O(MN 3 ) + O(MN 2 ). Copyright c 2010-11 P. F. Góra 3 3

Dygresja: równania macierzowe Zauważmy, że korzystajac z własności mnożenia macierzy, równania (1) można zapisać w postaci gdzie A R N N, X, B R N M, przy czym X = AX = B (2) x (1) 1 x (2) 1... x (M) 1 x (1) 2 x (2) 2... x (M) 2............ x (1) N x (2) N... x (M) N i analogicznie dla B. Innymi słowy, macierzowy układ równań (2) jest równoważny układowi równań liniowych (1) z M niezależnymi prawymi stronami. Copyright c 2010-11 P. F. Góra 3 4

Uwaga jawna konstrukcja macierzy odwrotnej Z powyższych uwag widać, że problem jawnej konstrukcji macierzy odwrotnej A A 1 = I (3) jest problemem postaci (2), a więc kolejne kolumny macierzy odwrotnej uzyskujemy rozwiazuj ac kolejne układy (1) dla i = 1, 2,..., N, przy czym b (1) = [1, 0, 0,... ] T, b (2) = [0, 1, 0,... ] T itd. Rozwiazanie układu równań Ax = b poprzez jawna konstrukcję macierzy odwrotnej, x = A 1 b, wymaga rozwiazania N układów równań liniowych, co oznacza koszt O(2N 3 ), podczas gdy koszt bezpośredniego rozwiazania równania Ax = b to O(N 3 ). Copyright c 2010-11 P. F. Góra 3 5

Pojawiajacy się często we wzorach napis A 1 b zawsze rozumiemy jako wezwanie do znalezienie Przykład Wyrażenie interpretujemy jako wektora z takiego, że Az = b. x n+1 = x n J 1 f n (4) x n+1 = x n z (5a) gdzie Jz = f n (5b) Copyright c 2010-11 P. F. Góra 3 6

Faktoryzacja LU Przypuśćmy, że udało nam się znaleźć faktoryzację A = L U, (6) gdzie macierz U jest trójkatna górna (wszystkie elementy poniżej głównej przekatnej sa zerami), natomiast L jest trójkatna dolna; dodatkowo przyjmujemy, że jej wszystkie elementy diagonalne sa równe 1, l ii = 1. Taka faktoryzację nazywamy rozkładem LU. Copyright c 2010-11 P. F. Góra 3 7

Jeżeli rozkład LU jest znany, równanie rozwiazujemy jako Ax L Ux }{{} y = b (7) Ly = b (8a) Ux = y (8b) Pierwsze z tych równań rozwiazujemy metoda forward substitution, drugie metoda back substitution. Ponieważ sa to równania z macierzami trójkatnymi, koszt obliczeniowy rozwiazania każdego z nich wynosi O(N 2 ), a zatem koszt rozwiazania (7) wynosi O(2N 2 ). Pozostaje jezcze tylko dokonać samej faktoryzacji. Copyright c 2010-11 P. F. Góra 3 8

Algorytm Doolittle a Aby dokonać rozkładu LU, nalezy obliczyć N 2 nieznanych elementów macierzy L, U. Rozpiszmy (6): a 11 a 12 a 13... a 1N a 21 a 22 a 23... a 2N a 31 a 32 a 33... a 3N............... a N1 a N2 a N3... a NN } {{ } A = 1 l 21 1 l 31 l 32 1............ l N1 l N2 l N3... 1 } {{ } L u 11 u 12 u 13... u 1N u 22 u 23... u 2N u 33... u 3N......... u NN } {{ } U (9) Okazuje się, że rozwiazywanie równań na poszczególne elementy l ij, u pq jest proste, jeżeli przeprowadza się je we właściwej kolejności, odpowiadajacej kolejnym kolumnom macierzy A. Copyright c 2010-11 P. F. Góra 3 9

Pierwsza kolumna: Aby znaleźć pierwsza kolumnę macierzy A, mnożymy kolejne wiersze L przez pierwsza kolumnę macierzy U. Ale ta kolumna ma tylko jeden element. Otrzymujemy u 11 = a 11 l 21 u 11 = a 21 l 31 u 11 = a 31......... l N1 u 11 = a N1 (10) Z pierwszego z równań (10) obliczamy u 11, a następnie z kolejnych l 21, l 31,..., l N1. Copyright c 2010-11 P. F. Góra 3 10

Druga kolumna: Wyrażenia na elementy drugiej kolumny macierzy A powstaja z przemnożenia kolejnych wierszy L przez druga kolumnę U: u 12 = a 12 l 21 u 12 + u 22 = a 22 l 31 u 12 + l 32 u 22 = a 32............... l N1 u 12 + l N2 u 22 = a N2 (11) Z pierwszego z tych równań obliczamy u 12. W tym momencie u 12 jest już znane, podobnie jak obliczone wcześniej l 1, a zatem z drugiego z równań (11) obliczamy u 22, a z kolejnych l 32, l 42,..., l N2. I tak dalej. Copyright c 2010-11 P. F. Góra 3 11

Widać, że średni koszt obliczenia któregoś z nieznanych elementów l ij, u pq jest rzędu O(N). Ponieważ elementów tych jest N 2, złożoność numeryczna algorytmu Doolittle a wynosi O(N 3 ). Całkowity koszt rozwiazania układu równań liniowych, a więc faktoryzacji LU i rozwiazania układów równań z macierzami trójkatnymi (8), jest taki sam, jak eliminacji Gaussa. Przewaga rozkładu LU nad eliminacja Gaussa polega na tym, iż przy pomocy rozkładu LU można rozwiazywać dowolnie wiele równań z takimi samymi lewymi stronami (macierzami), przy czym kosztowna część, a więc sama faktoryzację, oblicza się tylko raz. Z uwagi na symetrię problemu i na kolejność wykonywanych obliczeń, faktoryzacja LU nie wymaga dodatkowej pamięci do zapamiętania obliczonych elementów faktoryzacji: elementy macierzy L (bez diagonali) zapamiętujemy w poddiagonalnym trójkacie macierzy A, elementy macierzy U na diagonali i w ponaddiagonalnym trójkacie A. Copyright c 2010-11 P. F. Góra 3 12

Przykład W celu dokonania faktoryzacji LU macierzy musimy rozwiazać równania 1 2 2 2 1 2 2 2 1 = 1 2 2 2 1 2 2 2 1 1 l 21 1 l 31 l 32 1 (12) u 11 u 12 u 13 u 22 u 23 u 33 (13) ze względu na l ik, u kj. W tym celu zapiszmy indywidualne równania, na jakie rozpada się (13), w kolejności odpowiadajace przegladaniu macierzy (12) kolumnami. Copyright c 2010-11 P. F. Góra 3 13

Pierwsza kolumna macierzy (12) odpowiada skad natychmiast otrzymujemy u 11 = 1 (14a) l 21 u 11 = 2 (14b) l 31 u 11 = 2 (14c) u 11 = 1, l 21 = 2, l 31 = 2. (15) Zwróćmy uwagę, iż pierwsze z równań (14) służy do wyliczenia elementu macierzy U, drugie i trzecie do wyliczenia elementów macierzy L. Druga kolumna odpowiada u 12 = 2 (16a) l 21 u 12 + u 22 = 1 (16b) l 31 u 12 + l 32 u 22 = 2 (16c) Copyright c 2010-11 P. F. Góra 3 14

Zauważmy, że jeśli równania (16) rozwiazywać w kolejności naturalnej, od góry do dołu, każde z nich okazuje się być równaniem z jedna niewiadoma. Pierwsze dwa służa do wyliczenia elementów macierzy U, trzecie do wyliczenia elementu macierzy L. Otrzymujemy u 12 = 2, u 22 = 3, l 32 = 2 3. (17) Trzecia kolumna (12) daje u 13 = 2 (18a) l 21 u 13 + u 23 = 2 (18b) l 31 u 13 + l 32 u 23 + u 33 = 1 (18c) W tym wypadku wszystkie trzy równania (18) sluża do obliczenia elementów macierzy U. Podobnie jak poprzednio, jeśli równania te rozwiazywać Copyright c 2010-11 P. F. Góra 3 15

od góry do dołu, każde z nich jest równaniem z jedna niewiadoma. Jako rozwiazanie otrzymujemy u 13 = 2, u 23 = 2, u 33 = 5 3. (19) Ostatecznie 1 1 2 2 1 2 2 2 1 2 2 3 2 3 1 5 = 2 1 2 2 2 1 3 Równość w (20) można sprawdzić bezpośrednim rachunkiem.. (20) Copyright c 2010-11 P. F. Góra 3 16

Algorytm Crouta Przedstawiony algorytm nie zawiera wyboru elementu podstawowego (pivotingu), ten zaś jest niezbędny dla stabilności całego procesu. Z uwagi na symetrie faktoryzacji, tylko częściowy wybór elementu podstawowego jest możliwy. Omówimy to na przykładzie. Rozwiazauj ac równania (11) poczawszy od drugiego z nich, obliczamy l 22 u 22 = a 22 l 21 u 12 (l 22 1) l 32 u 22 = a 32 l 31 u 12 (21)... l N2 u 22 = a N2 l N1 u 12 Porównujemy teraz wyliczone lewe strony równań (21) i wybieramy największa (na moduł) z nich; tę uznajemy za właściwe u 22 odpowiada to permutacji wierszy macierzy A. Należy także spermutować już obliczone wiersze macierzy L. W rezultacie otrzymujemy nie rozkład LU samej macierzy A, ale macierzy róniacej się od niej pewna permutacja wierszy. Copyright c 2010-11 P. F. Góra 3 17

Przykład Rozpatrzmy problem znalezienia następujacej faktoryzacji: 2 4 1 1 1 2 3 1 0 1 2 1 1 1 0 1 = 1 0 0 0 l 21 1 0 0 l 31 l 32 1 0 l 41 l 42 l 43 1 u 11 u 12 u 13 u 14 0 u 22 u 23 u 24 0 0 u 33 u 34 0 0 0 u 44. (22) Faktoryzację znajdujemy przechodzac macierz A kolumnami, poczynajac Copyright c 2010-11 P. F. Góra 3 18

od lewego górnego rogu. Pierwsza kolumna daje zatem a 11 : u 11 = 2 (23a) a 21 : l 21 u 11 = 1 (23b) a 31 : l 31 u 11 = 0 (23c) a 41 : l 41 u 11 = 1 (23d) Po przejrzeniu pierwszej kolumny faktoryzacja ma postać 2 4 1 1 1 2 3 1 0 1 2 1 1 1 0 1 = 1 0 0 0 1 2 1 0 0 0 l 32 1 0 1 2 l 42 l 43 1 2 u 12 u 13 u 14 0 u 22 u 23 u 24 0 0 u 33 u 34 0 0 0 u 44. (24) Copyright c 2010-11 P. F. Góra 3 19

Przystępujemy do przegladania drugiej kolumny: a 12 : u 12 = 4 (25a) a 22 : 1 2 4 + u 22 = 2 = u 22 = 0 (25b) a 32 : 0 4 + l 32 u 22 = 1 = l 32 u 22 = 1 (25c) a 42 : 1 2 4 + l 42u 22 = 1 = l 42 u 22 = 3 (25d) Widać, iż równań (25) nie da się rozwiazać ze względu na l 32, l 42. Dzieje się tak dlatego, że aktualny element diagonalny ( element podstawowy ) jest zerem. Aby uniknać tej sytuacji, należy przestawić drugi wiersz faktoryzowanej macierzy z pewnym innym wierszem leżacym poniżej drugiego; oczywiście należy także przestawić już obliczone elementy macierzy L odpowiadajace przestawianym wierszom A. Jako wiersz, który zajmie miejsce wiersza drugiego, wybieramy ten, który prowadzi do największej (na moduł) wartości po prawej stronie równań (25), jako że ta wartość stanie Copyright c 2010-11 P. F. Góra 3 20

się nowym elementem diagonalnym, przez który będziemy dzielić. W naszym przykładzie jest to wiersz czwarty. Zatem 2 4 1 1 1 1 0 1 0 1 2 1 1 2 3 1 = 1 0 0 0 1 2 1 0 0 0 l 32 1 0 1 2 l 42 l 43 1 2 4 u 13 u 14 0 u 22 u 23 u 24 0 0 u 33 u 34 0 0 0 u 44. (26) Kolory wskazuja co z czym było przestawiane. Podkreślam, iż w macierzy L przestawieniu podlegaja tylko już obliczone elementy, a więc elementy leżace na lewo od aktualnie analizowanej kolumny. Ponieważ wiersze leżace powyżej aktualnie obliczanego elementu diagonalnego nie ulegaja zmianie, obliczona wartość u 12 można już było wpisać do macierzy. Teraz Copyright c 2010-11 P. F. Góra 3 21

z łatwościa obliczamy a zatem 2 4 1 1 1 1 0 1 0 1 2 1 1 2 3 1 a 22 : 1 2 4 + u 22 = 1 = u 22 = 3 (27a) a 32 : 0 4 + l 32 u 22 = 1 = l 32 = 1 3 (27b) a 42 : 1 2 4 + l 42u 22 = 2 = l 42 = 0 (27c) = 1 0 0 0 1 2 1 0 0 0 1 3 1 0 1 2 0 l 43 1 2 4 u 13 u 14 0 3 u 23 u 24 0 0 u 33 u 34 0 0 0 u 44. (28) Copyright c 2010-11 P. F. Góra 3 22

Przystępujemy do przegladania trzeciej kolumny. a 13 : u 13 = 1 (29a) a 23 : 1 2 u 13 + u 23 = 0 = u 23 = 1 2 (29b) a 33 : 0 u 13 + 1 3 u 23 + u 33 = 2 = u 33 = 11 (29c) 6 1 a 43 : 2 u 13 + 0 u 23 + l 43 u 33 = 3 = l 43 u 33 = 5 2 (29d) W tym wypadku nie musimy permutować wierszy (równania (29) nie zawieraja dzielenia przez zero), tym niemniej powinniśmy to zrobić, aby elementem diagonalnym był element o możliwie największym module. Ponieważ 5/2 > 11/6, permutujemy trzeci i czwarty wiersz macierzy A, przestawiajac jednocześnie odpowiednie już obliczone elementy macierzy Copyright c 2010-11 P. F. Góra 3 23

L. A zatem 2 4 1 1 1 1 0 1 1 2 3 1 0 1 2 1 = 1 0 0 0 1 2 1 0 0 1 2 0 1 0 0 1 3 l 43 1 2 4 1 u 14 0 3 1 2 u 24 0 0 u 33 u 34 0 0 0 u 44. (30) Jak poprzednio, kolory pokazuja elementy, które zostały przestawione. Teraz z łatwościa obliczamy najpierw brakujace elementy u 33, l 43, później zaś elementy ostatniej kolumny macierzy U w tym przypadku nie trzeba (a nawet nie da się) wykonywać już żadnych pivotów. Ostatecznie otrzymujemy 2 4 1 1 1 1 0 1 1 2 3 1 0 1 2 1 = 1 0 0 0 2 1 1 0 0 1 2 0 1 0 0 1 3 11 15 1 2 4 1 1 0 3 1 3 2 2 0 0 2 5 1 2 0 0 0 28 15. (31) Copyright c 2010-11 P. F. Góra 3 24

Widać zatem, że 1. Faktoryzacja LU nie wymaga de facto rozwiazywania skomplikowanego układu równań, jako że każde z rozwiazywanych równań jest równaniem z jedna niewiadoma, jeśli tylko macierz A jest przegladana we właściwej kolejności. Obliczenie jednego elementu wymaga N operacji, wszystkich elementów jest N 2, zatem koszt obliczeniowy faktoryzacji LU jest rzędu O(N 3 ). 2. Macierz A można przegladać kolumnami poczynajac od lewego górnego rogu, lecz jeszcze bardziej naturalna jest następujaca kolejność: (a) Zaczynamy od lewego górnego rogu. Copyright c 2010-11 P. F. Góra 3 25

(b) Przegladaj ac k ta kolumnę od pozycji diagonalnej w dół obliczamy wszystkie iloczyny l kk u kk, l k+1,k u kk,..., l Nk u kk bez wykonywania dzielenia przez u kk. Jako element podstawowy wybieramy ten z nich, który ma największa (na moduł) wartość w tym celu przestawiamy odpowiednie wiersze A oraz odpowiednie elementy L stojace w już obliczonych kolumnach (1,..., k 1). Teraz wykonujemy dzielenie przez nowe u kk (l kk = 1). Widać, że iloczynów l sk u kk, s > k, nie trzeba ponownie obliczać, ponieważ zostały policzone przed wybraniem elementu podstawowego. (c) Po przejrzeniu k tej kolumny przegladamy k ty wiersz poczynajac od pozycji k+1 (poprzednie elementy tego wiersza zostały już obliczone przy okazji przegladania poprzednich kolumn), jako że nie biora one udziału w wyborze elementu podstawowego, wszystkie zaś elementy potrzebne do ich obliczenia sa już w tym momencie znane. Copyright c 2010-11 P. F. Góra 3 26

3. Na skutek zastosowania wyboru elementu podstawowego dostajemy nie faktoryzację wyjściowej macierzy A, lecz faktoryzację macierzy różniacej się od macierzy wyjściowej kolejnościa wierszy (porównaj lewe strony (22) i (31)). Trzeba zapamiętać tę permutację wierszy, jako że przy rozwiazywaniu równania Ax = b trzeba zastosować tę sama permutację elementów wektora b. Copyright c 2010-11 P. F. Góra 3 27

Faktoryzacja Cholesky ego Niech A R N N będzie symetryczna, A T = A, i dodatnio określona: x R N, x 0: x T Ax > 0. (32) Wówczas istnieje alternatywa dla faktoryzacji LU: faktoryzacja postaci A = CC T, (33) gdzie C jest macierza trójkatn a dolna o elementach diagonalnych większych od zera. Znalezienie faktoryzacji Cholesky ego jest mniej więcej o połowę szybsze, niż znalezienie faktoryzacji LU tej samej macierzy. Copyright c 2010-11 P. F. Góra 3 28

Najprostszy algorytm jest bardzo podobny do algorytmu Doolittle a: c 11 c 21 c 22 c 31 c 32 c 33 c 41. c 42. c 43. c 44.... } {{ } C c 11 c 21 c 31 c 41... c 22 c 32 c 42... c 33 c 43... c 44...... } {{ } C T = a 11 a 21 a 31 a 41... a 21 a 22 a 32 a 42... a 31 a 32 a 33 a 43... a 41 a 42 a 43 a 44.......... } {{ } C (34) Pierwsza kolumna macierzy A daje c 2 11 = a 11 c 21 c 11 = a 21 c 31 c 11 = a 31 c 41 c 11 = a 41................ Z pierwszego z tych równań obliczamy c 11, z kolejnych c 21, c 31 itd. (35) Copyright c 2010-11 P. F. Góra 3 29

Druga kolumna daje c 11 c 21 = a 21 c 2 21 + c2 22 = a 22 c 31 c 21 + c 32 c 22 = a 32 c 41 c 21 + c 42 c 22 = a 42.......................... (36) Pierwsze z równań (36) jest identyczne z drugim z równań (35). Drugie z równań (36) pozwala na wyliczenie c 22. Dalsze równania pozwalaja wyliczyć c 32, c 42 itd. I tak dalej. Z uwagi na symetrię problemu, przy obliczaniu faktoryzacji Cholesky ego nie jest możliwy wybór elementów podstawowych. Z uwagi na kolejność obliczeń, obliczone czynniki Cholesky ego można przechowywać w tym samym miejscu, co elementy pierwotnej macierzy A. Copyright c 2010-11 P. F. Góra 3 30

Faktoryzacja LDL Jeżeli macierz spełnia założenia potrzebne do przeprowadzenia faktoryzacji Cholesky ego, można także znaleźć jej inna faktoryzację: A = L D L T, (37) gdzie L jest macierza trójkatn a dolna o tej własności, że i: l ii = 1, natomiast D jest macierza diagonalna o dodatnich elementach. Zaleta faktoryzacji LDL w stosunku do faktoryzacji Cholesky ego jest to, iż do znalezienia LDL nie potrzeba pierwiastkowań. Copyright c 2010-11 P. F. Góra 3 31

Macierze rzadkie W wielu praktycznych zastosowaniach występuja macierze rzadkie, to znaczy takie, w których liczba elementów niezerowych rośnie wolniej niż N 2, gdzie N jest wymiarem macierzy. Na przykład w macierzy trójdiagonalnej liczba niezerowych elementów skaluje się jak O(3N), a w macierzy pasmowej o P dodatkowych diagonalach jak O((2P + 1)N). Możliwe sa także inne struktury macierzy rzadkich. Copyright c 2010-11 P. F. Góra 3 32

Macierze rzadkie i efektywność numeryczna Dla efektywności numerycznej jest niesłychanie ważne, aby zastosowany algorytm uwzględniał strukturę macierzy, tak, aby nie trzeba było wykonywać redundantnych mnożeń przez zero i dodawań zera, a nawet żeby nie przechodzić przez zerowe elementy. Dla macierzy trójdiagonalnej faktoryzacji LU dokonujemy w czasie liniowym, O(N), ale za to niemożliwy jest wybór elementu podstawowego. Jeżeli możliwa jest faktoryzacja Cholesky ego macierzy M-diagonalnej, także jej czynnik Cholesky ego będzie M-diagonalny. Może jednak pojawić się niekorzystne zjawisko, zwane wypełnieniem: Jeżeli sama macierz ma zera wewnatrz pasma, jej czynnik Cholesky ego nie musi ich mieć, co może bardzo niekorzystnie wpłynać na wydajność numeryczna. Copyright c 2010-11 P. F. Góra 3 33

Przykład Czynnik Cholesky ego następujacej macierzy rzadkiej.... (niewypełnione elementy sa zerami) będzie macierza pełna. (38) Copyright c 2010-11 P. F. Góra 3 34

Minimum Degree Algorithm Niech A R N N będzie macierza posiadajac a faktoryzację Cholesky ego, dla której zachodzi niebezpieczeństwo pojawienia się wypełnienia. Wypełnienie zależy od struktury macierzy, nie od wartości jej poszczególnych elementów. Zamiast równania Ax = b (39a) możemy rozwiazywać równanie ( PAP T ) (Px) = Pb (39b) gdzie P jest macierza permutacji. (Jest to macierz ortogonalna.) Jeśli A jest symetryczna i dodatnio określona, także macierz PAP T jest symetryczna i dodatnio określona, a więc posiada ona swoja faktoryzację Cholesky ego. Macierz P staramy się dobrać tak, aby wypełnienie w czynniku Cholesky ego spermutowanej macierzy było możliwie małe. Problem Copyright c 2010-11 P. F. Góra 3 35

znalezienia permutacji takiej, aby wypełnienie było najmniejsze z możliwych jest NP-zupełny, w praktyce do poszukiwania P posługujemy się algorytmami heurystycznymi. Z historycznych powodów, z uwagi na zwia- zek pomiędzy macierzami symetrycznymi a grafami (struktura zerowychniezerowych elementów pozadiagonalnych macierzy symetrycznej odpowiada macierzy sasiedztwa pewnej klasy grafów nieskierowanych), algorytmy te nazywa się minimum degree algorithms. Przeglad tych algorytmów wykracza, niestety, poza zakres wykładu ze wstępu do metod numerycznych. Jeżeli znalezienie efektywnej permutacji nie wydaje się tanie i wygodne, można rozważyć użycie zupełnie innej klasy algorytmów, na przykład algorytmów iteracyjnych. Copyright c 2010-11 P. F. Góra 3 36

Przykład Macierz po prawej stronie stanowi optymalna permutację macierzy po lewej. W obu macierzach 32 elementy (dokładnie połowa) jest pusta. Gdyby zastosować faktoryzację Cholesky ego do macierzy po lewej, czynnik trójkatny miałby tylko 4 (zamiast 16) elementów zerowych. Czynnik Cholesky ego macierzy po prawej będzie miał 13 elementów zerowych (trzy elementy się wypełnia). Copyright c 2010-11 P. F. Góra 3 37

Transformacja Householdera Niech u R N, u 0. Tworzymy macierz W sposób oczywisty P T = P. Obliczmy P 2 = ( P = I 2 uut u 2. (40) I 2 uut u 2 ) ( I 2 uut u 2 u 2 {}}{ = I 2 uut u 2 2 uut u 2 + 4u u T u u T u 4 = I 4 uut u 2 + 4 uut u 2 = I (41) Copyright c 2010-11 P. F. Góra 3 38 )

Skoro P T = P oraz P 2 = I, P T = P 1 : macierz (40) jest macierza symetryczna, rzeczywista oraz ortogonalna. Macierz taka nazywamy ortogonalna macierza rzutowa. Niech teraz w (40) u = x x ê 1, (42) gdzie ê 1 jest pierwszym wektorem jednostkowym. Macierz (40) wraz z (42) nazywam macierza Householdera. Obliczam Px = x 2uuT x u 2. (43a) Zauważmy, że u T x = x T x x ê T 1 x = x 2 x x 1, gdzie x 1 jest pierwsza składowa wektora x. Copyright c 2010-11 P. F. Góra 3 39

Analogicznie u 2 = (x x ê 1 ) T (x x ê 1 ) = x T x x x 1 x x 1 + x 2 = 2 ( x 2 x x 1 ). Wobec tego ) Px = x 2u ( x 2 x x 1 2 ( x 2 ) = x u = ± x ê 1. (43b) x x 1 Efektem działania macierzy Householdera na wskazany wektor jest wyzerowanie wszystkich jego składowych, poza pierwsza, i przelanie całej jego długości na pierwsza składowa. Złożoność obliczeniowa tej procedury wynosi O(N). Copyright c 2010-11 P. F. Góra 3 40

Faktoryzacja QR Niech A R N N. Niech P 1 oznacza transformację Householdera zbudowana na pierwszej kolumnie macierzy A. Otrzymuję P 1....... P 1 A = A 1 (44) =...... Transformacja Householdera P 1 wyzerowała pierwsza kolumnę macierzy A, za wyjatkiem elementu diagonalnego. Złożoność obliczeniowa tego kroku wynosi O(N 2 ) (transformacja Householdera działa na N kolumn). Copyright c 2010-11 P. F. Góra 3 41

Niech teraz P 2 = 1 0 0... 0 0 0 0 (N 1) P 2 0 (45) gdzie (N 1) P 2 R (N 1) (N 1) jest transformacja Householdera, zbudowana na drugiej kolumnie macierzy A 1, poczynajac od elementu diagonalnego w dół. Otrzymujemy P 2 P 1 A = P 2 A 1 = A 2 =..... (46) Copyright c 2010-11 P. F. Góra 3 42

Następnie definiuję P 2 = 1 0 0 0... 0 0 1 0 0... 0 0 0 0 0 0 0 (N 2) P 3 0 0 (47) gdzie (N 2) P 3 R (N 2) (N 2) jest transformacja Householdera, zbudowana na trzeciej kolumnie macierzy A 2, poczynajac od elementu diagonalnego w dół. Stojaca w lewym górnym rogu macierz jednostkowa służy do tego, żeby nie zepsuć struktury, która osiagnęlimy w poprzednich kro- Copyright c 2010-11 P. F. Góra 3 43

kach. Otrzymujemy P 3 P 2 P 1 A = P 3 A 2 = A 3 = Widać, że po N 1 krokach osiagnę R =........ (48) = P N 1 P N 2 P }{{ 1 } A (49) Q T R jest macierza trójkatn a górna. Ponieważ macierze P i sa ortogonalne, ich iloczyn, oznaczony przez Q T także jest macierza ortogonalna. Nie Copyright c 2010-11 P. F. Góra 3 44

musimy zapamiętywać poszczególnych macierzy P i, wystarczy zapamiętać ich iloczyn. Otrzymaliśmy zatem dla dowolnej macierzy kwadratowej faktoryzację na macierz ortogonalna i trójkatn a górna: A = QR. (50) Złożoność obliczeniowa faktoryzacji QR wynosi dla macierzy pełnych O(N 3 ), czyli tyle samo, co faktoryzacji LU, jednak współczynnik przy wyrazie wiodacym jest gorszy niż dla LU. QR nie jest więc metoda z wyboru rozwiazywania układów równań liniowych. Jeśli jednak z jakichś względów faktoryzację QR możemy łatwo (lub musimy) obliczyć, układ równań linio- Copyright c 2010-11 P. F. Góra 3 45

wych rozwiazujemy jak następuje: Ax = b (51a) QRx = b (51b) Rx = Q T b (51c) Koszt obliczeniowy przejścia od (51b) do (51c) wynosi O(N 2 ). Równanie (51c) rozwiazujemy metoda backubstitution, co także kosztuje O(N 2 ). Jest to więc koszt mały w porównaniu z dokonaniem samej faktoryzacji. Copyright c 2010-11 P. F. Góra 3 46