Zestaw 6 Zadanie 2

Transkrypt

Zestaw 6 Zadanie 2
Metody Numeryczne
Notatka 6
Jakub Olczyk
Koło Naukowe Wolnego Oprogramowania
Zestaw 6
Zadanie 2
Policzyć



5x1 + (−2)x2 + 3x3 = 10
2x1 + 4x2 + 2x3 = 0


2x1 + (−1)x2 + (−4)x3 = 0
Dla wektora początkowego:
x0 = (0, 0, 0)
Ogólne podejście iteracyjne
Ax = b, gdzie A ∈ Rn , x, b ∈ Rn
(L + D + U )x = b
Gdzie macierze L, D, U to odpowiednio dolnotrójkątna, przekątniowa, górnotrójkątna.
Poprzekształcajmy ten wzorek dalej.
Dx(k+1) = −(L + U )x(k) + b
x(k+1) = −D−1 (L + U )x(k) + D−1 b
W praktyce się z tego nie korzysta, jedynie pytania egzaminacyjne się mogą się pojawić o podkreśloną macierz.
Praktyka jest taka:
1. równanie =⇒ x1
2. równanie =⇒ x2
3. równanie =⇒ x3
1
Metoda Jacobiego





5x1 = 10 + 2x2 − 3x3
 x1 =
4x2 = −2x1 + x3
=⇒ x2 =




x3 =
−4x3 = −2x1 + x2
10+2x2 −3x3
5
−2x1 +x3
4
−2x1 +x2
−4
=⇒
iteracyjnie









(k)
(k+1)
=
x2
(k+1)
=
(k+1)
x3
=
x1
(k)
10+2x2 −3x3
5
(k)
(k)
−2x1 +x3
4
(k)
(k)
−2x1 +x2
−4
Co pozwala nam wyprowadzić ogólny wzór na metodę Jacobiego:

(k+1)
xi
=

1 
(k)
bi −
aij · xj 
aii
j6=i
X
(1)
2 iteracje metody Jacobiego
Możemy teraz zrobić troszkę obliczeń od naszego wektora startowego x0 .
x11 =
10 + 2(0) − 3(0)
=2
5
x12 =
0 − 2(0) − 2(0)
=0
4
x13 =
0 − 2(0) + 0
=0
−4
x21 =
10 + 2(0) − 3(0)
=2
5
x22 =
0 − 2(2) − 2(0)
= −1
4
x23 =
0 − 2(2) + 0
=1
−4
Metoda Gaussa-Seidla
Idąc podobnym tokiem rozumowania co dla metody Jacobiego możemy dojść do troszkę lepszego
równania iteracyjnego, a mianowicie:






x1 =
5x1 = 10 + 2x2 − 3x3
4x2 = −2x1 + x3
=⇒ x2 =




x3 =
−4x3 = −2x1 + x2
10+2x2 −3x3
5
−2x1 +x3
4
−2x1 +x2
−4
=⇒
iteracyjnie









(k)
(k+1)
=
(k+1)
=
(k+1)
=
x1
x2
x3
(k)
10+2x2 −3x3
5
(k+1)
(k)
−2x1
−2x3
4
(k+1)
(k+1)
−x2
−2x1
−4
Różnica w stosunku do metody Jacobiego jest wyszczególniona na czerwono. Daje nam to ogólny
wzór postaci:

(k+1)
xi

i−1
n
X
X
1 
(k+1)
(k)
=
bi −
aij · xj
−
aij · xj 
aii
j=1
j=i+1
(2)
2 iteracje metody Gaussa-Seidla
x11 =
10 − 2(0) − 3(0)
=2
5
x21 =
10 + 2(−1) − 3(5/4)
17
=
= 0.85
5
20
x22 =
−2(17/20) − 2(5/4)
21
= − = −1.05
4
20
x23 =
−2(17/20) − (21/20)
55
=
= 0.6875
−4
80
x12 =
−2(2) − 2(0)
= −1
4
2
x13 =
−2(2) − 1
5
=
−4
4
Metoda SOR
W tym wypadku będziemy korzystać z metody Gaussa-Seidla do tego, żeby liczyć krok pośredni.
Tak więc będziemy mieć coś takiego :

(k+1)


xb

 1
(k+1)
xb2



 (k+1)
xb3
(k)
=
=
(k+1)
gdzie każde xi
(k+1)
xi
(k)
10+2x2 −3x3
5
(k+1)
(k)
−2x1
−2x3
4
(k+1)
(k+1)
−2x1
−x2
−4
=
bez daszka będzie wyliczane z następującego wzoru:
(k)
ci (k+1) , gdzie ω ∈ (0, 2)
= (1 − ω)xi + ω x
(3)
2 iteracje metodą SOR
xc11 = 2 (z poprzednich obliczeń)
1
3
x11 = (1 − 1.5) · x01 + 1.5xc11 = − (0) + · 2 = 3
2
2
−2(3)
6
xc12 =
= − = −1.5
−4
4
3
−9
1
x12 = (1 − 1.5) · x02 + 1.5xc12 = − (0) + (−1.5) =
= −2.25
2
2
4
−2(3) − 2.25
−6 − 2.25
xc13 =
=
= 2.0625
−4
−4
x13 = (1 − 1.5) · x02 + 1.5xc13 = −0.5 · 0 + 1.5 · 2.0625 = 3.09375
Dalej nie liczyliśmy na ćwiczeniach.
Dowodzenie zbieżności metody
Można zastosować dwa podejścia dla tej metody.
I podejście: skorzystać z twierdzenia, które mówi, że
jeśli macierz A jest dominująca przekątniowo, to metoda obliczania Ax = b jest zbieżna.
Przy czym macierz przekątniowo dominująca to macierz, której wartości bezwzględne elementów na głównej przekątnej są większe od sumy wartości bezwzględnych pozostałych elementów w
wierszach.
Przykład:
10 2
0
−1
1
8
2
2




 3 −2 −14 1 
0 −1
4
6


II podejście: zbudować odpowiednią macierz dla metody:
3
Metoda Jacobiego:

0
 2
GJ = − 4
−2
−4
2
5
− 35
−1
− 24 
=I −D A
0

0
− 41
Gdzie poszczególne (gij ) są wspólczynnikami ze wzoru na liczenie wartości w metodzie Jacobiego.
Dla przykładu: g12 to jest współczynnik przy x2 z pierwszego równania tj. 25 .
Metoda Gaussa-Seidla:
GGS = −(L + D)−1 U
I teraz co chcemy zrobić to sprawdzić czy norma naszej macierzy (dowolna indukowana normą
wektora) jest mniejsza od jedynki.
||GJ || < 1
Przykład dla Jacobiego
Dla ||.||∞ (maximum z sum wartości bezwzględnych wierszy):
||GJ ||∞
3
= max 1, 1,
4
< 1 ⇐= fałsz
Dla ||.||1 (maximum z sum wartości bezwzględnych kolumn):
||GJ ||1 = max 1,
13 22
,
20 20
< 1 ⇐= fałsz
Jeżeli nie uda się skorzystać z tego twierdzenia to trzeba przejść do ”mocniejszej broni”twierdzania
korzystającego z promienia spektralnego macierzy.
Promień spektralny macierzy A to ρ(A) = max {|λ| : det(A − Iλ) = 0}
Czyli bezwzględnie największa wartość własna macierzy.
Twierdzenie
Niech A to macierz dla układu równań Ax = b, wtedy jeśli ρ(A) < 1, to metoda jest zbieżna.
Zadanie 1
Należy pamiętać, że dominująca przekątniowo ma być macierz A. W tym wypadku mamy metody
iteracyjne postaci:
x(k+1) = Bi xk + c
4
a)


1 0.5 0
0
B1 = 
0.5 1

0
0 0.1
Dlatego trzeba policzyć promień spektralny (normy wyszyły ­ 1).
det(B1 − Iλ) = 0
1 − λ
0.5
0
0.5
0 1−λ
0 = 0
0
0.1 − λ
(0.1 − λ)((1 − λ)2 − 0.25) = 0
=⇒
wzór skróconego mnożenia
(0.1 − λ)(1 − λ − 0.5)(1 − λ + 0.5) = 0
ρ(B1 ) = max{0.1, 0.5, 1.5} = 1.5 =⇒ metoda rozbieżna
b)


0
0.2 0

0
B2 = −0.2 0
 =⇒ zbieżna, bo ||B2 ||∞ = ||B2 ||1 = 0.3 < 1
0
0 0.3
c)


0.1 0
1


B3 =  0 0.9 1 
0
0 0.3
Z miejsca widać wartości własne dla tej macierzy. Wielomian charaktersytyczny:
(0.1 − λ)(0.9 − λ)(0.3 − λ) = 0 =⇒ ρ(B3 ) = 0.9 < 1
d)


P


P
0.7 0.1 0.1 →
= 0.9
P


= 0.9 =⇒ ||B4 ||∞ = 0.9 < 1, czyli metoda jest zbieżna
B4 = 0.3 0.5 0.1 →
P
0 0.1 0.8 →
= 0.9
e)
0.7 0.3 0.2 →
= 1.2
P


= 0.9 =⇒ norma nieskończoność nie zadziała
B5 = 0.1 0.5 0.3 →
P
0.1 0.1 0.3 →
= 0.5
↓
↓
↓
P
P
P
=⇒ zbieżna, bo ||B5 ||1 = 0.9 < 1
0.9 0.9 0.9
5