Sunteți pe pagina 1din 5

Metode iterative de rezolvare a sistemelor liniare

1 Metodele Seidel-Gauss şi Jacobi


1) Metoda Seidel - Gauss:
 ( )t

 (0) (0)
x(0) = x1 x2 ... xn
(0)
∈ Rn ,




Pentru k ≥ 0 :
 ( ) (1)

 1 ∑
i−1 ∑n

 (k+1)
bi −
(k+1)

(k)
, 1 ≤ i ≤ n.
 xi =
aii
aij xj aij xj
j=1 j=i+1

2) Metoda Jacobi:
 ( )t

 (0) (0) (0) (0)
∈ Rn ,


x = x 1 x2 ... x n



 Pentru k ≥ 0 :
  (2)

 ∑
 (k+1)
 1  n
(k) 

 xi =  bi − aij xj  , 1 ≤ i ≤ n.

 aii j=1
j̸=i

Observatie 1.1 Oprirea procesului iterativ (1) sau (2) se face atunci când:

q k ( (1) (0) )
d x ,x < ε. (3)
1−q
unde ε este precizia impusă pentru aproximarea soluţiei.

2 Metoda relaxării
Exemplul 2.1 Să se aproximeze soluţia sistemului:

 −x1 − 0, 1x2 − 0, 1x3 + 1, 2 = 0
−0, 2x1 − x2 − 0, 1x3 + 1, 3 = 0

−0, 2x1 − 0, 2x2 − x3 + 1, 4 = 0

Soluţie.
Considerăm x(0) = (0 0 0)t . Rezultă:
(0) (0) (0)
R1 = 1, 2 , R2 = 1, 3 , R3 = 1, 4

1
Algoritmul 1 Metoda Seidel-Gauss.
Date de intrare:

- Matricea sistemului: A = (aij )1≤i,j≤n

- Termenii liberi ai sistemului: b = (bi )1≤i≤n

- Eroarea admisă ε
- Aproximaţia iniţială a soluţiei: x = (xi )1≤i≤n

Date de ieşire:
- Ultima aproximaţie calculată: y = (yi )1≤i≤n

- Numărul de iteraţii efectuate k


Determină:
∑ n
|aij |
j=1
j̸=i
q = max
1≤i≤n |aii |
sau:

n
|aij |
i=1
i̸=j
q = max
1≤j≤n |ajj |
Dacă q < 1 atunci:
m=1
Pentru i = 1, 2, ..., n execută:
1 ∑
i−1 ∑n
yi = (bi − aij yj − aij xj )
aii j=1 j=i+1
Sfârşit Pentru
Determină cel mai mic număr natural k cu proprietatea:

qk
max |xi − yi | < ε
1 − q 1≤i≤n
Pentru m = 2, 3, ..., k execută:
Pentru i = 1, 2, ..., n execută:
xi = yi
Sfârşit Pentru
Pentru i = 1, 2, ..., n execută:
1 ∑
i−1 ∑n
yi = (bi − aij yj − aij xj )
aii j=1 j=i+1
Sfârşit Pentru
Sfârşit Pentru
altfel:
Nu este asigurată convergenţa algoritmului
STOP
Sfârşit Dacă

2
Algoritmul 2 Metoda Jacobi.
Date de intrare:
- Matricea sistemului: A = (aij )1≤i,j≤n

- Termenii liberi ai sistemului: b = (bi )1≤i≤n


- Eroarea admisibilă ε

- Aproximaţia iniţială a soluţiei: x = (xi )1≤i≤n


Date de ieşire:

- Ultima aproximaţie calculată: y = (yi )1≤i≤n


- Numărul de iteraţii efectuate k

Determină:
∑ n
|aij |
j=1
j̸=i
q = max
1≤i≤n |aii |
sau:

n
|aij |
i=1
i̸=j
q = max
1≤j≤n |ajj |
Dacă q < 1 atunci:
m=1
Pentru i = 1, 2, ..., n execută:
1 ∑n
yi = (bi − aij xj )
aii j=1
j̸=i
Sfârşit Pentru
Determină cel mai mic număr natural k cu proprietatea:

qk
max |xi − yi | < ε
1 − q 1≤i≤n

Pentru m = 2, 3, ..., k execută:


Pentru i = 1, 2, ..., n execută:
xi = yi
Sfârşit Pentru
Pentru i = 1, 2, ..., n execută:
1 ∑n
yi = (bi − aij xj )
aii j=1
j̸=i
Sfârşit Pentru
Sfârşit Pentru
altfel:
Nu este asigurată convergenţa algoritmului
STOP
Sfârşit Dacă

3
(0) (0)
Deoarece R3 = max Ri următoarea aproximaţie a soluţiei va fi: x(1) = (0 0 1, 4)t . ş.a.m.d.
1≤i≤3
Efectuând calculele cu două zecimale exacte se obţin rezultatele din tabelul care urmează:

Iteraţia x1 R1 x2 R2 x3 R3
0 0 1, 20 0 1, 30 0 1, 40
−0, 14 −0, 14 1, 40 −1, 40
1 0 1, 06 0 1, 16 1, 40 0
−0, 12 1, 16 −1, 16 −0, 23
2 0 0, 94 1, 16 0 1, 40 −0, 23
0, 94 −0, 94 −0, 19 −0, 19
3 0, 94 0, 00 1, 16 −0, 19 1, 40 −0, 42
0, 04 0, 04 −0, 42 0, 42
4 0, 94 0, 04 1, 16 −0, 15 0, 98 0, 00
0, 02 −0, 15 0, 15 0, 03
5 0, 94 0, 06 1, 01 0, 00 0, 98 0, 03
0, 06 −0, 06 −0, 01 −0, 01
6 1, 00 0, 00 1, 01 −0, 01 0, 98 0, 02
0, 00 0, 00 0, 02 −0, 02
7 1, 00 0, 00 1, 01 −0, 01 1, 00 0, 00
0, 00 −0, 01 0, 01 0, 00
1, 00 0, 00 1, 00 0, 00 1, 00 0, 00

Dupa 7 iteraţii s-a obţinut soluţia: x1 = 1, x2 = 1, x3 = 1.

4
Algoritmul 3 Metoda relaxării.
Date de intrare:

n
- Ecuaţiile sistemului: bi − xi + aij xj = 0, 1 ≤ i ≤ n
j=1
j̸=i

- Eroarea admisibilă ε
- Aproximaţia iniţială a soluţiei: xi , 1 ≤ i ≤ n

- Numărul maxim de iteraţii ITMAX


Date de ieşire:

- Ultima aproximaţie calculată: xi , 1 ≤ i ≤ n


- Numărul de iteraţii efectuate m

m=1
Pentru i = 1, 2, ..., n execută:
∑n
Ri = bi − xi + aij xj
j=1
j̸=i
Sfârşit Pentru
Cât timp max |Ri | ≥ ε şi m ≤ IT M AX execută:
1≤i≤n

|Rp | = max |Ri |


1≤i≤n

xp = xp + Rp
Pentru q = 1, 2, ..., n execută:
Dacă q ̸= p atunci:
Rq = Rq + aqp Rp
altfel:
Rq = 0
Sfârşit Dacă
Sfârşit Pentru
m=m+1
Sfârşit Cât timp
Dacă m > IT M AX atunci:
În ITMAX iteraţii nu este obţinută aproximarea dorită
STOP
altfel:
Aproximarea obţinută este: xi , 1 ≤ i ≤ n
Sfârşit Dacă

S-ar putea să vă placă și