Sunteți pe pagina 1din 13

Capitolul 2.

METODE NUMERICE PENTRU REZOLVAREA SISTEMELOR


DE ECUAŢII ALGEBRICE LINIARE.

2.1. Metode de rezolvare numerică a sistemelor algebrice liniare

Modelarea numerica a proceselor tehnologice de multe ori duce la obţinerea unor


sisteme de ecuaţii liniare. Procedeul Kramer, care permite obţinerea soluţiei sistemului
prin raportul determinaţilor, devine inutil dacă numarul de ecuaţii si necunoscute creşte
( n >10 ), deoarece numarul necesar de operaţii aritmetice are o valoare fantastica n!n.
În acest caz rezolvare sistemelor liniare se face folosind anumite metode specifice,
care pot fi clasificate ca:
- metode directe ;
- metode indirecte (sau iterative).
Metodele directe se utilizeaza pentru rezolvarea sistemelor liniare de ordinul n < 103.
Metodele indirecte se utilizeaza pentru rezolvarea sistemelor liniare de până la ordinul n =
106.
NOTĂ. Ca regula , pentru rezolvarea sistemelor de ecuatii liniare, se aplica metode
iterative.

2.1.1. Metoda eliminării Gauss

Metoda eliminarii Gauss este cea mai simplă metoda directă, care cere circa
(2/3)·n3 de operatii aritmetice. Metoda are la baza ideea transformării matricei date A
intr-o matrice superior triunghiulară prin eliminarea consecutivă a necunoscutelor si apoi
rezolvarea ecuaţiilor, folosind procedeul de substituire inversă .

22
Descrierea metodei

Se consideră un sistem de n ecuaţii liniare, de forma:

a11 ⋅ x1 + a12 ⋅ x 2 + ....... + a1n ⋅ x n = b1


 a ⋅ x + a ⋅ x + ....... + a ⋅ x = b
 21 1 22 2 2n n 2
 (2.1)
.........................................................
a n1 ⋅ x1 + a n 2 ⋅ x 2 + ....... + a nn ⋅ x n = bn

care scris mai scurt va avea forma


n

∑a
j =1
ij ⋅ x j = bi , (2.2)

unde :
i = 1,2,3,....., n este numărul ecuaţiei;
j = 1,2,3, ..., n reprezintă numărul necunoscutei

Acest sistem în forma matriceala se notează:

A·x = b , (2.3)
la care:
 a11 a12 ..... a1n 
 
 a 21 a 22 ..... a 2 n 
A =  .... se numeşte matricea coeficienţilor ,
.... .... .... 
 
a an2 ..... a nn 
 n1

 x1 
 
 x2 
x =  ...  - vectorul variabilelor necunoscute,
 
x 
 n

23
 b1 
 
 b2 
b =  ...  - vectorul termenelor liberi.
 
b 
 3

Dacă matricea A este superior triunghiulara, adică toate elementele situate sub
diagonala principală sunt nule :

 a11 a12 ..... a1n 


 
 0 a 22 ..... a 2 n 
 .... .... .... .... 
 
 0 0 ..... a nn 

(coeficienţii aij = 0, la i > j), atunci rezolvarea sistemului se poate face uşor prin
procedeul de eliminare inversă.
Dacă toate elemente din matricea superior triunghiulara A de pe diagonala
principala sunt diferite de zero (aii ≠ 0) atunci sistemul de ecuatii dat ( 2.1) va capăta
forma :
a11 ⋅ x1 + a12 ⋅ x2 + ....... + a1,n −1 ⋅ xn −1 + a1,n ⋅ x n = b1

 a 22 ⋅ x 2 + ....... + a 2,n −1 ⋅ xn −1 + a 2,n ⋅ x n = b2

 ........................................................... (2.4)
a ⋅ x + a n −1,n ⋅ x n = bn −1
 n −1,n −1 n −1
a n ,n ⋅ x n = bn

Se observă ca ultima ecuatie conţine numai necunoscuta xn, atunci considerând


an,n ≠ 0 , se obţine
xn = bn/an,n (2.5)

Substituind aceasta valoare în penultima ecuatie rezultă ecuaţia :


24
an-1,n-1 ⋅ xn-1 + an-1,n ⋅ bn /ann = bn-1 , (2.6)

din care vom avea necunoscuta xn-1 ( având în vedere ca an-1,n-1 ≠ 0) :

an−1,n
bn−1 − ⋅ bn
ann (2.7)
xn−1 =
an−1,n−1

Introducând valorile cunoscute pentru xn si xn-1 in ecuaţia imediat anterioara rezultă


necunoscuta xn-2. Dacă procedura se repetă până la prima ecuaţia va rezultă prima
necunoscuta x1.
Problema care nu a fost deocamdata clarificată este de a găsi procedeul prin care
un sistem de ecuaţii liniare structurat arbitrar să fie transformat intr-o formă cu matricea
superior triunghiulară, pentru putea aplica procedeul de substituire inversă examinat
anterior.
Se consideră un sistem cu n ecuaţii liniare (2.1) scris în forma (2.2). Notând

termeni liberi bi = ai ,n +1 se obţine:


n

∑a j =1
i, j ⋅ x j = ai ,n+1 , (2.8)

la care i = 1,2,3,....., n este numărul ecuaţiei; j = 1,2,3, ..., n reprezintă numărul


necunoscutei.
Presupunem, ca în prima ecuaţie
n

∑a
j =1
1, j ⋅ x j = a1,n+1 (2.9)

25
primul coeficient a11 ≠ 0 (in cazul contrar se face renumerarea necunoscutelor). Eliminăm
din aceasta ecuaţie coeficientul din faţa primei necunoscute x1 împărţind-o cu a11 .

a1 j a1,n+1
Notând = a1(1j) , iar = a1(,1n)+1 se obţine:
a11 a11
n
x1 + ∑ a1(1j) ⋅ x j = a1(,1n)+1 , (2.10)
j =2

Multiplicând ecuaţia (2.10) consecutiv cu ai1, unde i=2,...,n , şi scazând-o din


ecuaţia i se elimină prima variabilă x1 din toate ecuaţiile sistemului (2.8) în afară de prima
ecuaţie. Atunci aceste ecuaţii vor capăta forma :
n

∑a
i =2
(1)
ij ⋅ x j = ai(,1n)+1 , i= 2,3, .........., n (2.11)

unde :
a m1
a m(1,)l = a m ,l − a1l ⋅ , m=2,3,....,n şi l=2,3,...., n+1 (2.12)
a11
La fel se procedeaza cu sistemul obţinut (2.11).
Dupa eliminarea necunoscutei xk-1, restul ecuaţiilor va forma sistemul :
n

∑a
j =k
( k −1)
ij ⋅ x j = ai(,kn−+11) , (2.13)

unde: i= k , k+1,...,n; j=i+1.


Eliminând elemente ale coloanei k, se obţine sistemul de ecuaţii cu coeficienţii :
( k −1)
( k −1) ( k −1) amk
a (k )
ml =a ml −a kl ⋅ ( k −1) , m=k+1,...,n ; l=k+1,...,n+1 (2.14)
akk
Eliminarea necunoscutelor duce la sistemul (2.4) cu matricea superior triunghiulara, care
scris mai scurt are forma :
n
xi + ∑a
j =i +1
(i )
ij ⋅ x j = ai(,in)+1 , (2.15)

26
unde: i=1,2,..., n.
Cu această se încheie eliminarea Gauss şi după aceasta, pentru determinarea
necunoscutelor se aplică eliminarea inversă. Pentru aceasta se utilizează formula (2.15)
transcrisă în forma (2.16), considerând i= n, n–1, n–2, ..., 2, 1 :
n
xi = a (i )
i ,n +1 − ∑a
j =i +1
(i )
ij ⋅ xj (2.16)

NOTĂ. Eliminarea Gauss prevede divizarea ecuaţiilor pe elemente diagonale. Dacă un


coeficient diagonal este nul sau foarte mic după valoarea lui absolută, eroarea de calcul
devine inadmisibil de mare. De aceea, înainte de aplicarea eliminării, sistemul trebuie
rearanjat astfel încât elementele diagonale să fie dominante în valoarea absolută.

Aplicaţia 2.1. Exemplu de folosirea eliminarii gaussiene şi a eliminărei inverse

Se consideră că analiza poceselui de amestecare a trei substanţe fluide cu trei


concentraţii volumice diferite a condus la următorul sistem de ecuaţii :

2 ⋅ x1 + 3 ⋅ x 2 − x3 = 5 (a)

 4 ⋅ x1 + 4 ⋅ x 2 − 3 ⋅ x3 = 3 (b)

- 2 ⋅ x1 + 3 ⋅ x 2 − x3 = 1 (c )

Se cere deteminarea concentraţiilor volumice iniţiale x1, x2 şi x3 .

Rezolvare

Să notăm coeficienţii : a11 =2, a12 =3, a13 =-1, a21 =4, a22 =4 , a23 =-3, a31

27
=-2, a32 =3, a33 =-1 şi termenii liberi cu b1=5 , b2= 3 , b3=1.
1. Ca să eliminam pe x1 din ecuaţia (b), înmulţim ecuaţia (a) cu coeficientul
- a21/a11 = - 4\2 şi adunăm rezultatul la ecuaţia (b).
Se obtine ecuaţia :
-2·x2 - x3 = -7 (b')

2.De asemenea, înmulţim ecuaţia (a) cu multiplicatorul -a31/a11= -(-2\2) şi rezultatul


obţinut se adună la ecuaţia (c).

Se obţine o noua ecuaţie :


6·x2 - 2·x3 = 6 (c')

3. Acum se va elimina necunoscuta x2 din ecuaţia (c'). Pentru aceasta, se înmulteste


ecuaţia (b') cu multiplicatorul -6\(-2) şi rezultatul obţinut se adună la ecuaţia (c’) .
Rezultă :
- 5 x 3 = - 15 (c")

Cu aceasta, noul sistem de ecuaţii devine superior triunghiular :

 2·x 1 + 3·x 2 - x 3 = 5 (a)



 - 2·x 2 - x 3 = - 7 (b' ) ,
 - 5·x 3 = -15 (c" )

sau in forma generalizată :

a 11 ·x 1 + a 12 ·x 2 + a 13 ⋅ x 3 = b1

 a 22 ·x 2 + a 23 ·x 3 = b 2
 a 33 ·x 3 = b 3

28
Rezolvarea sistemului transformat se face folosind procedeul de eliminare
inversă :

x3 = b2 /a22 = -15/-5 = 3
x2 = (b2 - a23·x3) /a22 =(-7+1⋅3)/-2= 2
x1 = (b1 - a12·x2 - a13·x3 )/a11 =(5-3⋅2+1⋅3)/2= 1

2.1.2. Metoda iteraţiilor simple Iacobi

Se consideră un sistem cu n ecuaţii liniare :

a11 ⋅ x1 + a12 ⋅ x 2 + ....... + a1n ⋅ x n = b1


 a ⋅ x + a ⋅ x + ....... + a ⋅ x = b
 21 1 22 2 2n n 2

.........................................................
a n1 ⋅ x1 + a n 2 ⋅ x 2 + ....... + a nn ⋅ x n = bn

Considerând ca sistemul examinat este astfel structurat incât elementele diagonale


ai,i ( i=1,2,...,n) sunt dominante în valoarea absolută, rearanjam sistemul eliminând
variabile xi din termeni care conţin coeficienţii aii de la fiecare rand in felul urmator :
 b1 1
 x1 = a − a ⋅ (a12 ⋅ x 2 + a13 ⋅ x3 + ...... + a1n ⋅ x n )
 11 11

 b2 1
 x 2 = a − a ⋅ (a 21 ⋅ x1 + a 23 ⋅ x3 + ...... + a 2 n ⋅ x n )
 22 22 (2.17)
.........................................................

 bn 1
 x n = − ⋅ (a n1 ⋅ x1 + a n 2 ⋅ x 2 + ...... + a n ,n −1 ⋅ x n −1 )
 a n ,n a n ,n

29
Dacă în partea dreaptă a sistemului (2.17) se introduce o soluţie initiala xi(0 (care de
cele mai multe ori se ia egala cu zero xi(0)=0 ), prin rezolvarea sistemului (2.17) se obţine
prima soluţie aproximativă xi(1) . Introducând nouă soluţie obţinută in partea dreapta a
sistemului se obtine a două solutie aproximativă xi(2).
Continuând acest proces penrtu pasul k+1 se obţine soluţia :
n a
bi
−∑
i, j
x i( k +1) = ⋅ x (jk )
a i ,i j =1 a i ,i , (2.18)
j ≠i

unde i = 1,2, .........,n ; j = 1,2, ............,n

O condiţie suficientă pentru convergenţa procesului iterativ este că :

n
a i ,i > ∑ a i , j , (2.19)
j =1
j ≠i

NOTĂ. Dacă condiţie de convergenţă este satisfăcută, atunci şi soluţia cautată va

converge spre soluţia reală, indiferent de valoarea aproximaţiei iniţiale x0.

Aplicaţia 2.2. Utilizarea metodei Iacobi (iteraţiilor simple)

Se consideră sistemul de ecuaţii liniare :


8 x1 + x2 − x3 = 8
2 x1 + x2 + 9 x3 = 12
x1 − 7 x2 + 2 x3 = −4

Se cere rezolvarea lui cu precizia ε =10-4 .

Rezolvare
Rearanjăm ecuaţiile in aşa fel incât fiecare necunoscută să aibă cel mai mare
coeficient :
30
 8 x1 + x 2 − x 3 = 8

 x 1 − 7 x 2 + 2 x 3 = −4
 2 x + x + 9 x = 12
 1 2 3

Rezolvam fiecare ecuaţie faţa de necunoscută respectivă :


 x1 = 1 − 0,125 x2 + 0,125 x3

 x2 = 0,571 + 0,143 x1 + 0,286 x3
 x = 1,333 − 0,222 x − 0,111x
 3 1 2

Alegem ca o soluţie iniţiala : x1( 0 ) = x2( 0) = x3( 0 ) = 0


Rezultă prima soluţie aproximativă:
 x1(1) = 1 − 0,125 ⋅ 0 + 0,125 ⋅ 0 = 1
 (1)
 x2 = 0,571 + 0,143 ⋅ 0 + 0,286 ⋅ 0 = 0,571
 (1)
 x3 = 1,333 − 0,222 ⋅ 0 − 0,111 ⋅ 0 = 1,333

(1) (1) (1)


Introducem valorile obtinute pentru x1 , x 2 , x3 in partea dreapta a sistemului,
rezultănd o noua solutie :

x1( 2 ) =1 −0,125 ⋅0,571 +0,125 ⋅1,333 =1,095


 (2)
x2 =0,571 +0,143 ⋅1 +0,286 ⋅1,333 =1,095
 (2)
x3 =1,333 −0,222 ⋅1 −0,111 ⋅0,571 =1,048

Dupăm înlocuirea x1( 2 ) , x2( 2 ) , x3( 2 ) în partea dreaptă a sistemului , rezultă o

nouă soluţie, etc.

Din valorile numerice putem alcătuiun tabel :

31
Tabelul 2.1
Soluţii 0 1 2 3 4 5 6 7

x1 0 1,000 1,095 0,995 0,993 1,002 1,001 1,000


x2 0 0,571 1,045 1,026 0,990 0,998 1,001 1,000
x3 0 1,333 1,048 0,964 1,000 1,004 1,001 1,000

Din tabelul se vede ca după a 7ª iteraţia soluţii nu se mai schimbă.

Răspuns: x1 = x2 = x3 = 1,000

2.1.3. Metoda iterativă Gauss – Seidel

In acest caz, trecerea sistemului de ecuaţii (2.17) de la iteraţia (k) spre (k+1) nu se
mai face simultan pentru toate ecuaţiile,ci prin utiizarea soluţiilor obţinute din ecuaţii
precedente. Pentru sistemul examinat iteraţia (k+1) se realizează prin relaţia:
bi ( i −1) aij ( k +1) n aij
x ( k +1)
i = − ∑ ⋅ xj − ∑a ⋅ x (jk ) (2.19)
aii j =1 aii j = i +1 ii

NOTĂ. Avantajul esenţial al acestei metode îl constituie creşterea vitezei de convergenta,


datorită reducerii numărului total de iteraţii necesare.

Aplicaţia 2.3. Utilizarea metodei iterative Gauss-Seidel.


Vom rezolva acelaşi sistem din Aplicatia 2.2 , pentru a arăta rapiditatea
convergenţei soluţiei numerice la utilizarea metodei Gauss-Seidel. Deci , avem :

32

x1 =1 − 0,125 ⋅ x 2 + 0,125 ⋅ x 3

x 2 = 0,571 + 0,143 ⋅ x1 + 0,286 ⋅ x 3
x =1,333 − 0,222 ⋅ x − 0,111 ⋅ x


3 1 2

Rezolvare
Considerând soluţia iniţiala x1 = x2 = x3 = 0 în prima ecuaţie şi se obţine soluţia
(0) (0) (0)

x1(1) :

x1(1) = 1 − 0,125 ⋅ 0 + 0,125 ⋅ 0 = 1

După aceasta se rezolvă a două ecuaţie introducând x1(1) = 1 şi x3(1) = 0 :


x1(1) = 0,571 + 0,143 ⋅1 + 0,286 ⋅ 0 = 0,714

Considerănd noile solutii: x1(1) = 1 şi x 2(1) = 0,714 , se rezolvă a treia ecuaţia:


x3(1) = 1,333 − 0,222 ⋅ 1 − 0,111 ⋅ 0,714 = 1,032

A doua iteraţie se incepe prin introducerea soluţiilor x 2(1) = 0,714 si x3(1) = 1,032 in prima
ecuatie , rezultă :
x1( 2 ) = 1 − 0,125 ⋅ 0,714 + 0,125 ⋅ 1,032 = 1,039

Introducând x1( 2) = 1,039 şi x3(1) = 1,032 rezultă :


x 2( 2 ) = 0,571 + 0,143 ⋅ 1,039 + 0,286 ⋅ 1,032 = 1,014

În fine, cu noi soluţii x1( 2) = 1,039 şi x 2( 2) = 1,014 se obţine :


x3( 2 ) = 1,333 − 0,222 ⋅ 1,039 − 0,111 ⋅ 1,014 = 0,990

Procedând în mod asemănător se obţin rezultatele prezentate mai jos in tabelul 2.2 :

33
Tabelul 2.2
Soluţia Număr de iteraţii
( k +1)
x i 0 1 2 3 4 5
x1 0 1.000 1.039 0.997 1.001 1.000
x2 0 0.714 1.014 0.996 1.000 1.000
x3 0 1.032 0.990 1.002 1.000 1.000

Din tabelul se vede ca după a 5- a iteraţie soluţii nu se mai schimbă.

Răspuns: x1 = x2 = x3 = 1,000

34