Zaawansowane metody numeryczne Komputerowa analiza

Transkrypt

Zaawansowane metody numeryczne Komputerowa analiza
Zaawansowane metody numeryczne
Komputerowa analiza zagadnień różniczkowych
1. Układy równań liniowych
P. F. Góra
http://th-www.if.uj.edu.pl/zfs/gora/
semestr letni 2006/07
Podstawowe fakty
• Równanie
Ax = b ,
x, b ∈ RN , A ∈ RN ×N
(1)
ma jednoznaczne rozwiazanie
˛
gdy det A 6= 0.
• W praktyce numerycznej nigdy nie rozwiazuje
˛
sie˛ układu (1) “metoda˛ wyznacznikowa”,
˛ bo jest ona niesłychanie kosztowna.
• Koszt numeryczny metod dokładnych ∼ O(N 3) dla macierzy pełnych,
(znacznie) mniej dla macierzy rzadkich.
• Należy unikać jawnego obliczania odwrotności A−1, tym bardziej, że jest to
konieczność egzotyczna. Dlatego zawsze zapis typu x = A−1b rozumieć
bedziemy
˛
w ten sposób, że x spełnia równanie (1).
1. Układy równań liniowych
2
Metody dokładne
• Eliminacja Gaussa, koniecznie z wyborem elementu podstawowego (“pivotingiem”), cz˛eściowym lub pełnym.
• Rozkład LU : A = LU, gdzie L jest trójkatna
˛
dolna, U trójkatna
˛
górna, koniecznie z cz˛eściowym wyborem elementu podstawowego (algorytm
Crouta) — zalecana metoda dla niewielkich macierzy dobrze uwarunkowanych, bez jakichś szczególnych symetrii. Koszt numeryczny rozkładu LU
wynosi O(N 3).
• Jeśli mamy rozkład LU A = LU, równanie (1) rozwiazujemy
˛
jako
Uy = b
Lx = y
(2a)
(2b)
Równanie (2a) rozwiazujemy
˛
zaczynajac
˛ od ostatniego wiersza idac
˛ do góry
(backsubstitution), równanie (2b) rozwiazujemy
˛
zaczynajac
˛ od pierwszego
wiersza idac
˛ w dół (forward substitution) — w ten sposób za każdym razem
rozwiazujemy
˛
równanie z jedna˛ niewiadoma.
˛
1. Układy równań liniowych
3
Rozkład Cholesky’ego
Jeżeli macierz A jest symetryczna i dodatnio określona, zamiast rozkładu LU
można (i należy) używać rozkładu Cholesky’ego: A = LLT , gdzie L jest trójkatna
˛
dolna. Koszt rozkładu Cholesky’ego jest mniej wiecej
˛
o połowe˛ mniejszy
od kosztu rozkładu LU .
Wersja Gaxpy:
for j = 1 : n
if j > 1
A(j : n, j) = A(j : n, j) − A(j : n, 1 : j − 1)A(j, 1 : j − 1)T
end
q
A(j : n, j) = A(j : n, j)/ A(j, j)
end
1. Układy równań liniowych
4
Wersja Outer product:
for k = 1 : n q
A(k, k) = A(k, k)
A(k + 1 : n, k) = A(k + 1 : n, k)/A(k, k)
for j = k + 1 : n
A(j : n, j) = A(j : n, j) − A(j : n, k)A(j, k)
end
end
Uwagi:
• Przy rozkładzie można nadpisywać macierz
• Nie da sie˛ robić pivotingu
• Jeśli A pasmowa, także L jest pasmowa, o takiej samej szerokości pasma
• Jeśli wewnatrz
˛ pasma wystepuj
˛ a˛ dziury w A, w L moga˛ one być wypełnione.
1. Układy równań liniowych
5
Norma macierzy
Niech || · || oznacza norme˛ w przestrzeni RN :
Definicja: Niech A ∈ RN ×N bedzie
˛
operatorem liniowym nad przestrzenia˛ RN .
Wielkość
||Ax||
||A|| = sup
||x||6=0 ||x||
(3a)
nazywam norma˛ macierzy A indukowana˛ przez norme˛ wektorów.
1. Układy równań liniowych
6
Po prawej stronie powyższego wyrażenia wystepuje
˛
norma wektorów; to tłumaczy zastosowanie przymiotnika “indukowana”.
Obserwacja. Widać, iż
kAk = sup kAxk .
(3b)
kxk=1
Twierdzenie 1. Norma indukowana jest norma˛ w przestrzeni operatorów liniowych nad RN .
1. Układy równań liniowych
7
Współczynnik uwarunkowania
Rozważmy równanie (1). Z własności normy (3) widać, że
kAxk 6 kAk kxk .
Z drugiej strony, na mocy (1), jeślidet A 6= 0,
−1 −1
kxk = A b 6 A kbk ,
(4a)
(4b)
a zatem
−1
kAxk 6 A · A kbk .
−1
Widać, że jeżeli wielkość A · A jest duża, małe zmiany
(4c)
b moga˛ numerycznie (w arytmetyce ze skończona˛ dokładnościa)
˛ spowodować duże zmieny
rozwiazania.
˛
1. Układy równań liniowych
8
Definicja. Niech A ∈ RN ×N i det A 6= 0. Wielkość
−1 κ = A A
(5)
nazywam współczynnikiem uwarunkowania macierzy A. Jeżeli det A = 0,
przyjmuje˛ κ = ∞.
Twierdzenie 2. Niech A ∈ RN ×N bedzie
˛
macierza˛ symetryczna,
˛ A = AT ,
˛ a˛ jej wartościami własnymi. Jeżeli det A 6= 0, współi niech liczby {λi}N
i=1 bed
czynnik uwarunkowania tej macierzy spełnia
max |λi|
κ=
i
min |λi|
.
(6)
i
1. Układy równań liniowych
9
Dowód. W celu udowodnienia tego twierdzenia obliczmy norme˛ macierzy A.
Ponieważ jest to macierz symetryczna i rzeczywista, jej wartości własne sa˛
rzeczywiste, natomiast jej unormowane wektory własne tworza˛ baz˛e w RN .
Oznaczmy przez yi jej i-ty wektor własny, Ayi = λiyi. Każdy wektor x ∈ RN ,
kxk = 1, można przedstawić jako kombinacje˛ liniowa˛
x=
N
X
αiyi ,
(7)
i=1
przy czym warunek unormowania prowadzi do nastepuj
˛ ace
˛ wiezu
˛ na współczynniki tej kombinacji:
N
X
α2
i = 1.
(8)
i=1
1. Układy równań liniowych
10
Obliczmy teraz
2
2
2
X
N
N
N
X
X
αiyi = kAxk2 = A
αiAyi = αiλiyi
i=1
i=1
i=1
N
N
N
X
X
X
2
2
||αiλiyi||2 =
α2
α2
6
i λi 6
i max λi
i
i=1
i=1
i=1
2
N
X
α2
= max λ2
i = max |λi|
i
i
i
i=1
1. Układy równań liniowych
(9)
11
Widzimy zatem, iż ∀ x ∈ RN , kxk2 = 1, zachodzi kAxk 6 max |λi|, a zatem
i
na mocy definicji (3) kAk = max |λi|.
i
Ponieważ det A 6= 0, macierz A−1 istnieje, jest symetryczna i rzeczywista, a jej
N . Zupełnie analogicznie dowodzimy,
wartościami własnymi sa˛ liczby {1/λ
}
i
i=1
iż kA−1k = max (1/|λi|) = 1/ min |λi| , skad
˛ natychmiast wynika teza (6).
i
1. Układy równań liniowych
i
12
Singular Value Decomposition
Twierdzenie 3. Dla każdej macierzy A ∈ RM ×N , M > N , istnieje rozkład
A = U [diag(wi)] VT ,
(10)
gdzie U ∈ RM ×N jest macierza˛ kolumnowo ortogonalna,
˛ V ∈ RN ×N jest macierza˛ ortogonalna˛ oraz wi ∈ R, i = 1, . . . , N . Rozkład ten nazywamy rozkładem wzgledem
˛
wartości osobliwych (Singular Value Decomposition, SVD).
Jeżeli M = N , macierz U jest macierza˛ ortogonalna.
˛
1. Układy równań liniowych
13
Jadro
˛
i zasieg
˛ operatora
Niech A ∈ RM ×N . Jadrem
˛
operatora A nazywam
Ker A = {x ∈ RN : Ax = 0} .
(11)
Zasiegiem
˛
operatora A nazywam
Range A = {y ∈ RM : ∃x ∈ RN : Ax = y} .
(12)
Jadro
˛
i zasieg
˛ operatora sa˛ przestrzeniami liniowymi. Jeśli M = N < ∞,
dim (Ker A) + dim (Range A) = N .
1. Układy równań liniowych
14
Sens SVD
Sens SVD najlepiej widać w przypadku, w którym co najmniej jedna z wartości wi = 0. Dla
ustalenia uwagi przyjmijmy w1 = 0, wi6=1 6= 0.
Po pierwsze, co to jest z = [z1 , z2 , . . . , zn]T = VT x? Ponieważ V jest macierza˛ ortogonalna,
˛ z
jest rozkładem wektora x w bazie kolumn macierzy V. Korzystajac
˛ z (10), dostajemy


0
 w 2 z2 
T
.
(13)
Ax = U [diag(wi)] V x = U [diag(0, w2, . . . , wN )] z = U 
...


w N zN
Wynikiem ostatniego mnożenia bedzie
˛
pewien wektor z przestrzeni RM . Ponieważ pierwszym
elementem wektora [0, w2 z2 , . . . , wN zN ]T jest zero, wynik ten nie zależy od pierwszej kolumny
macierzy U. Widzimy zatem, że kolumny macierzy U, odpowiadajace
˛ niezerowym współczynnikom wi, stanowia˛ baz˛e w zasiegu
˛
operatora A.
Co by zaś sie˛ stało, gdyby x był równoległy do wektora stanowiacego
˛
pierwsza˛ kolumne˛ V?
Wówczas z = 0, a wobec tego Ax = 0. Ostatecznie wiec
˛ widzimy, że kolumny macierzy V,
odpowiadajace
˛ zerowym współczynnikom wi, stanowia˛ baz˛e w jadrze
˛
operatora A.
1. Układy równań liniowych
15
SVD i odwrotność macierzy
Niech A ∈
RN ×N .
Zauważmy, że |det A| =
N
Q
wi, a zatem det A = 0 wtedy i tylko wtedy,
i=1
gdy co najmniej jeden wi = 0. Niech det A 6= 0. Wówczas równanie Ax = b ma rozwiazanie
˛
postaci
T
−1
−1
x = A b = V diag(wi ) U b .
(14)
Niech teraz det A = 0. Równanie Ax = b także ma rozwiazanie,
˛
o ile tylko b ∈ Range A.
Rozwiazanie
˛
to dane jest wzorem
x = Ã−1b = V diag(w̃i−1) UT b .
(15a)
gdzie
w̃i−1
1. Układy równań liniowych
=
wi−1
0
gdy wi =
6 0,
gdy wi = 0 .
(15b)
16
SVD i współczynnik uwarunkowania
Twierdzenie 4. Jeżeli macierz A ∈ RN ×N posiada rozkład (10) oraz det A 6= 0, jej współczynnik uwarunkowania spełnia
max |wi|
.
(16)
κ= i
min |wi|
i
Jeśli macierz jest źle uwarunkowana, ale formalnie odwracalna, numeryczne rozwiazanie
˛
równania Ax = b może być zdominowane przez wzmocniony bład
˛ zaokraglenia.
˛
Aby tego uniknać,
˛
cz˛esto zamiast (bezużytecznego!) rozwiazania
˛
dokładnego (14), używa sie˛ przybliżonego (i użytecznego!) rozwiazania
˛
w postaci (15) z nastepuj
˛ ac
˛ a˛ modyfikacja˛
−1
wi
gdy |wi| > τ ,
w̃i−1 =
(17)
0
gdy |wi| 6 τ ,
gdzie τ jest pewna˛ zadana˛ tolerancja.
˛
1. Układy równań liniowych
17

Podobne dokumenty