metody numeryczne rozwiązywanie układów równań liniowych
TRANSCRIPT
Metody NumeryczneRozwiązywanie układów równań liniowych
Wojciech Szewczuk
Wojciech Szewczuk MN
Równania liniowe
Układ n równań liniowych z n niewiadomymi x1, x2, ..., xn można zapisać następująco:
a11x1 + a12x2 + ...+ a1nxn = b1
a21x1 + a22x2 + ...+ a2nxn = b2
.................................................
an1x1 + an2x2 + ...+ annxn = bn
aij , bi i rozwiązanie x1, x2, ..., xn są liczbami rzeczywistymi.Układ w formie macierzowej można wyrazić następująco:
a11 a12 . . . a1na21 a22 . . . a2n
......
. . ....
an1 an2 . . . ann
Ax = b
Wojciech Szewczuk MN
Własności macierzy
ilość wierszy, m, × ilość kolumn, n – rozmiar macierzy
maciecrz 1× n – wektor wierszowy
maciecrz m × 1 – wektor kolumnowy
macierz n × n – macierz kwadratowa o stopniu n
aij lub (A)ij – element znajdujący się na przecięciu i-tego wiersza i j-tej kolumny
(aij ) – macierz o elementach aij
AT – macierz transponowana – (AT)ij = aji
A = AT – macierz symetryczna
maciecrz stopnia n I =
1 0 . . . 00 1 . . . 0...
.... . .
...0 0 . . . 1
– macierz jednostkowa
IA = A = AI
Wojciech Szewczuk MN
Własności macierzy
λA, gdzie λ jest skalarem, a A maciecrzą zdefiniowana jest wzorem (λA)ij = λaij
suma dwóch macierzy (m× n) A+B określona jest wzorem (A+B)ij = aij + bij
iloczyn macierzy A o rozmiarze m × p i macierzy B o rozmiarze p × n jestmacierzą o rozmiarze m × n określoną wzorem
(AB)ij =p∑
k=1
aikbkj (1 ≤ i ≤ m, 1 ≤ j ≤ n)
mnożenie macierzy nie jest przemienne AB 6= BA
Wojciech Szewczuk MN
Własności macierzy
Wyznacznik
Definicja 1
Wyznacznikiem macierzy kwadratowej A,
A =
a11 a12 . . . a1na21 a22 . . . a2n
......
. . ....
an1 an2 . . . ann
nazywamy liczbę
detA =∑f
(−1)If a1α1a2α2 ...anαn ,
gdzie∑
f oznacza sumowanie po wszystkich permutacjach liczb naturalnych 1, 2, ..., n,a If to liczba inwersji w permutacji f .
Definicja ma niewielkie znaczenie praktyczne
Wojciech Szewczuk MN
Własności macierzy
Przykład 1
Obliczanie wyznacznika macierzy z definicji
n = 1 det(a11) = a11
n = 2możliwe permutacje: 1, 2 If = 0
2, 1 If = 1
detA =
∣∣∣∣ a11 a12
a21 a22
∣∣∣∣ = (−1)0a11a22 + (−1)1a12a21 =
= a11a22 − a12a21
Wojciech Szewczuk MN
Własności macierzy
można policzyć wyznacznik z rozwinięcia Laplace’a wzdłuż i-tego wiersza lubj-tej kolumny,
detA =n∑
j=1
aijAij ,
detA =n∑
j=1
ajkAjk ,
gdzie Aij jest dopełnieniem algebraicznym elementu aij macierzy A.
rozwinięcie Laplace’a wymaga n! mnożeń
praktyczne zastosowanie ma tylko dla małych n
Definicja 2
Dopełnienie algebraiczne elementu aij macierzy kwadratowej A stopnia n jest toiloczyn (−1)i+j oraz minora Mij , czyli wyznacznika podmacierzy stopnia n − 1powstałego z usunięcia i-tego wiersza oraz j-ej kolumny macierzy A.
Wojciech Szewczuk MN
Własności macierzy
UkładyAx = b
Bx = d
są równoważne, jeśli mają identyczne rozwiązania. Dzięki tej własności dany układrównań możemy przekształcić za pomocą pewnych elementarnych operacji na prostszyukład równoważny i dopiero ten rozwiązujemy.
Operacje elementarne:
1 przestawienie dwóch równań w układzie: Ei ↔ Ej (Ei oznacza i-te równanie)
2 pomnożenie obu stron przez liczbę różną od zera: λEi → Ei3 dodanie stronami do równania wielokrotności innego równania: Ei + λEj (i 6= j)
Wojciech Szewczuk MN
Własności macierzy
Twierdzenie 1
Jeśli układ równań wynika z innego układy przez skończony ciąg operacjielementarnych, to te dwa układy są równoważne.
Wojciech Szewczuk MN
Własności macierzy
AB = I
B jest prawą odwrotnością macierzy A
A jest lewą odwrotnością macierzy B
jeśli maciecrz ma prawą odwrotność, to nie musi być ona określonajednoznacznie, np.
[1 0 00 1 0
] 1 00 1α β
=
[1 00 1
]
Wojciech Szewczuk MN
Własności macierzy
Twierdzenie 2
Macierz kwadratowa ma co najwyżej jedną prawą odwrotność.
DowódWeźmy
AB = I
Oznaczmy j-tą kolumnę macierzy A przez A(j). Z AB = I mamy
n∑j=1
bjkA(j) = I(k) (1 ≤ k ≤ n).
Każda kolumna I jest więc kombinacją liniową kolumn A. Ponieważ kolumny macierzyjednostkowej są bazą przestrzeni Rn, więc to samo jest prawdą dla kolumn A. Z tegowynika, że współczynniki bjk w powyższych równościach są określone jednoznacznie.
Wojciech Szewczuk MN
Własności macierzy
Twierdzenie 3
Jeśli A i B są macierzami kwadratowymi takimi, że AB = I, to BA = I.
DowódWeźmy C = BA− I+ BAC = ABA− AI+ AB = A− A+ I = IC (podobnie jak B) jest więc prawą odwrotnością A. Z Twierdzenia 2 C = B, czyli
B = BA− I+ B
BA = I
Wojciech Szewczuk MN
Własności macierzy
odwrotność macierzy A (macierz odwrotną) oznaczamy A−1
jeśli macierz kwadratowa ma macierz odwrotną to jest nieosobliwa
jeśli macierz A jest nieosobliwa, to układ równań
Ax = b
ma rozwiązaniex = A−1b
Odwrotność A−1 pozwala znaleźć wektor x. Nie należy jednak rozwiązywaćukładów równań w ten sposób. Istnieją metody, które są efektywniejsze i dajądokładniejsze wyniki.
Wojciech Szewczuk MN
Własności macierzy
Twierdzenie 4
Jeśli A jest macierzą nieosobliwą, to macierz
A−1 =1
detAAD
jest macierzą odwrotną do macierzy A.
Macierzą dołączaną AD macierzy kwadratowej A = (aik ) nazywamy macierztransponowaną macierzy utworzonej z dopełnień algebraicznych elementów macierzyA, tzn.
AD =
A11 A21 . . . An1A11 A22 . . . An2
......
. . ....
A1n A2n . . . Ann
gdzie Aik jest dopełnieniem algebraicznym elementu aik .UWAGA! Istnieją efektywniejsze sposoby wyznaczania macierzy odwrotnych.
Wojciech Szewczuk MN
Własności macierzy
Przykład 2
Oblicz macierz odwrotną do macierzy
A =
1 0 −10 2 −3−4 1 3
A =
∣∣∣∣∣∣1 0 −1 1 00 2 −3 0 2−4 1 3 −4 1
∣∣∣∣∣∣detA =1∗2∗3+0∗(−3)∗(−4)+(−1)∗0∗1−((−1) ∗ 2 ∗ (−4) + 1 ∗ (−3) ∗ 1 + 0 ∗ 0 ∗ 3) = 1
Wojciech Szewczuk MN
Własności macierzy
Przykład c.d.
Obliczamy dopełnienia algebraiczne elementów macierzy A:
A11 =∣∣∣∣ 2 −3
1 3
∣∣∣∣ = 9
A12 = −∣∣∣∣ 0 −3−4 3
∣∣∣∣ = 12
A13 =∣∣∣∣ 0 2−4 1
∣∣∣∣ = 8
A21 = −∣∣∣∣ 0 −1
1 3
∣∣∣∣ = −1
...
Wojciech Szewczuk MN
Własności macierzy
Przykład c.d.
AD =
9 −1 212 −1 38 −1 2
A−1 =1
1∗
9 −1 212 −1 38 −1 2
Wojciech Szewczuk MN
Własności macierzy
operacje elementarne możemy traktować jako mnożenie macierzy
macierzą elementarną jest macierz stopnia n, która powstaje z macierzy
jednostkowej stopnia n przez wykonanie którejś z operacji elementarnych1 zamiana dwóch wierszy: As ↔ At2 mnożenie wiersza przez niezerową stałą: λAs → As3 dodawanie do wiersza wielokrotności innego wiersza: As + λAt → As
Wojciech Szewczuk MN
Własności macierzy
Każdą z operacji z poprzedniego slajdu można wykonać, mnożąc macierz A z lewejstrony przez pewną macierz elementarną.
Przykład 3 1 0 00 0 10 1 0
a11 a12 a13a21 a22 a23a31 a32 a33
=
a11 a12 a13a31 a32 a33a21 a22 a23
1 0 0
0 λ 00 0 1
a11 a12 a13a21 a22 a23a31 a32 a33
=
a11 a12 a13λa21 λa22 λa23a31 a32 a33
1 0 0
0 1 00 λ 1
a11 a12 a13a21 a22 a23a31 a32 a33
=
a11 a12 a13a21 a22 a23
λa21 + a31 λa22 + a32 λa23 + a33
Wojciech Szewczuk MN
Własności macierzy
EmEm−1...E2E1A – ciąg operacji elementarnych na A
jeśli maciecrz jest nieosobliwa, to stosując do niej ciąg operacji elementarnychmożemy ją zredukować do I
EmEm−1...E2E1A = I
A−1 = EmEm−1...E2E1I – odwrotność A−1 można otrzymać stosując do I tensam ciąg operacji
Wojciech Szewczuk MN
Własności macierzy
Przykład 4
Oblicz macierz odwrotną do macierzy
A =
1 0 −10 2 −3−4 1 3
za pomocą przekształceń elementarnych.Dostawiamy do A macierz jednostkową
A =
1 0 −1 1 0 00 2 −3 0 1 0−4 1 3 0 0 1
Wojciech Szewczuk MN
Własności macierzy
Przykład c.d.
Stosując przekształcenia elementarne dążymy po lewej stronie do macierzyjednostkowej
A =
1 0 −1 1 0 00 2 −3 0 1 00 1 −1 4 0 1
w3 + 4w1
A =
1 0 −1 1 0 00 0 −1 −8 1 −20 1 −1 4 0 1
w2 − 2w3
A =
1 0 −1 1 0 00 0 −1 −8 1 −20 1 −1 4 0 1
w2 ∗ (−1) w2 ↔ w3
A =
1 0 −1 1 0 00 1 −1 4 0 10 0 1 8 −1 2
w2 ∗ (−1) w2 ↔ w3
Wojciech Szewczuk MN
Własności macierzy
Przykład c.d.
A =
1 0 0 9 −1 20 1 0 12 −1 30 0 1 8 −1 2
w2 + w3 w1 + w3
Ostatecznie
A−1 =
9 −1 212 −1 38 −1 2
Wojciech Szewczuk MN
Własności macierzy
Twierdzenie 5
Dla macierzy kwadratowej A stopnia n następujące własności są równoważne:
1 Istnieje odwrotność macierzy A, czyli ta macierz jest nieosobliwa.
2 Wyznacznik macierzy A jest różny od 0.
3 Wiersze macierzy A tworzą bazę przestrzeni Rn.
4 Kolumny macierzy A tworzą bazę przestrzeni Rn.
5 Odwzorowanie Rn na Rn określone przez macierz A jest iniekcją (jest wzajemniejednoznaczne).
6 Odwzorowanie z 5 jest suriekcją (odwzorowanie „na”).
7 Z równości Ax = 0 wynika, że x = 0.
8 Dla każdego b ∈ Rn istnieje dokładnie jedno x ∈ Rn takie, że Ax = b.9 Macierz A jest iloczynem macierzy elementarnych.
10 Liczba 0 nie jest wartością własną macierzy A.
Wojciech Szewczuk MN
Własności macierzy
Definicja 3
Macierz A jest dodatnio określona, jeśli xTAx > 0 dla każdego niezerowego wektorax ∈ Rn. xTAx nazywamy formą kwadratową.
Przykład 5
A =
[2 11 2
]
xTAx =[
x1 x2] [ 2 1
1 2
] [x1x2
]= (x1 + x2)2 + x2
1 + x22 > 0,
jeśli x1 6= 0 lub x2 6= 0.
W praktyce z definicji nie jest łatwo ustalić, czy macierz jest dodatnio określona.
Definicja 4
Macierz A jest dodatnio półokreślona, jeśli xTAx ≥ 0 dla każdego x ∈ Rn.
Wojciech Szewczuk MN
Własności macierzy – macierze blokowe
Macierze można podzielić na podmacierze (bloki) i mnożyć macierze tak, jakby blokibyły liczbami:
1 2 1 −1 0 1−1 1 1 0 −1 10 1 −1 1 0 11 −1 0 0 1 01 0 1 2 1 0
1 0 1 2 1−1 1 2 0 11 0 1 1 2−1 1 0 0 12 1 0 −2 10 1 1 −1 1
=
1 2 7 2 5−3 1 3 0 2−3 3 2 −2 14 0 −1 0 12 3 2 1 6
Bloki możemy oznaczyć symbolami i powyższą równość przepisać w formie:[A11 A12A21 A22
] [B11 B12B21 B22
]=
[C11 C12C21 C22
]
Cij =2∑
s=1
AisBsj
np.
C11 = A11B11 + A12B21 =[
1 2] [ 1 0 1−1 1 2
]+[
1 −1 0 1]
1 0 1−1 1 02 1 00 1 1
=
=[
1 2 7]
Wojciech Szewczuk MN
Własności macierzy – macierze blokowe
Twierdzenie 6
Przyjmijmy, że macierze A, B, C są podzielone na bloki w następujący sposób
A =
A11 A12 . . . A1nA21 A22 . . . A2n
.
.
....
. . ....
An1 An2 . . . Ann
B =
B11 B12 . . . B1nB21 B22 . . . B2n
.
.
....
. . ....
Bn1 Bn2 . . . Bnn
C =
C11 C12 . . . C1nC21 C22 . . . C2n
.
.
....
. . ....
Cn1 Cn2 . . . Cnn
Jeśli każdy z iloczynów AisBsj jest określony i jeśli Cij =
∑ns=1 AisBsj to C = AB.
Wojciech Szewczuk MN
Układy równań liniowych
a11 a12 . . . a1n
a21 a22 . . . a2n....... . .
...an1 an2 . . . ann
x1
x2...xn
=
b1
b2...bn
Ax = b
Wojciech Szewczuk MN
Układy równań liniowych
Układ z macierzą przekątniowąa11 0 . . . 00 a22 . . . 0...
.... . .
...0 0 . . . ann
x1x2...xn
=
b1b2...bn
x =
b1/a11b2/a22
...bn/ann
jeśli dla pewnego i jest aii = 0 i bi = 0, to xi może być dowolną liczbą
jeśli aii = 0 i bi 6= 0, to układ nie ma rozwiązań
Wojciech Szewczuk MN
Układy równań liniowych
Układ z macierzą trójkątną dolnąa11 0 . . . 0a21 a22 . . . 0
......
. . ....
an1 an2 . . . ann
x1x2...xn
=
b1b2...bn
załóżmy aii 6= 0
z pierwszego równania wyznaczmy x1
znane już x1 możemy podstawić do drugiego równania i wyznaczyć x2
postępując analogicznie możemy wyznaczyć kolejno x3, x4, ..., xn
otrzymaliśmy algorytm nazywany podstawieniem w przód
Wojciech Szewczuk MN
Układy równań liniowych – podstawienie w przód
input n, (aij ), (bi )for i = 1 to n do
xi ← (bi −∑i−1
j=1 aij xj )/aiiend dooutput (xi )
Wojciech Szewczuk MN
Układy równań liniowych – podstawienie wstecz
Układ z macierzą trójkątną górnąa11 a12 . . . a1n0 a22 . . . a2n...
.... . .
...0 0 . . . ann
x1x2...xn
=
b1b2...bn
input n, (aij ), (bi )for i = n to 1 step −1 do
xi ← (bi −∑n
j=i+1 aij xj )/aiiend dooutput (xi )
Wojciech Szewczuk MN
Układy równań liniowych – rozkład LU
Jeśli macierz A można wyrazić jako iloczyn maciecrzy trójkątnej dolenj L i trójkątnejgórnej U
L =
l11 0 . . . 0l21 l22 . . . 0...
.... . .
...ln1 ln2 . . . lnn
U =
u11 u12 . . . u1n0 u22 . . . u2n...
.... . .
...0 0 . . . unn
A = LU
to rozwiązanie układu równańAx = b
można podzielić na dwa etapy
rozwiązanie Lz = b względem z
rozwiązanie Ux = z względem x
Wojciech Szewczuk MN
Układy równań liniowych
nie każda macierz A ma rozkład LU
równość A = LU nie określa czynników L i U jednoznaczne
dla każdego i można wybrać dowolną wartość różną od 0 dla jednej z liczb lii ,uii (ale nie obu)
w szczególności można przyjąć, że lii = 1 lub uii = 1 dla każdego i (dostaniemyodpowiednio macierz jedynkową trójkątną dolną lub macierz jedynkowątrójkątną górną)
Wojciech Szewczuk MN
Rozkład LU
Istnieją różne wersje rozkładów LU
Doolittle’a
Crouta
Cholesky’ego
Eliminacja Gaussa
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Rozważmy układ: 6 −2 2 4
12 −8 6 103 −13 9 3−6 4 1 −18
x1x2x3x4
=
123427−38
odejmijmy stronami pierwsze równanie pomnożone przez 2 od drugiego
odejmijmy stronami pierwsze równanie pomnożone przez 12 od trzeciego
odejmijmy stronami pierwsze równanie pomnożone przez −1 od czwartego
liczby 2, 12 , −1 nazywamy mnożnikami dla pierwszego kroku eliminacji
liczbę 6 używaną jako dzielnik przy obliczaniu 2, 12 , −1 nazywamy elementem
głównym
pierwszy wiersz w pierwszym kroku nazywamy wierszem głównym
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Po wykonaniu pierwszego kroku otrzymamy6 −2 2 40 −4 2 20 −12 8 10 2 3 −14
x1x2x3x4
=
121021−26
w drugim kroku wierszem głównym jest wiersz drugi
elementem głównym jest liczba −4
w drugim kroku mnożnikami są liczby 3 i − 12
odejmijmy wiersz drugi pomnożony przez 3 od trzeciego
odejmijmy wiersz drugi pomnożony przez − 12 od czwartego
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Po wykonaniu drugiego kroku otrzymamy6 −2 2 40 −4 2 20 0 2 −50 0 4 −13
x1x2x3x4
=
1210−9−21
w trzecim, ostatnim kroku wierszem głównym jest wiersz trzeci
elementem głównym jest liczba 2
mnożnikiem jest liczba 2
odejmijmy wiersz trzeci pomnożony przez 2 od czwartego
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Ostatecznie otrzymamy układ o macierzy trójkątnej górnej6 −2 2 40 −4 2 20 0 2 −50 0 0 −3
x1x2x3x4
=
1210−9−3
x =
1−3−21
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Mnożniki użyte do przekształcenia układu są elementami macierzy jedynkowejtrójkątnej dolnej (każdy mnożnik występuje na pozycji zera w macierzy układu, doktórego powstania posłużył):
L =
1 0 0 02 1 0 012 3 1 0−1 − 1
2 2 1
U =
6 −2 2 40 −4 2 20 0 2 −50 0 0 −3
A = LU
6 −2 2 4
12 −8 6 103 −13 9 3−6 4 1 −18
=
1 0 0 02 1 0 012 3 1 0−1 − 1
2 2 1
6 −2 2 40 −4 2 20 0 2 −50 0 0 −3
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
macierz Ak+1 powstaje w k-tym kroku eliminacji Gaussa
aby otrzymać zera w k-tej kolumnie pod elementem głównym a(k)kk , odejmujemy
odpowiednie wielokrotności k-tego wiersza od wierszy leżących niżej (wiersze1, 2, ..., k pozostają bez zmian)
a(k+1)ij =
a(k)ij gdy i ≤ k
a(k)ij − (a
(k)ik /a
(k)kk )a
(k)kj gdy i ≥ k + 1, j ≥ k + 1
0 gdy i ≥ k + 1, j ≤ k
U = A(n)
L określamy
lik =
a(k)ik /a
(k)kk gdy i ≥ k + 1
1 gdy i = k0 gdy i ≤ k − 1
eliminacja załamuje się, jeśli któryś z elementów głównych znika
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa
Twierdzenie 7
Jeśli wszystkie elementy główne a(k)kk są różne od zera, to A = LU
Dowód
a(k+1)ij = a
(k)ij gdy i ≤ k lub j ≤ k − 1
ukj = a(n)kj = a
(k)kj
lik = 0 gdy k > iukj = 0 gdy k > jgdy i ≤ j
(LU)ij =n∑
k=1
likukj =i∑
k=1
liku(k)kj =
i∑k=1
lika(k)kj =
i−1∑k=1
lika(k)kj + liia
(i)ij =
=
i−1∑k=1
(a(k)ik /a
(k)kk )a
(k)kj + a
(i)ij =
i−1∑k=1
(a(k)ij − a
(k+1)ij ) + a
(i)ij = a
(1)ij = aij
gdy i > j
(LU)ij =
j∑k=1
lika(k)kj =
j∑k=1
(a(k)ij − a
(k+1)ij ) = a
(1)ij − a
(j+1)ij = a
(1)ij = aij
bo a(k)ij = 0 dla i ≥ j + 1 i k ≥ j + 1.
Wojciech Szewczuk MN
Podstawowa eliminacja Gaussa – algorytm
input n, (aij )for k = 1 to n − 1 do
for i = k + 1 to n doz ← aik/akkaik ← 0for j = k + 1 to n doaij ← aij − zakj
end doend do
end dooutput (aij )
Wojciech Szewczuk MN
Eliminacja Gaussa – elementy główne
Rozważmy układ [0 11 1
] [x1
x2
]=
[12
]
Wojciech Szewczuk MN
Eliminacja Gaussa – elementy główne
Rozważmy układ [ε 11 1
] [x1x2
]=
[12
],
gdzie ε jest małą liczbą i ε 6= 0. Stosując algorytm Gaussa otrzymamy[ε 10 1− ε−1
] [x1x2
]=
[1
2− ε−1
],
x2 = (2− ε−1)/(1− ε−1), x1 = (1− x2)ε−1
w obliczeniach komputerowych, gdy ε jest dostatecznie małe
2− ε−1 = 1− ε−1 = ε−1 ⇒ x2 = 1 x1 = 0
rozwiązanie dokładne x1 = 11−ε ≈ 1, x2 = 1−2ε
1−ε ≈ 1
Wojciech Szewczuk MN
Eliminacja Gaussa – elementy główne
problemy powoduje nie to, że element główny jest mały, ale że jest taki wporównaniu z innymi elementami wiersza w jakim się znajduje
kłopoty znikają po przestawieniu równań[1 1ε 1
]=
[x1x2
]=
[21
]z eliminacji dostaniemy[
1 10 1− ε
]=
[x1x2
]=
[2
1− 2ε
]x2 = 1 i x1 = 2− x2 = 1
Wojciech Szewczuk MN
Eliminacja Gaussa – algorytm
dobry algorytm musi uwzględniać przestawianie równań układu
nie przenosimy wierszy w pamięci komputera, ale inaczejwybieramy wiersze główne. Zamiast naturalnego porządku1, 2, ..., n − 1, wybieramy wiersze o wskaźnikachp1, p2, ..., pn−1, gdzie (p1, p2, ..., pn−1) jest pewną permutacjązbioru (1, 2, ..., n).
Wojciech Szewczuk MN
Eliminacja Gaussa – algorytm
input n, (aij ), (pi )for k = 1 to n − 1 do
for i = k + 1 to n doz ← api k
/apk kapi k← 0
for j = k + 1 to n doapi j← api j
− zapk jend do
end doend dooutput (aij )
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych
Ax = b
szukamy pewnej permutacji (p1, p2, ..., pn) zbioru (1, 2, ..., n) i rozkładu
LU = PA,
gdzie P jest taka, że (P)ij = δpi j
Lz = Pb
Ux = z
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych
wyznaczamy skalę każdego wiersza
si = max1≤j≤n
|aij | (1 ≤ i ≤ n)
tworzymy startowy wariant (1, 2, ..., n) permutacji (p1, p2, ..., pn)
w pierwszym kroku rozkładu wyznaczamy pierwszy wiersz główny – ten dlaktórego |ai1|/si jest największe (załóżmy, że jego wskaźnikiem jest j)
w tablicy p przestawiamy p1 z pj
teraz p1 jest wskaźnikiem wybranego wiersza głównego ⇒ |ap11|/sp1 ≥ |ai1|/sidla 1 ≤ i ≤ n
odejmujemy odpowiednie wielokrotności wiersza głównego od pozostałychwierszy macierzy A
w dalszych obliczenia wiersz p1 nie zmienia się
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych
załóżmy, że po k − 1 przekształceniach A chcemy wyzerować jej k-tą kolumnę
wybieramy największą z liczb |api k |/spi dla k ≤ i ≤ n (załóżmy, że jej wskaźnikto j)
przestawiamy pk z pj
odejmujemy wiersz pk pomnożony przez api k/apkk od wiersz pi (k + 1 ≤ i ≤ n)
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych
Przykład 6
A =
2 3 −61 −6 83 −2 1
p = (1, 2, 3)
s = (6, 8, 3)
z ilorazów 2/6, 1/8, 3/3 największy jest trzeci
pierwszym wierszem głównym będzie wiersz trzeci
przestawiamy p1 z p3 ⇒ p = (3, 2, 1)
od wierszy pierwszego i drugiego odejmujemy takie wielokrotności wierszatrzeciego, aby wyzerować w nich elementy pierwszej kolumny 2
3133 − 20
313 − 16
3233
3 −2 1
liczby na niebiesko są mnożnikami
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych
Przykład 7
c.d.
w kolejnym kroku wybór wiersza głównego zależy od:
|ap22|/sp2 =163 /8 = 2/3
|ap32|/sp3 =133 /6 = 13/18
większa jest ta druga, j = 3 i przestawiamy p2 z p3
p = (3, 1, 2) 23
133 − 20
313 − 16
13 − 713
3 −2 1
P =
0 0 11 0 00 1 0
PA =
3 −2 12 3 −61 −6 8
=
1 0 023 1 013 − 16
13 1
3 −2 10 13
3 − 203
0 0 − 713
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych – algorytm
Algorytm rozkładu dla eliminacji Gaussa ze skalowalnym wyborem wierszy głównych:input n, (aij )for i = 1 to n do
pi ← isi ← max
1≤j≤n|aij |
end dofor k = 1 to n − 1 do
wybór takiego j ≥ k, że|apj k |/spj ≥ |api k |/spi dla i = k, k + 1, ..., n
pk ↔ pjfor i = k + 1 to n doz ← api k
/apk kapi k← z
for j = k + 1 to n doapi j← api j
− zapk jend do
end doend dooutput (aij ), (pi )
Wojciech Szewczuk MN
Skalowany wybór wierszy głównych – algorytm
Rozwiązanie Ax = b po znalezieniu PA = LU wyznaczamy za pomocą:
input n, (aij ), (pi ), (bi )for k = 1 to n − 1 do
for i = k + 1 to n dobpi ← bpi − api k
bpkend do
end dofor i = n to 1 step -1 do
xi ← (bpi −∑n
j=i+1 api jxj )/api i
end dooutput (xi )
pierwsza część rozwiązuje układ Lz = Pb
druga część rozwiązuje układ Ux = z
Wojciech Szewczuk MN
Wybór elementów głównych
częściowy wybór elementów głównych polega na tym, że k-ty z nich jest tymspośród n − k + 1 elementów dolnej części k-tej kolumny A(k), który manajwiększą wartość bezwzględną
pełny wybór elementów głównych polega na tym, że badamy (n − k + 1)2
elementów w dolnej prawej części macierzy A(k)
zwykle pełny wybór elementów głównych, bardziej kosztowny obliczeniowo, niema istotnych zalet w porównaniu z częściowym wyborem
Wojciech Szewczuk MN
PA = LU
Załóżmy, że p1, p2, ..., pn są wskaźnikami kolejnych wierszy głównych. Dla A(1) = Amacierze A(2), A(3), ...,A(n) określone są wzorem rekurencyjnym
a(k+1)pi j
=
a(k)pi j
gdy i ≤ k lub i > k > j
a(k)pi j− (a
(k)pi k/a
(k)pkk
)a(k)pk j
gdy i > k, j > k
a(k)pi k/a
(k)pkk
gdy i > k, j = k
Twierdzenie 8
Niech macierze: permutacji P, trójkątna górna U i jedynkowa trójkątna dolna L będąokreślone odpowiednio wzorami (P)ij = δpi j , uij = a
(n)pi j
dla j ≥ i oraz lij = a(n)pi j
dlaj < i Wtedy PA = LU.
Wojciech Szewczuk MN
PA = LUDowódZ definicji A(k) mamy
ukj = a(n)pk j
= a(k)pk j
(j ≥ k)
lik = a(n)pi k
= a(k+1)pi k
= a(k)pi k/a
(k)pkk
(i ≥ k)
wiersz pk macierzy ustala się w k-tym kroku, a k-tą kolumnę w (k + 1)-szymkroku
wzór dla lik jest poprawny dla i = k, bo daje wtedy wartość 1
Załóżmy, że i ≤ j
(LU)ij =i∑
k=1
likukj =
i−1∑k=1
(a(k)pi k/a
(k)pkk
)a(k)pk j
+liia(i)pi j
=
i−1∑k=1
(a(k)pi j−a(k+1)
pi j)+a
(i)pi j
= a(1)pi j
= api j
gdy i > j
(LU)ij =
j∑k=1
likukj =
j−1∑k=1
(a(k)pi k/a
(k)pkk
)a(k)pk j
+ (a(j)pi j/a
(j)pj j
)a(j)pj j
=
=
j−1∑k=1
(a(k)pi j− a
(k+1)pi j
) + a(j)pi j
= a(1)pi j
= api j
Wojciech Szewczuk MN
PA = LU
Z drugiej strony
(PA)ij =n∑
k=1
(P)ikakj =n∑
k=1
δpi kakj = api j
Dla wszystkich par (i , j) zachodzi więc (PA)ij = (LU)ij
Wojciech Szewczuk MN
Koszt obliczeń
czas wykonania mnożenia i dzielenia jest zwykle podobny
czas wykonania mnożenia i dzielenia jest dłuższy niż dodawania i odejmowania
przyjęło się mierzyć koszt obliczeń liczbą długich działań (op) – parmnożenie-dodawanie itp.
Twierdzenie 9
Jeśli eliminację Gaussa wykonano ze skalowanym wyborem elementów głównych, torozwiązanie m układów Ax = b o wspólnej macierzy A i m różnych wektorach bwymaga około 1
3n3 + (m + 1
2 )n2 długich działań.
odwrotność A−1 można obliczyć rozwiązując n układów Ax(i) = ei
Wojciech Szewczuk MN
Macierze dominujące przekątniowo
Definicja 5
Macierz jest dominująca przekątniowo jeśli
|aii | >n∑
j=0,j 6=i
|aij | (1 ≤ i ≤ n)
Przykład 8 4 −1 0 0 −1−1 4 0 −1 0−1 0 4 0 −10 −1 −1 −4 −10 0 0 0 −6
Wojciech Szewczuk MN
Macierze dominujące przekątniowo
Jeśli macierz układu równań jest dominująca przekątniowo, to w pierwszymkroku eliminacji Gaussa wierszem głównym może być wiersz pierwszy (na mocyDefinicji 5 a11 jest różny od 0).
Twierdzenie 10
Eliminacja Gaussa bez wyboru elementów głównych zachowuje dominacjęprzekątniową macierzy.
Wniosek 1
Każda macierz dominująca przekątniowo jest nieosobliwa i ma rozkład LU.
Wniosek 2
Niech macierz będzie dominująca przekątniowo. Jeśli w eliminacji Gaussa zeskalowalnym wyborem wierszy głównych tablicę skal oblicza się na nowo po każdymkroku, to wiersze główne mają naturalny porządek: 1, 2, ..., n, czyli można pominąćkroki określające wybór tych wierszy.
Wojciech Szewczuk MN
Układy trójprzekątniowe
Definicja 6
Macierz A jest trójprzekątniowa jeśli aij = 0 dla |i − j | > 1.
d1 c1a1 d2 c2
a2 d3 c3
. . .. . .
. . .an−2 dn−1 cn−1
an−1 dn
x1x2x3...
xn−1xn
=
b1b2b3...
bn−1bn
Wojciech Szewczuk MN
Układy trójprzekątniowe
d1 c1a1 d2 c2
a2 d3 c3
. . .. . .
. . .an−2 dn−1 cn−1
an−1 dn
x1x2x3
.
.
.xn−1xn
=
b1b2b3
.
.
.bn−1bn
załóżmy, że macierz nie wymaga stosowania wyboru elementów głównych (np.jest symetryczna dodatnio określona)
możemy użyć zwykłej eliminacji Gaussa z dodatkiem jednoczesnego
przetwarzania wektora bw pierwszym kroku od wiersza 2 odejmujemy taką wielokrotność wiersza 1, żeby wyzerowaćelement na pozycji zajmowanej dotąd przez a1d2 i b2 zmieniają się, ale nie c2mnożnikiem jest a1/d1w tym kroku wykonujemy podstawienia d2 ← d2 − (a1/d1)c1 oraz b2 ← b2 − (a1/d1)b1następne kroki eliminacji w przód są takie samepodstawienie wstecz zaczyna się od xn ← bn/dndrugim krokiem jest xn−1 ← (bn−1 − cn−1xn)/dn−1pozostałe podstawienia są podobne
kompletny algorytm o nazwie tri przedstawiony jest na kolejnym slajdzie
Wojciech Szewczuk MN
Algorytm tri
input n, (ai ), (bi ), (ci ), (di )for i = 2 to n do
di ← di − (ai−1/di−1)ci−1bi ← bi − (ai−1/di−1)bi−1
end doxn ← bn/dnfor i = n − 1 to 1 step -1 do
xi ← (bi − ci xi+1)/diend dooutput (xi )
Wojciech Szewczuk MN
Normy wektorów
Definicja 7
W przestrzeni wektorowej V norma jest funkcją ‖·‖ określoną na V , o wartościachrzeczywistych nieujemnych, która ma trzy własności:
‖x‖ > 0 dla x 6= 0, x ∈ V ,
‖λx‖ = |λ| ‖x‖ dla λ ∈ R, x ∈ V ,
‖x + y‖ ≤ ‖x‖+ ‖y‖ dla x , y ∈ V (nierówność trójkąta).
Normę ‖x‖ można uznać za długość albo wielkość wektora x .Jest to uogólnienie pojęcia wartości bezwzględnej
Wojciech Szewczuk MN
Normy wektorów
Definicja 8
‖x‖2 :=(∑n
i=1 x2i
)1/2, gdzie x = (x1, x2, ..., xn)T
‖x‖∞ := max1≤i≤n
|xi |
‖x‖1 :=∑n
i=1 |xi |
Przykład 9
Weźmy wektoryx := (4, 4− 4) v := (0, 5, 5) w := (6, 0, 0)
‖x‖1 ‖x‖2 ‖x‖∞x 12 6.93 4v 10 7.07 5w 6 6 6
Wojciech Szewczuk MN
Normy wektorów
Rozważmy przestrzeń R2 oraz zbiór{x : x ∈ R2, ‖x‖ ≤ 1}.
Rysunek po lewej przedstawia kostkę(kulę) jednostkowąw dwuwymiarowej przestrzeni.
Wojciech Szewczuk MN
Normy macierzy
Formalnie rzecz biorąc wystarczy, żeby norma macierzy spełniała warunki podane dlanormy wektorowej.
Definicja 9
Dla ustalonej normy ‖·‖ wektora indukowana przez nią norma macierzy kwadratowej Astopnia n jest określona wzorem
‖A‖ := sup‖u‖=1
{‖Au‖ : u ∈ Rn} (1)
Twierdzenie 11
Dla dowolnej normy ‖·‖ w Rn wzór 1 określa normę w przestrzeni liniowej macierzystopnia n.
Z definicji 9 wynika, że‖Ax‖ ≤ ‖A‖ ‖x‖ x ∈ Rn
Wojciech Szewczuk MN
Normy macierzy
Twierdzenie 12
Norma macierzowa indukowana przez normę wektorową „nieskończoność” wyraża sięwzorem
‖A‖∞ = max1≤i≤n
n∑j=1
|aij |
Twierdzenie 13
Norma macierzowa indukowana przez normę wektorową euklidesową zwana jest normąspektralną i wyraża się wzorem
‖A‖2 = sup‖x‖2=1
‖Ax‖2
lub równoważnie
‖A‖2 =√ρ(ATA),
gdzie promień spektralny ρ(ATA) jest z definicji największą wartością własną macierzyATA.
Wojciech Szewczuk MN
Normy macierzy
Oprócz poznanych własności, norma macierzowa indukowana przez dowolną normęwektorową ma jeszcze następujące własności:
‖I‖ = 1
‖AB‖ ≤ ‖A‖ ‖B‖
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Rozważmy układ Ax = b o macierzy kwadratowej nieosobliwej.Jeśli macierz A−1 jest zaburzona (tzn. zamiast macierzy A−1 mamy macierz B), tozaburzenie przeniesie się na rozwiązanie x = A−1b , zamiast którego otrzymamyx = Bb .Zbadajmy jak duże jest zaburzenie rozwiązania.Dla dowolnej normy wektorowej i indukowanej przez nią normy macierzowej wielkośćzaburzenia bezwzględnego wynika z nierówności
‖x− x‖ = ‖x− Bb‖ = ‖x− BAx‖ = ‖(I− BA)x‖ ≤ ‖I− BA‖ ‖x‖ ,
a zaburzenia względnego‖x− x‖‖x‖
≤ ‖I− BA‖ .
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Przykład 10
Załóżmy, że zamiast b mamy wektor zaburzony b. Niech x i x spełniają równania
Ax = b
Ax = b
Zbadajmy jak różnią się x i x. Jeśli macierz A jest nieosobliwa to
||x− x|| = ||A−1b− A−1b|| = ||A−1(b− b)|| ≤ ||A−1|| ||b− b||
Jest to zaburzenie bezwzględne.Zaburzenie względne otrzymamy zakładając b 6= 0.
||x− x|| ≤ ||A−1|| ||b− b|| = ||A−1|| ||Ax||||b− b||||b||
≤ ||A−1|| ||A|| ||x||||b− b||||b||
Stąd otrzymamy||x− x||||x||
≤ κ(A)||b− b||||b||
gdzie κ(A) = ||A−1|| ||A||.
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Definicja 10
Wielkośćκ(A) := ‖A‖
∥∥A−1∥∥
nazywamy wskaźnikiem uwarunkowania.
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Własności wskaźnika uwarunkowania:
wskaźnik uwarunkowania zależy od wybranej normy macierzy (κ∞(A), κ2(A),...)
κ(A) ≥ 1
błąd względny obliczonego rozwiązania x nie przewyższa błędu względnego
prawej strony pomnożonego przez wskaźnik uwarunkowania
⇒ jeśli wskaźnik uwarunkowania jest mały to małe zaburzenie prawejstrony b nieznacznie zaburzy rozwiązanie x
⇒ jeśli wskaźnik uwarunkowania jest duży to małe zaburzenie prawej
strony b znacznie zaburzy rozwiązanie x
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Przykład 11
Weźmy macierz
A =
[1 1 + ε
1− ε 1
]A−1 = ε−2
[1 −1− ε
−1 + ε 1
]i ε > 0.Z Twierdzenia 12 otrzymamy||A||∞ = 2 + ε i ||A−1||∞ = ε−2 (2 + ε)
κ (A) = [(2 + ε) /ε]2 > 4/ε2
ε ≤ 0.01⇒ κ (A) > 40 000
A więc małe zburzenie względne wektora b może spowodować 40 000 razy większezaburzenie względne rozwiązania układu
Ax = b
.
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Rozwiązując numerycznie układ równań
Ax = b
otrzymujemy zamiast rozwiązania dokładnego x rozwiązanie przybliżone x.Jego dokładność sprawdzamy porównując Ax z b.
r := b− Ax – wektor residualny
e := x− x – wektor błędu
Ae = r
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Twierdzenie 14
Wektory residualny i wektor błędu oraz wskaźnik uwarunkowania spełniają nierówność
1
κ(A)‖r‖‖b‖≤‖e‖‖x‖≤ κ(A)
‖r‖‖b‖
. (2)
Wojciech Szewczuk MN
Dowód Twierdzenia 14.
Prawa strona nierówności 2 jest równoważna temu, że
||e|| ||b|| ≤ ||A|| ||A−1|| ||r|| ||x||
a to jest prawdą na podstawie:
||e|| ||b|| = ||A−1r || ||Ax|| ≤ ||A−1|| ||r|| ||A|| ||x||.
Lewą stronę nierówności 2 możemy zapisać w postaci
||r|| ||x|| ≤ ||A|| ||A−1|| ||b|| ||e||
a to mamy z faktu, że
||r|| ||x|| = ||Ae|| ||A−1b|| ≤ ||A|| ||e|| ||A−1|| ||b||
Wojciech Szewczuk MN
Wskaźnik uwarunkowania
Macierz A o dużym κ(A) nazywamy źle uwarunkowaną. W takim przypadkurozwiązanie układu Ax = b może być bardzo czułe na zmiany wektora b.
Macierz A o małym κ(A) nazywamy dobrze uwarunkowaną.
Wojciech Szewczuk MN
Układy o kłopotliwych macierzach
Wstępne wyważanie wierszy.
Wstępne wyważanie kolumn.
Pełny wybór elementów głównych.
Wyważanie lub skalowanie w każdym kroku eliminacji.
Poprawianie iteracyjne rozwiązania końcowego.
Wojciech Szewczuk MN
Wyważanie wierszy
Wyważanie wierszy polega na dzieleniu wszystkich elementów każdego wierszamacierzy współczynników przez ten z nich, który ma największą wartość bezwzględną(Przy rozwiązywaniu układu należy pamiętać, że wektor b też musi być odpowiedniopodzielony).i-te równanie układu:
n∑j=1
aijxj = bi −→n∑
j=1
(riaij )xj = ribi ,
gdzie ri := 1/ max1≤j≤n
|aij | (1 ≤ i ≤ n).
W praktyce lepiej jest wybrać ri równe 2m (m ∈ Z) najbliższe 1/ max1≤j≤n
|aij |.
Wojciech Szewczuk MN
Wyważanie kolumn
Wyważanie kolumn polega na tym, że j-tą kolumnę mnożymy przezcj := 1/ max
1≤i≤n|aij | (1 ≤ j ≤ n) (lub bliską tej wartości liczbę 2m).
i-te równanie układu:
n∑j=1
aijxj = bi −→n∑
j=1
(cjaij )xj
cj= bi .
Rozwiązanie da wielkościxjcj
, więc aby otrzymać rozwiązanie oryginalnego układu,
należy je pomnożyć przez cj .
Wojciech Szewczuk MN
Poprawianie iteracyjne
Niech x będzie obliczonym rozwiązaniem równania Ax = b.Poczynając od k = 0 aż do uzyskania pożądanej dokładności:
1 r(k) = b− Ax(k) (x(0) = x)2 Ae = r(k) (używamy znanego z poprzednich obliczeń rozkładu LU macierzy A)
3 x(k+1) = x(k) + e
Ze względu na znoszenie błędów wektor residualny powinien być liczony z większąprecyzją niż pozostałe obliczenia.
Wojciech Szewczuk MN
Poprawianie iteracyjne
Przykład 12 1 12
13
12
13
14
13
14
15
x1x2x3
=
323124330
x = [1, 2, 3]T
Rozkład LU wygląda następująco:
L =
1 0 012 1 013 1 1
, U =
1 12
13
0 112
112
0 0 1180
Wprowadźmy błąd do LU używając tylko sześciu cyfr do reprezentacji liczb:
L =
1 0 00.5 1 0
0.333333 1 1
, U =
1 12 0.333333
0 0.0833333 0.08333330 0 0.555556× 10−2
x(0) =
1.000029600035121.999824400142893.00017759985791
Wojciech Szewczuk MN
Poprawianie iteracyjne
Przykład c.d.
r(0) = 10−5 ×
−0.10000591998960−0.06666963332513−0.14866856774542
Rozwiązujemy układ LUe = r(0)
e = 10−3 ×
−0.029600080246190.17559977427749−0.17759977587713
x(1) = x(0) + e =
0.999999999954871.999999999917163.00000000008204
Wojciech Szewczuk MN
Rozwiązywanie układów równań liniowych metodami iteracyjnymi
Algorytm Gaussa jest metodą bezpośrednią rozwiązywanie układu Ax = b. Poskończonej liczbie kroków dostajemy rozwiązanie, które byłoby dokładne, gdybynie błędy zaokrągleń.
Metoda iteracyjna tworzy ciąg wektorów zbieżny do rozwiązania!
dla wielkich układów (tysiące równań) często górują nad metodamibezpośrednimi szybkością działania i wymaganiami dotyczącymi pamięcioperacyjnejsą często efektywne dla układów rzadkich
są zazwyczaj stabilne, błędy zaokrągleń są wygaszane w dalszych
obliczeniach
Wojciech Szewczuk MN
Rozwiązywanie układów równań liniowych metodami iteracyjnymi
Przykład 13
Rozważmy układ[7 −6−8 9
] [x1x2
]=
[3−4
]o rozwizaniem dokadnym x =
[ 15− 4
15
]Wyraźmy i−tą niewiadomą z i−tego równania przez:
x(k)1 =
6
7x(k−1)2 +
3
7
x(k)2 =
8
9x(k−1)1 −
4
9
Otrzymaliśmy metodę (iterację) Jacobiego.
W pierwszym kroku metody musimy wybrać przybliżenia początkowe x(0)1 i x(0)2 (jak
nie mamy lepszych, mogą to być zera).
Wojciech Szewczuk MN
Rozwiązywanie układów równań liniowych metodami iteracyjnymi
Przykład c.d.
k x(k)1 x
(k)2
0 0.00000 0.0000010 0.14865 −0.1982020 0.18682 −0.2490930 0.19662 −0.2621540 0.19913 −0.2655150 0.19978 −0.26637
Wojciech Szewczuk MN
Rozwiązywanie układów równań liniowych metodami iteracyjnymi
Przykład 14
Metodę z przykładu 13 można zmodyfikować tak, żeby ostatnio obliczone x(k)1 było od
razu użyte do wyznaczenia x(k)2 .
x(k)1 =
6
7x(k−1)2 +
3
7
x(k)2 =
8
9x(k)1 −
4
9
Otrzymaliśmy metodę (iterację) Gaussa-Seidela.
k x(k)1 x
(k)2
0 0.0000010 0.21978 −0.2490920 0.20130 −0.2653130 0.20009 −0.2665940 0.20001 −0.2666650 0.20000 −0.26667
Możemy przypuszczać, że dwie metody dają ciągi przybliżeń zbieżne do rozwiązaniadokładnego
( 15 , −
415
)i że druga jest zbieżna szybciej.
Wojciech Szewczuk MN
Ogólna metoda iteracyjna
Rozważmy układ
Ax = b. (3)
Dla ustalonej macierzy Q wyraźmy ten układ w równoważnej postaci
Qx = (Q− A)x+ b. (4)
Spodziewamy się, że proces iteracyjny możemy opisać równaniem
Qx(k) = (Q− A)x(k−1) + b (k ≥ 1). (5)
wektor x(0) może być dowolny (warto wykorzystać jakąkolwiek informację orozwiązaniu dokładnym)
metoda iteracyjna oparta na równaniu 5 jest zbieżna, jeśli ciąg {x(k)} jestzbieżny do x dla dowolnego wektora początkowego x(0).
Wojciech Szewczuk MN
Ogólna metoda iteracyjna
Macierz Q powinna spełniać następujące warunki:
Obliczanie przybliżeń x(k) jest łatwe.
Ciąg {x(k)} jest zbieżny do rozwiązania.
Drugi warunek jest spełniony, jeśli Q−1 jest dobrym przybliżeniem A−1.
Wojciech Szewczuk MN
Ogólna metoda iteracyjna
Załóżmy, że macierz A i Q są nieosobliwe. Wtedy z równania 5 możemy napisaćteoretyczny wzór
x(k) := (I−Q−1A)x(k−1) +Q−1b (6)
Uwaga w praktyce numerycznej wektor x(k) oblicza się z równania 5.Dokładne rozwiązanie spełnia równanie
x = (I−Q−1A)x+Q−1b. (7)
x jest więc punktem stałym odwzorowania
x 7→ (I−Q−1A)x+Q−1b. (8)
Odejmijmy stronami równanie 7 od 6:
x(k) − x = (I−Q−1A)(x(k−1) − x) (9)
Wojciech Szewczuk MN
Ogólna metoda iteracyjna
Dla dowolnej normy wektorowej i indukowanej przez nią normy macierzowej równanie9 daje nierówność ∥∥∥x(k) − x∥∥∥ ≤ ∥∥I−Q−1A
∥∥∥∥∥x(k−1) − x∥∥∥ ,
a z tego wynika, że ∥∥∥x(k) − x∥∥∥ ≤ ∥∥I−Q−1A∥∥k ∥∥∥x(0) − x∥∥∥ .
A więc jeśli ∥∥I−Q−1A∥∥ < 1,
tolim
k→∞
∥∥∥x(k) − x∥∥∥ = 0
dla dowolnego x(0).
Wojciech Szewczuk MN
Ogólna metoda iteracyjna
Twierdzenie 15
Jeśli ∥∥I−Q−1A∥∥ < 1
dla pewnej normy indukowanej macierzy, to ciąg określony równaniem
Qx(k) = (Q− A)x(k−1) + b (k ≥ 1)
jest zbieżny do rozwiązania układuAx = b
dla dowolnego wektora początkowego x(0).
Zakładając, że norma δ :=∥∥I−Q−1A
∥∥ < 1, możemy zakończyć proces iteracyjny, gdywielkość
∥∥x(k) − xk−1∥∥ jest dostatecznie mała.∥∥∥x(k) − x∥∥∥ ≤ δ
1− δ
∥∥∥x(k) − xk−1∥∥∥
Wojciech Szewczuk MN
Metoda Jacobiego
W metodzie Jacobiego macierz Q jest macierzą przekątniową o elementach aii takichjak w A. Wtedy
(Q−1A)ij = aij/aii
i ta macierz ma jedynki na głównej przekątnej. Dlatego
∥∥I−Q−1A∥∥∞ = max
1≤i≤n
n∑j=1,j 6=i
|aij/aii |. (10)
Wojciech Szewczuk MN
Metoda Jacobiego
Twierdzenie 16
Jeśli macierz A jest dominująca przekątniowo, to dla dowolnego wektorapoczątkowego metoda Jacobiego tworzy ciąg zbieżny do rozwiązania układu Ax = b.
Dowód:Z założenia mamy
|aii | >n∑
j=1,j 6=i
|aij |
. Biorąc powyższe i równanie 10 dostaniemy∥∥I−Q−1A∥∥∞ < 1
i na mocy twierdzenia 15 metoda Jacobiego jest zbieżna.
Wojciech Szewczuk MN
Metoda Jacobiego – algorytm
input n, (aij ), (bi ), (xi ), Mfor k = 1 to M do
for i = 1 to n doui ← (bi −
∑nj=1,j 6=i aij xj )/aii
end dofor i = 1 to n doxi ← ui
end dooutput k, (xi )
end do
Algorytm można poprawić, wykonując wszystkie dzielenia przed rozpoczęciem iteracji.for i = 1 to n do
d ← 1/aiibi ← dbi
for j = 1 to n do
aij ← daij
end do
end do
Wtedy główna instrukcja uprości się do postaci
ui ← bi −n∑
j=1,j 6=i
aijxj
Wojciech Szewczuk MN
Metoda Gaussa-Seidela
W metodzie Gaussa-Seidela Q jest częścią trójkątną dolną (wraz z główną przekątną)macierzy A.
Twierdzenie 17
Jeśli macierz A jest dominująca przekątniowo, to metoda Gaussa-Seidela jest zbieżnadla dowolnego wektora początkowego.
Wojciech Szewczuk MN
Metoda Gaussa-Seidela – algorytm
input n, (aij ), (bi ), (xi ), Mfor k = 1 to M do
for i = 1 to n doxi ← (bi −
∑nj=1,j 6=i aij xj )/aii
end dooutput k, (xi )
end do
Wojciech Szewczuk MN
Metoda Gaussa-Seidela – algorytm
Efektywność metody Gaussa-Seidela można zwiększyć , odpowiednio przekształcającukład.
Przykład 15
Rozważmy układ 2 −1 01 6 −24 −3 8
x1x2x3
=
2−45
i weźmy x(0) = (0, 0, 0)T .Układ skalujemy, czyli wyrażamy w postaci:
D−1Ax = D−1b,
gdzie D = diag(aii ). 1 − 12 0
16 1 − 1
312 − 3
8 1
x1x2x3
=
1− 2
358
Wojciech Szewczuk MN
Metoda Gaussa-Seidela – algorytm
Przykład c.d.
x(k)1 =
1
2x(k−1)2 + 1
x(k)2 = −
1
6x(k)1 +
1
3x(k−1)3 −
2
3
x(k)3 = −
1
2x(k)1 +
3
8x(k)2 +
5
8
k x(k)1 x
(k)2 x
(k)3
1 1.000000 −0.833333 −0.1875005 0.622836 −0.760042 0.028566
10 0.620001 −0.760003 0.02999813 0.620000 −0.760000 0.030000
Rozwiązanie dokładne:
x =(
62
100, −
76
100,
3
100
)T
Wojciech Szewczuk MN