Metody Numeryczne Wykład 8
Iteracje dla równań liniowych Algorytmy rozwi¸azywania układów równań liniowych postaci
A−→x =−→ b
gdzie A jest nieosobliw¸a macierz¸a rzeczywist¸a n x n , −→
b jest wektorem rzeczywistym w Rn, które rozpatrywaliśmy w wykładzie 3, należ¸a do grupy algorytmów dokładnych albo bezpośrednich. To znaczy, że po wykonaniu skończonej liczby dopuszczalnych operacji elementarnych dostajemy w arytmetyce idealnej dokładne rozwi¸azanie
−
→x = A−1−→ b
W tym wykładzie zajmiemy si¸e algorytmami iteracyjnymi rozwi¸azywania układów rów- nanń liniowych. Polegaj¸a one na tym, że startuj¸ac z pewnego przybliżenia pocz¸atkowego
−
→x0 konstruuje si¸e ci¸ag kolejnych przybliżeń
−
→xk = Φk(A,−→
b ; −→x0), k = 1, 2, . . . , które w granicy osi¸agaj¸a rozwi¸azanie dokładne
k→∞lim
−
→xk = −→x
Metoda Jacobi Rozkładaj¸ac macierz A = (ai,j)ni,j=1 na sum¸e A = D + C , gdzie D jest macierz¸a diagonaln¸a składaj¸ac¸a si¸e z wyrazów stoj¸acych na głównej przek¸atnej ma- cierzy A, układ A−→x =−→
b jest równoważny układowi D−→x = −C−→x +−→
b
a st¸ad (o ile na przek¸atnej macierzy A nie ma zera ) otrzymujemy metod¸e iteracyjn¸a xk = Bxk−1+ −→c
gdzie B = −D−1C i −→c = D−1−→
b , zwan¸a metod¸a Jacobi.
Z równania tego wynika, że i- te rozwi¸azanie w (k+1) iteracji Jacobi
x(k+1)i = 1 ai,i
"
bi−
n
X
j=1,j6=i
ai,jx(k)j
#
W metodzie Jacobi warunek konieczny zbieżności , kBk < 1, jest spełniony wtedy , gdy 1
macierz A ma dominuj¸ac¸a przek¸atn¸a, tzn. gdy 2|ai,i| >
n
X
j=1,j6=i
|ai,j|, 1 ≤ i ≤ n
Dowód
Wyraz (i,j) macierzy D−1C wynosi 0 dla i = j i ai,j/ai,i dla i 6= j.
St¸ad
kD−1Ck∞= max1≤i≤n
n
X
j=1,j6=i
|ai,j|/|ai,i| = max1≤i≤n
n
X
j=1
|ai,j|/|ai,i| − 1 < 1
Otrzymujemy wi¸ec ż¸adan¸a nierówność na przek¸atn¸a dominuj¸ac¸a macierzy układu.
Co mieliśmy wykazać.
Metoda Gauss - Seidel
Przedstawiaj¸ac macierz A w postaci A = L + U, gdzie L jest macierz¸a trójk¸atn¸a doln¸a, U - macierz¸a trójk¸atn¸a górn¸a , układ równań A−→x = −→
b jest równoważny układowi
−
→xk = −L−1U −−→xk−1+ L−1−→
b , z którego wynika, że i-te rozwi¸azanie Gauss - Seidel w (k+1) iteracji jest postaci
x(k+1)i = 1 ai,i
"
bi−
i−1
X
j=1
ai,jx(k+1)j −
n
X
j=i+1
ai,jx(k)j
#
Podamy teraz warunek konieczny i wystarczaj¸acy na zbieżność procesu iteracyjnego Twierdzenie
Ci¸ag (xn)n=1,2,...) określony procesem iteracyjnym xn+1= Cxn+b jest zbieżny do rozwi¸azania układu równań A−→x = −→
b wtedy i tylko wtedy, gdy, wszytkie wartości własne macierzy C maj¸a moduły mniejsze od 1.
Dowód tego twierdzenia pod wzgl¸edem zaawansowania matematyczego wykracza poza ramy tego wykladu. Zach¸ecam osoby zainteresowane do bardziej zaawansowanych podr¸eczników Analizy Numerycznej.
Na przykład Michelle Schatzman Numerical Analysis Clarendom Press Oxford 2002 lub służ¸e pomoc¸a.
W programie OCTAVE s¸a gotowe trzy kreatory macierzy: diagonalnej D = diag(A), poddiagonalnej E = tril(A,-1) i naddiagonalnej F = triu(A,1), które poznamy na labo-
2
ratorium. Na laboratorium tym ułożymy również dwa skrypty funkcyjne OCTAVE o nazwach Jacobi.m i Seidel.m, realizuj¸ace powyższe metody.
3