dr hab. Piotr Fronczak
Metody numeryczne
Wykład nr 3
Rozwiązywanie układów
algebraicznych równań liniowych
Pojęcia podstawowe
1.
Układ algebraicznych równań liniowych
3 2 1
3 2 1
33 32
31
23 22
21
13 12
11
b b b
x x x
a a
a
a a
a
a a
a
Układ liniowy m równań z n niewiadomymi postaci
𝑎
11𝑥
1+ ⋯ + 𝑎
1𝑛𝑥
𝑛= 𝑏
1𝑎
21𝑥
1+ ⋯ + 𝑎
2𝑛𝑥
𝑛= 𝑏
2…
𝑎
𝑚1𝑥
1+ ⋯ + 𝑎
𝑚𝑛𝑥
𝑛= 𝑏
𝑚Postać macierzowa
𝑨 ∗ 𝒙 = 𝒃
2. Macierz diagonalna (wszystkie współczynniki leżące poza główną przekątną są zerowe)
44 33
22 11
0 0
0
0 0
0
0 0
0
0 0
0
a a
a a
3. Macierz jednostkowa
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Gdy m > n – układ równań liniowych nadokreślonych
Gdy m < n – układ równań liniowych niedookreślonych (wtedy np. metoda najmniejszych kwadratów)
4. Dolna macierz trójkątna (wszystkie elementy ponad przekątną są zerowe)
44 43
42 41
33 32
31
22 21
11
0 0 0
0 0
0
a a
a a
a a
a
a a
a
5. Górna macierz trójkątna (wszystkie elementy pod przekątną są zerowe)
44 34 33
24 23
22
14 13
12 11
0 0
0
0 0
0
a a a
a a
a
a a
a a
6. Macierz przekątniowo dominująca (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)
6 4
1 0
1 14
2 3
2 2
8 1
1 0
2 10
Układ równań jest źle uwarunkowany, jeśli mała zmiana macierzy współczynników, lub wektora wyrazów wolnych prowadzi do dużej zmiany wektora rozwiązań.
Przykład:
1 2
2 3.999 𝑥
𝑦 = 4
7.999
𝑥
𝑦 = 2
ma rozwiązanie
1
1 2
2 3.999 𝑥
𝑦 = 4.001 7.998
𝑥
𝑦 = −3.999
ma rozwiązanie
4
1.001 2.001 2.001 3.998
𝑥
𝑦 = 4
7.999
𝑥
𝑦 = 3.994 0.0014
ma rozwiązanie
Norma macierzy
𝐴 = max
𝑖 𝑎𝑖𝑗
𝑛
𝑗=1
(maksymalna suma bezwzględnych wartości w wierszu)
Liczba warunkowa
𝐶𝑜𝑛𝑑(𝐴) = 𝐴 𝐴−1
∆𝑋
𝑋 ≤ 𝐶𝑜𝑛𝑑(𝐴) ∆𝐵 𝐵
∆𝑋
𝑋 ≤ 𝐶𝑜𝑛𝑑(𝐴) ∆𝐴
Można pokazać, że oraz 𝐴
Najmniejszy możliwy błąd, to precyzja zapisu liczby zmiennoprzecinkowej mach w komputerze.
Czyli Cond(A)mach da nam informację, ile jest cyfr znaczących m w rozwiązaniu.
𝐶𝑜𝑛𝑑 𝐴 𝜀𝑚𝑎𝑐ℎ < 0.5 × 10−𝑚
Przykład:
1 2
2 3.999 𝑥
𝑦 = 4
7.999 𝐴
−1= −3999 2000
2000 −1000
𝐴 = 5.999 𝐴−1 = 5999
𝐶𝑜𝑛𝑑 𝐴 = 𝐴 𝐴−1 = 35990 Załóżmy, że działamy na typie float (23 bity)
𝜀𝑚𝑎𝑐ℎ = 2−23 = 0.12 × 10−6 𝐶𝑜𝑛𝑑 𝐴 𝜀𝑚𝑎𝑐ℎ = 0.429 × 10−2 0.429 × 10−2 < 0.5 × 10−𝑚
𝑚 < 2.067
Czyli mamy tylko dwie cyfry znaczące w rozwiązaniu.
Metody dokładne
Polegają na takim przekształcaniu danych
A
ib
, że po skończonej liczbie dokładnie wykonywanych działań arytmetycznych otrzymujemy rozwiązanie.Np. wzory Cramera
W x
i W
igdzie
W
– wyznacznik macierzyA
, a wyznacznikW
i powstaje przez wstawienie kolumny wyrazów wolnych doi
-tej kolumny wyznacznikaW
Stosując wzory Cramera należy obliczyć (
n+1
) wyznaczników, które wymagają co najmniej (n+1
)! mnożeń. Jest to więc metoda bardzo pracochłonnai dlatego jej się nie stosuje dla
n>4
.Układy równań z macierzą trójkątną górną
Jeżeli macierz
A
układun
równań zn
niewiadomymiAx = b
jest macierzą trójkątną górną i wszystkie elementy na przekątnej głównej są różne od zera, rozwiązaniex
takiego układu można otrzymać rekurencyjnie.1x
1+1x
2–1x
3+4x
4= 8 – 2x
2–3x
3+1x
4= 5
2x
3– 3x
4= 0 2x
4= 4
x 4 = 2
Przykład:
1x
1+1x
2–1x
3= 0 – 2x
2–3x
3= 3
2x
3= 6
2x
4= 4
Przykład:
x 3 = 3
1x
1+1x
2= 3
– 2x
2= 12
2x
3= 6
2x
4= 4
Przykład:
x 2 = -6
1x
1= 9
– 2x
2= 12
2x
3= 6
2x
4= 4
Przykład:
for(i = n; i>=1; i--) {
x[i] = b[i] / a[i][i];
for(j = 1; j<i; j++)
b[j] = b[j] x[i]*a[j][i];
}
1 ,..., 2 ,
1
1
i n n
a
x a b
x
a x b
ii n j
i j
j ij i
i
nn n n
Układy równań z macierzą trójkątną górną
n a i
x a b
x
a x b
ii i j
i j
j ij i
i
2 , 3 ,...,
1 11
1 1
Układy równań z macierzą trójkątną dolną
for(i = 1; i<=n; i++) {
x[i] = b[i] / a[i][i];
for(j = i+1; j<=n; j++)
b[j] = b[j] x[i]*a[j][i];
}
Układy równań z macierzą diagonalną
n n
nn
b
b b
x x x
a a
a
2 1 2
1 22
11
0 0
0
0 0 0
0 0
Liczba operacji konieczna do przekształcenia danej macierzy do formy diagonalnej jest większa niż do formy trójkątnej.
Metoda eliminacji Gaussa
Najczęściej stosowana metoda do numerycznego rozwiązywania układu niewielu równań liniowych.
Dwa etapy:
1. Sprowadzamy układ do postaci trójkątnej górnej
2. Rozwiązujemy nowy układ tak jak na poprzednich slajdach
4 3 2 1
4 3 2 1
44 43
42 41
34 33
32 31
24 23
22 21
14 13
12 11
b b b b
x x x x
a a
a a
a a
a a
a a
a a
a a
a a
1 21 2
4 14
21 24
3 13
21 23
2 12
21
22
) ( ) ( )
(
0 a m a x a m a x a m a x b m b
2 4
24 3
23 2
22 1
21
x a x a x a x b
a
11 1 12 2 13 3 14 4
21 121
a x a x a x a x m b
m
11 21
21
a
m a
'
22a a '
23a '
24b '
20
4 3 2 1
4 3 2 1
44 43
42 41
34 33
32 31
24 23
22
14 13
12 11
' '
' '
0
b b b
b
x x x x
a a
a a
a a
a a
a a
a
a a
a
a
4 3 2 1
4 3 2 1
44 43
42 41
34 33
32 31
24 23
22
14 13
12 11
' '
' '
0
b b b
b
x x x x
a a
a a
a a
a a
a a
a
a a
a a
4 3 2 1
4 3 2 1
44 43
42 41
34 33
32
24 23
22
14 13
12 11
' ' '
' '
0
' '
' 0
b b b b
x x x x
a a
a a
a a
a
a a
a
a a
a a
1 31 3
4 14
31 34
3 13
31 33
2 12
31
32
) ( ) ( )
(
0 a m a x a m a x a m a x b m b
3 4
34 3
33 2
32 1
31
x a x a x a x b
a
11 1 12 2 13 3 14 4
31 131
a x a x a x a x m b
m
11 31
31
a
m a
'
32a a '
33a '
34b '
30
4 3 2 1
4 3 2 1
44 43
42 41
34 33
32
24 23
22
14 13
12 11
' ' '
' '
0
' '
' 0
b b b b
x x x x
a a
a a
a a
a
a a
a
a a
a a
4 3 2 1
4 3 2 1
44 43
42
34 33
32
24 23
22
14 13
12 11
' ' '
' '
' 0
' '
' 0
' '
' 0
b b b b
x x x x
a a
a
a a
a
a a
a
a a
a a
1 41 4
4 14
41 44
3 13
41 43
2 12
41
42
) ( ) ( )
(
0 a m a x a m a x a m a x b m b
4 4
44 3
43 2
42 1
41
x a x a x a x b
a
11 1 12 2 13 3 14 4
41 441
a x a x a x a x m b
m
11 41
41
a
m a
'
42a a '
43a '
44b '
40
4 3 2 1
4 3 2 1
44 43
42
34 33
32
24 23
22
14 13
12 11
' ' '
' '
' 0
' '
' 0
' '
' 0
b b b b
x x x x
a a
a
a a
a
a a
a
a a
a a
4 3 2 1
4 3 2 1
44 43
42
34 33
24 23
22
14 13
12 11
' '' '
' '
' 0
'' ''
0 0
' '
' 0
b b
b b
x x x x
a a
a
a a
a a
a
a a
a a
2 32 3
4 24
32 34
3 23
32
33
' ) ( ' ' ) ' '
' (
0 a m a x a m a x b m b
3 4
34 3
33 2
32
' ' '
' x a x a x b
a
22 2 23 3 24 4
32 232
a ' x a ' x a ' x m b '
m
22 32
32
'
' a m a
'
33'
a a ' '
34b ' '
30
4 3 2 1
4 3 2 1
44 43
42
34 33
24 23
22
14 13
12 11
' '' '
' '
' 0
'' ''
0 0
' '
' 0
b b
b b
x x x x
a a
a
a a
a a
a
a a
a a
4 3 2 1
4 3 2 1
44 43
34 33
24 23
22
14 13
12 11
'' '' '
'' ''
0 0
'' ''
0 0
' '
' 0
b b b
b
x x x x
a a
a a
a a
a
a a
a a
2 42 4
4 24
42 44
3 23
42
43
' ) ( ' ' ) ' '
' (
0 a m a x a m a x b m b
4 4
44 3
43 2
42
' ' '
' x a x a x b
a
22 2 23 3 24 4
42 242
a ' x a ' x a ' x m b '
m
22 42
42
'
' a m a
'
43'
a a ' '
44b ' '
40
4 3 2 1
4 3 2 1
44 43
34 33
24 23
22
14 13
12 11
'' '' '
'' ''
0 0
'' ''
0 0
' '
' 0
b b b
b
x x x x
a a
a a
a a
a
a a
a a
4 3 2 1
4 3 2 1
44 34 33
24 23
22
14 13
12 11
'' '
'' '
'' ' 0
0 0
'' ''
0 0
' '
' 0
b b
b b
x x x x
a a a
a a
a
a a
a a
3 43
4 4
34 43
44
' ' ) ' ' ' '
' ' (
0 a m a x b m b
4 4
44 3
43
' ' ' '
'
' x a x b
a
33 3 34 4
43 343
a ' ' x a ' ' x m b ' '
m
33 43
43
' '
' ' a m a
'
44' '
a b ' ' '
40
4 3 2 1
4 3 2 1
44 34 33
24 23
22
14 13
12 11
'' '
'' '
'' ' 0
0 0
'' ''
0 0
' '
' 0
b b
b b
x x x x
a a a
a a
a
a a
a a
Otrzymaliśmy zatem układ równań z macierzą trójkątną górną.
Dalej postępujemy zgodnie z algorytmem dla macierzy trójkątnych.
Metoda Gaussa: uwagi
12 3
4 2
16 2
3 4
46 3
2 0
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
Układ postaci:
nie może być rozwiązany przy pomocy metody Gaussa – element podstawowy w pierwszym równaniu równy jest zero.
Rozwiązanie:
12 3
4 2
46 3
2 0
16 2
3 4
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
Wniosek: Należy tak przestawić równania, by element podstawowy był jak największy.
Metoda Gaussa: uwagi
Robimy tak nie tylko wtedy, gdy element podstawowy jest równy zeru.
Zawsze wybieramy równanie podstawowe z największym elementem podstawowym.
W przeciwnym wypadku rozwiązanie może być obarczone dużym błędem zaokrągleń.
Po każdym etapie algorytmu, równania są modyfikowane – zatem za każdym razem należy sprawdzić, które z równań najbardziej nadaje się na równanie
podstawowe.
Jeśli układ równań ma rozwiązania (nie jest sprzeczny), to zawsze można znaleźć równanie podstawowe z niezerowym elementem podstawowym.
W metodzie Gaussa należy wykonać łącznie 13
n
3 n
2
31n
mnożeń i dzieleń.Za pomocą wzorów Cramera (n+1)! mnożeń.
Dla
15
równań –16! = 20922789888000 15
3= 3375
Metoda eliminacji Gaussa-Jordana
Podobna do metody Gaussa. Dążymy do uzyskania macierzy diagonalnej.
n nn n
n
n n
b b b
a a
a
a a
a
a a
a
2 1
2 1
2 22
21
1 12
11
Macierz rozszerzona:
n n
nn n
n
n n
b b b
x x x
a a
a
a a
a
a a
a
2 1 2
1
2 1
2 22
21
1 12
11
n n
nn b
b b
x x x
a a
a
' ' '
' 0
0 0
0 0 '
0
0 0
'
2 1 2
1 22
11
16 25
. 6 5
. 7
6 5
. 6 7
6
12 3
2 4
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
16 25 . 6 5 . 7 1
6 5
. 6 7 6
12 3
2
4 (6)
1 0.5 0.75 3
1 0.5 0.75 3
1
13 7
8 0
12 2
4 0
3 75 . 0 5
. 0
1 (0.5)
0 1 0.5 3
0 1 0.5 3
8
11 3
0 0
3 5
. 0 1 0
5 . 4 5 . 0 0
1 (0.5)
0 0 1 113
3
1 11
0 0 5 .
0
113
6 29
6 16
1 0 0
0 1 0
0 0 1
Przykład:
16 25 . 6 5 . 7 1
6 5
. 6 7 6
4 12 4
3 4
2 4
4
16 25
. 6 5
. 7 1
6 5
. 6 7
6
3 75 . 0 5
. 0 1
13 7
8 0
0
3 75 . 0 5
. 0 1
4 12 4
2 4
4
13 7
8 0
3 5
. 0 1
0
3 75 . 0 5
. 0 1
3 11 3
0 3
0
3 5
. 0 1 0
5 . 4 5 . 0 0
1
3
1 11
0 0
3 5
. 0 1 0
5 . 4 5 . 0 0
1
3 / 11
6 / 29
6 / 16
3 2 1
x x x
Metoda eliminacji Gaussa-Jordana: uwagi
Łatwo uogólnić do rozwiązywania kilku układów równań jednocześnie:
n nn n
n
n n
b b b
a a
a
a a
a
a a
a
2 1
2 1
2 22
21
1 12
11
n n n nn n
n
n n
d d d
c c c
b b b
a a
a
a a
a
a a
a
2 1 2 1 2 1
2 1
2 22
21
1 12
11
Należy pamiętać o właściwym wyborze równania podstawowego (jak w metodzie Gaussa)
Liczba działań około 1.5 razy większa niż w metodzie Gaussa
Rozkład macierzy LU
Przedstawmy macierz [
A
] jako iloczyn: [A
] = [L] [U].Dany jest układ [A][x] = [b]. Macierz trójkątna dolna (Lower)
Macierz trójkątna górna (Upper)
[L][y] = [b]
[L][U][x] = [b]
Zatem:
[U][x] = [y]
Niech:
Czyli rozwiązanie problemu dwuetapowe:
1. Znajdujemy [y] (korzystając ze wzorów na układy równań z macierzą trójkątną dolną)
2. Znajdujemy [x] (korzystając ze wzorów na układy równań z macierzą trójkątną górną)
Metoda Doolittle’a
44 34 33
24 23
22
14 13
12 11
43 42
41
32 31
21
44 43
42 41
34 33
32 31
24 23
22 21
14 13
12 11
0 0
0
0 0
0
1 0 1
0 0
1
0 0
0 1
u u u
u u
u
u u
u u
l l
l
l l
l
a a
a a
a a
a a
a a
a a
a a
a a
A
st
21 21 11 31 31 11 41 41 11
1 column: l a / u ; l a / u ; l a / u
14 14
13 13
12 12
11
11
a ; u a ; u a ; u a
u
: 1 wiersz
u u
l u
l u
l u
l u
l u
l u
l u
l u
l
u u
l u
l u
u l u
l u
l u
l u
l
u u
l u
u l u
u l u
l
u u
u u
A
44 34
43 24
42 14
41 33
43 23
42 13
41 22
42 12
41 11
41
34 24
32 14
31 33
23 32 13
31 22
32 12
31 11
31
24 14
21 23
13 21 22
12 21 11
21
14 13
12 11
Kolumna 1:
u u
l u
l u
l u
l u
l u
l u
l u
l u
l
u u
l u
l u
u l u
l u
l u
l u
l
u u
l u
u l u
u l u
l
u u
u u
A
44 34
43 24
42 14
41 33
43 23
42 13
41 22
42 12
41 11
41
34 24
32 14
31 33
23 32 13
31 22
32 12
31 11
31
24 14
21 23
13 21 22
12 21 11
21
14 13
12 11
nd
21 12 22 22 21 13 23 23 21 14 24 24
22 22 21 12
23 23 21 13
24 24 21 14
2 : ; ;
row l u u a l u u a l u u a
u a l u
u a l u
u a l u
Wiersz 2:
nd
31 12 32 22 32 41 12 42 22 42
32 32 31 12 22
42 42 41 12 22
2 column: ;
( ) /
( ) /
l u l u a l u l u a
l a l u u
l a l u u
Kolumna 2: