You are on page 1of 18

Metode iterative de rezolvări pentru

Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

Fie Ax=b. Fie x(o) ales astfel încât să se poată construi şirul x(m) Rn
 
astfel încât mlim x m  x , x fiind soluţia sistemului.

Sistemul Ax=b sau altfel scris
a11 x1  a12 x 2  ...a1n x n  b1
.


.
a m1 x1  a m 2 x 2  ...a mn x n  bm se transformă în ecuaţie echivalentă:

 1
 1 a (b1  a12 x 2  a13 x3 ...  a1n x n )
x 
 11

 x  1 (b  a x  a x ...  a x )
 2 a 22 21 21 1 23 3 2n n

 
 1
 xn  (bn  a n1 x1  a n 2 x 2 ...  a nn1 x n 1 )
 a nn

care se poate scrie x=Qx+c, Q=[qij]nn, cRn.


Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

Dacă se aplică iteraţia cu punct fixat asupra şirului soluţie obţinem:


x  m 1  Q  x  m   c , Q=[qij]nn, cRn

Se caută matricea Q şi vectorul c pentru sistemul Ax=b. Se consideră C


o matrice inversabilă oarecare de acelaşi ordin cu A .
Avem că x=x+C-1(b-Ax) are loc dacă şi numai dacă C-1(b-
Ax)=0  Ax=b.
   b
x = (I - C -1 A)x + C -1

Deci x=x+ C b- C Ax


-1 -1    
Q c

Deci Q=I- C-1A


c= C-1b
şi pentru ca metoda să fie utilizabilă matricea C trebuie să satisfacă două
condiţii :
1)C matrice uşor inversabilă
I - C -1A
2) <1 condiţie de convergenţă -1 ( C
-1
este o suficient de bună
Q  I - C A
aproximaţie pentru A-1), unde
Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

P1. Alegerea vectorului iniţial x(o)  (Rn).


P2. Pentru m=0,1,2,... până la o condiţie de satisfăcut execută
x(m+1)=x(m)+C-1(b-Ax(m)).
P3. Date finale : soluţia aproximativă x(k) găsită la un anume k.
 
Obs. Condiţia de satisfăcut poate fi scrisă în mai multe forme:
i) x(m) - x(m - 1)  
 
   
x m  x m1
ii) 
 m
x

iii) Pentru un M dat, iteraţia după m se face până când m>M.

Metoda lui Iacobi pentru rezolvarea sistemelor algebrice liniare are la


bază iteraţia cu punct fixat.
Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

Coeficienţii matricii A se pot scrie ca sumă de coeficienţi de matrice


inferior triunghiulară (L), matrice diagonală (D) şi matrice superior
triunghiulară (U).
 
A=L+D+U
 a ij , i  j
l ij  
 0, i  j strict inferior triunghiulară

 a ij , i  j
d ij  
 0, i  j diagonală

 a ij , i j
u ij  
 0, i  j strict superior triunghiulară
Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

Metoda lui Iacobi alege matricea inversabilă oarecare C=D în iteraţia cu


punct fixat. Vom exprima forma şirului soluţie al lui Iacobi, pentru
rezolvarea sistemelor algebrice liniare:
 
x=Qx+c sau x= (I- C-1A)x+ C-1b  x= (I- D-1A)x+ D-1b

x(m+1)= (I- D-1A)x(m)+ D-1b, I  D 1  A  1


1 0 ... 0  1 / a 11 0 ... 0   a 11 a 12 ... a 1n 
 0 1 ... 0   0 1 / a 22 ... 0   a 21 a 22 ... a 2 n 
b = I- D A = 
-1   
 ....................  .................................  .......................... .......
     
 0 0 ... 1   0 0 ... 1 / a nn   a n1 a n2 ... a nn 
 a 12 a 11 
 0  ...
a 11 a 11 
 
 21 a a 2n   a ij
 0 ...  , ij

 a 22 a 22   b ij   a ii
   0, i  j
 ................................. 
 a n1 a n2 
  ... 0 
 a nn a nn 
Metoda iterativă 1: metoda lui Iacobi (iteraţia cu punct fixat)

bi
c= D-1b= , i  1, n
aii
n
bi
xi m
  q ij x j
 m 1
 ,i  1, n
j i aii
j 1

Dacă sistemul este bine condiţionat numeric (matricea lui satisface


anumite condiţii) procedeul iterativ converge către soluţia exactă a
sistemului.
Metoda iterativă 2: metoda Gauss-Seidel

Este o modificare a algoritmului Iacobi, în scopul creşterii vitezei de


convergenţă şi reducerii memoriei necesare. Ideea de bază a algoritmului
Gauss-Seidel constă în utilizarea în calculul componentei x ( m) , la pasul
i
m, a componentelor x ( m) , x ( m) , x ( m) ,..., x ( m) ,
1 2 3 i1

deja calculate, în locul componentelor x ( m1) , x ( m1) , x ( m1) ,..., x ( m1) ,


1 2 3 i1

care s-au folosit în rezolvarea prin iteraţia cu punct fixat, metoda Iacobi,
la calculul componentei xi(m).

În metoda Gauss-Seidel, matricea inversabilă oarecare C, este aleasă


astfel: C=L+D, unde avem A=L+D+U aşa cum s-a vazut mai devreme.

Deci x
 m1
 I  L  D  1
A  x 
 m 
 L  D  1
b
Metoda iterativă 2: metoda Gauss-Seidel

x  m 1  x  m    L  D 
1
 b  A  x     ( L  D)
m

 L  D  x  m1   L  D  x  m  b  A  x  m
     m
D  x m1   L  x m1  L D  A

  x b
U
     m
D  x m1   L  x m1  U  x b
Dezvoltând pe componente obţinem:
 
 m1  n  m1 n  m 
a ii  x i    a ij  x j   a ij  x j  b i , i  1, n
 j1 j1 
 j i ji 
 m1  n  m1 n  m 
xi    a ij  x j   a ij  x j  b i  / a ii , i  1, n
 ji ji 

cu observaţia că aii 0, i  1, n


Metoda iterativă 2: metoda Gauss-Seidel

 k  
xi  x k 1
Algoritmul iterativ Gauss-Seidel se opreşte atunci când 
 k
x
xi k   x  k 1
sau altfel scris max 
k
i 1, n x

Convergenţa metodei lui Gauss-Seidel este asigurată dacă:


Q  I   L  D A  1
1

Metoda Gauss-Seidel converge mai rapid decât metoda Iacobi. Ea poate


converge chiar dacă algoritmul Iacobi diverge. Sunt posibile cazuri când
metoda Gauss-Seidel nu converge deloc. Se pot realiza transformări
asupra sistemului liniar iniţial Ax=b, care permit asigurarea convergenţei
algoritmului Gauss-Seidel.
Metoda iterativă 2: metoda Gauss-Seidel

Definiţie:
Un sistem liniar Ax=b, AMn(R), bRn se numeşte normal dacă:

1) A este matrice simetrică a ij  a ji , i, j  1, n

2) A pozitiv definită
n n
n
a)  x , Ax    a ij x i x j  0, x  R
i 1j1

b) A hermitiană
n
<Ax,y>=<x,Ay>, x , y  R
Teoremă:
Fie sistemul liniar Ax=b, cu A nesingulară. Sistemul obţinut prin
înmulţirea la stânga cu transpusa AT, este un sistem normal:
ATAx= AT b
Teoremă:
Metoda lui Gauss-Seidel converge întotdeauna pentru un sistem normal,
indiferent de alegerea aproximaţiei iniţiale.
Metoda iterativă 2: metoda Gauss-Seidel

Vom nota matricea W=D+L, unde L este matricea inferior triunghiulară


extrasă din matricea sistemului A şi D este matricea diagonală a matricii
A.
Vom obţine formula iterativă Gauss-Seidel:
 m  i 1  m n  m1 
xi   b i   a ij  x j   a ij  x j  / a ii
 j1 j i 1 
pe care o construim în algoritmul de mai jos:
a(n,n), b(n) % matricea sist., termenii liberi
nrmax_iteratii % nr. maxim de iteratii permise
eps % acuratetea solutiei
k=0;  contor iteraţii
pentru execută  iniţializarea soluţiei
x(i)=0
sf.
Metoda iterativă 2: metoda Gauss-Seidel

repetă % procesul repetitiv


err=0 % eroare la pasul curent
pentru i=1,n execută  parcurge ecuaţiile
s=b(i)
pentru j=1,n execută; % parcurge ecuaţia i
s=s-a(i,j) * x(j)
sf
s=(s+a(i,i) * x(i))/a(i,i) % s=noua aproximaţie pentru x(i)
err=err+(s-x(i))2 % norma euclidiană pentru eroare
x(i)=s; % se pastreaza valoarea în x(i)
sf % se incepe calculul pt.un x nou
k=k+1; % incrementează contor iteraţii
până când (err< eps) sau (k>nrmax_iteratii.)
sf.

Se observă uşor că în algoritmul dat s-a folosit forma euclidiană pentru


calcul normei vectorului x.
Metoda iterativă 2: metoda Gauss-Seidel

Componenta xi a soluţiei la pasul m este calculată în funcţie de


componentele precedente 1, 2, .., i-1, deja calculate la pasul curent şi de
următoarele componente (i+1), (i+2), ..., n calculate la pasul precedent.

Algoritmul nu necesită păstrarea vechii componente i, după ce cea nouă


a fost calculată, de aceea xi_nou se poate plasa în memorie în aceeaşi
locaţie ca şi vechea valoare. Astfel algoritmul Gauss-Seidel nu necesită
spaţiu pentru memorarea decât a unui vector soluţie, spre deosebire de
algoritmul Iacobi, unde trebuiau memoraţi atât x_nou cât şi x_vechi.

În metoda Gauss-Seidel imediat ce o componentă a fost determinată, ea


e folosită în calculele următoare, înlocuind valoarea veche, ce se pierde,
idee cunoscută sub numele de principiul lui Seidel.
Metoda iterativă 2: metoda Gauss-Seidel

Observaţii

1. Pentru convergenţa metodelor iterative Iacobi şi Gauss-Seidel o


condiţie suficientă ca metodele să fie convergente este ca matricea A a
sistemului să fie diagonal dominantă.
n
a ii   a ij ,  i  1, n
j i
j1
(condiţie echivalentă cu presupunerea că norma matricii din formula
iterativă a soluţiei este subunitară).

2. Metoda Gauss-Seidel este de două ori mai rapid convergentă decât


metoda Iacobi.

3. Metoda Gauss-Seidel este uşor implementabilă. O soluţie acurată


poate fi obţinută chiar dacă numărul ecuaţiilor este foarte mare, datorită
faptului că sistemul este diagonal dominant.
Metoda iterativă 2: metoda Gauss-Seidel

Observaţii

4.Necesarul de memorie pentru algoritmul Gauss-Seidel este de n2+2n


locaţii de memorie, iar pentru algoritmul lui Iacobi de n2+2n+n locaţii de
memorie, datorită necesităţii de memorare a soluţiei obţinute la pasul
curent (x_nou).

5.Dacă matricea sistemului este rară, metodele iterative sunt foarte


eficiente din punct de vedere al spaţiului de memorie.
Metoda iterativă 3: metoda relaxării

Asupra metodei Gauss-Seidel se poate aplica o îmbunătăţire în ceea ce


priveşte convergenţa soluţiei. Această modificare a fost dată de
Southwell şi este cunoscută ca metoda de relaxare.

La aplicarea metodei Gauss-Seidel este importantă ordinea în care


ecuaţiile sunt folosite în determinarea soluţiei. Este de dorit în orice
iteraţie să îmbunătăţim variabila xi­ care are cea mai mare eroare.
Deoarece variabila xi nu apare în partea dreaptă, eroarea ei nu va
influenţa propria ei valoare la următoarea iteraţie. Astfel, printr-o
selectare potrivită a ecuaţiei pentru xi, vom putea introduce erori mai mici
la valorile xi în următoarea iteraţie.

Metoda relaxării este o metodă ce permite selectarea celor mai potrivite


ecuaţii pentru xi­ pentru a obţine o convergenţă rapidă.
Metoda iterativă 3: metoda relaxării

Este o metodă care îmbunătăţeşte schema iterativă Gauss-Seidel şi se


scrie sub forma:

 i 1 n 
   yi   ai , j x j  a  / ai ,i  (1   ) xi (t 1)
(t ) (t ) ( t 1)
xi i, j xj 
 j 1 j  i 1 

unde ω este factorul de relaxare ce satisface:


0<<2.
Se observă că pentru =1 se obţine formula lui Gauss-Seidel. Se poate
arăta ca pentru =2 procesul diverge.
Metoda este cunoscută ca metodă de sub-relaxare pentru 0<
<1 şi metoda de supra-relaxare pentru 1< <2.
Valoarea optimă pentru factorul de relaxare , care ar produce
convergenţa cea mai rapidă, nu este cunoscut. El se determină de obicei
printr-un proces de calcul de erori min-max.

You might also like