Sunteți pe pagina 1din 9

UNIVERSITATEA DIN CRAIOVA

FACULTATEA DE MATEMATICA

REZOLVAREA NUMERICĂ
A SISTEMELOR DE
ECUAȚII LINIARE
FOLOSIND METODE
ITERATIVE

DESPEA CORINA-studentă anul ll,conversie matematică


REZOLVAREA NUMERICĂ A SISTEMELOR DE ECUAȚII LINIARE
FOLOSIND METODE ITERATIVE

Aspecte teoretice

Rezolvarea sistemelor cu un mare număr de ecuații liniare reprezintă unul din domeniile în
care calculatoarele numerice ș-au dovedit din plin eficienta. Problema rezolvării sistemelor de
ecuații liniare este foarte des întâlnită în simularea numerică. Enumerăm câteva situații:
interpolare cu funcții spline cubice, rezolvarea sistemelor de ecuații neliniare cu ajutorul
metodelor iterative care au la bază liniarizarea ecuațiilor, discretizarea ecuațiilor diferențiale
ordinare cu condiții la limită, discretizarea ecuațiilor cu derivate parțiale. ˆIn mod
corespunzător, a trebuit să fie puse la punct procedee numerice adecvate, atât pentru
reducerea numărului mare de operații, cât ¸si pentru reducerea erorilor de calcul care cresc cu
dimensiunile sistemului de ecuații. În cazul general, problema care trebuie rezolvată poate fi
scrisă sub forma Xn j=1 ai,jxj = bi , i ∈ 1, unde ai,j ∈ R sunt coeficient¸i, xj , j ∈ 1, n sunt
necunoscutele sistemului, iar bi sunt termenii liberi. Vom distinge trei situatii:
(a) Pentru m < n sistemul este subdeterminat, avem mai puține ecuații decăt necunoscute. În
general, vor trebui aleși n−m parametrii pentru a obține o soluție.
(b) Pentru m = n ¸si det A = 0 sistemul este compatibil determinat. Sistemul are o soluție
unică. Este cazul cel mai des întâlnit. Pentru m = n ¸si det A = 0 sistemul poate fi compatibil
nedeterminat, cu o infinitate de soluții posibile, sau incompatibil, cu nici o soluție.
(c) Pentru m > n sistemul este supradeterminat, caz în care se caută o soluție care să verifice
“cel mai bine” ecuațiile în sensul minimizării reziduului R = Pn i=1(bi − Pn j=1 ai,jxj ) . Nu
trebuie uitat că, la reprezentarea numerelor în calculator nu putem reține decât un număr finit
de cifre, iar erorile de rotunjire se propagă după reguli. Se poate ajunge în situația ca din
cauza acestor erori, determinantul să devină egal cu zero sau să aibă o valoare foarte mică în
modul. Complexitatea implementărilor prezente în bibliotecile matematice se datorează în
mare parte tehnicilor de evitare a acestei situații, dar totodată și eforturilor de minimizare a
memoriei utilizate și a timpului de calcul.
Metodele de rezolvare a sistemelor de ecuații liniare sunt de dou˘a tipuri:
a) metode directe (sau metode de eliminare sau metode exacte), în care soluția este obținută
în urma unui număr de operatii dinainte cunoscut;
(b) metode iterative, care se bazează pe folosirea unei aproximatii initiale ce se îmbunătățește
de la o etapă la alta.

În rezolvarea numerică a sistemelor de ecuații liniare folosind metode iterative se


porneşte de la o aproximaţie iniţială, notată X0, şi se construieşte un şir de aproximaţii
succesive X0, X1, ..., Xk, ... care în anumite condiţii converge către soluţia exactă, notată
X*. Dacă pentru acest şir nu se poate defini o limită se spune că metoda este divergentă.
În caz contrar, metoda este convergentă. Acest lucru este echivalent cu posibilitatea de a
defini o relaţie de recurenţă între două aproximaţii succesive de forma:

X k +1 = F (X k ), k = 0, 1,
În ceea ce priveşte convergenţa metodei, se poate demonstra că aceasta este garantată numai
dacă matricea coeficienţilor A este diagonal dominantă. Aproximaţia iniţială X0 nu joacă un
rol determinant în convergenţă, aceasta afectând numai numărul de iteraţii. Metodele de
eliminare comportă un număr de operațiii care crește la sistemele mari, cu cubul numărului
de ecuații din system. Operații suplimentare sunt cerute de căutarea pivoților, în vederea
reducerii erorilor de rotunjire. Metodele iterative pot conduce la un număr mai mic de
operații pe iterație. Dacă procedeul iterativ este suficient de rapid convergent se poate obține
o economie importantă de timp de calcul. În plus, metodele iterative permit mentinerea
structurii inițiale a unei matrice rare, rezultând un consum redus de memorie. Principiul
general al metodelor iterative poate fi prezentat prin analogie cu metoda iterației simple de
rezolvare a ecuației F(x) = 0, în care ecuația originală este transcrisă ca x = f(x), ce conduce
la procedeul iterativ xk+1 = f(xk). În cazul sistemelor liniare, Ax = b vom forța o
descompunere a matricei A A = A + B − B și vom scrie forma echivalentă a sistemului liniar
inițial Bx = c ≡ (B − A)x + b . Analog iterației simple, vom considera relatția ca o procedură
de obtinere a unei aproximații îmbunătățite a soluției sistemului x (k+1), dată fiind o
aproximație inițială x (k) , Bx(k+1) = (B − A)x (k) + b . Descompunerea se alege astfel încât:
1. șirul aproximațiilor {x (k)}k∈N să fie cât mai rapid convergent către solutia sistemului
Ax = b;
2. sistemul Bx = c să fie ușor de rezolvat.
Metode de soluționare iterative

1. Metoda Jacobi

Fie sistemul de ecuaţii liniare dat sub forma:

a11 x1 + a12 x2 + + a1n xn = b1


a21 x1 + a22 x2 + + a2n xn = b2
(2)

am1 x1 + am2 x2 + + amn xn = bm


Pentru sistemul (2) se presupune că elementele aii ≠ 0, i = 1, ..., n şi determinatul
matricei det(A) ≠ 0, unde A este matricea coeficienţilor din sistemul de ecuaţii liniare.
Dacă se explicitează fiecare necunoscută a sistemului în funcţie de celelalte
necunoscute rezultă o relaţie iterativă de forma:

n
xi k +1
= (bi − ∑aij ⋅ xkj ) / aii , i = 1,..., n , k ≥ 0 (3)

Relaţia de recurenţă (8.3) reprezintă formula de iterare a metodei Jacobi.


În cazul în care în forma iniţială a sistemului de ecuaţii matricea A conţine cel puţin un
element diagonal nul, înaintea aplicării metodei Jacobi este necesar schimbarea ordinei
unor ecuaţii astfel încât să se asigure valori nenule pentru toate elementele diagonale.
Această operaţie se poate realiza folosind pivotarea parţială care se execută o singură
dată, înaintea intrării în bucla iterativă.
Aplicarea cu succes a metodei Jacobi necesită şi o altă condiţie legată de matricea A
care trebuie să fie dominant diagonală, adică elementele diagonale ale acesteia să
domine în valoare absolută elementele din afara diagonalei principale:
n

a
ii > ∑ aij (4)
j=1
j≠i
Dacă matricea A este dominant diagonală, aproximaţia iniţială poate fi aleasă oricum,
iar metoda va converge. Însă, atunci când nu se cunosc informaţii privind localizarea
soluţiei se poate considera aproximaţia iniţială identică cu termenii liberi.
Condiţia de convergenţă impusă procesului iterativ se referă la abaterea maximă între
două iteraţii succesive care trebuie să fie se fie sub o valoare prag Emax, impusă de
utilizator. Abaterea maximă se defineşte ca cea mai mare abatere, în valoare absolută,
între necunoscute în două iteraţii succesive:

max( xik +1 − xik )≤ Emax (5)


i

2. Metoda Seidel-Gauss

Metoda Seidel-Gauss este foarte asemănătoare cu metoda Jacobi, singura deosebire


dintre ele fiind următoarea: la metoda Jacobi în partea dreaptă a relaţiei (8.3) apar numai
valorile anterioare ale variabilelor (valorile de la iteraţia k–1), iar în cadrul metodei
Seidel-Gauss apar atât unele valori anterioare (pentru variabilele care nu au fost încă
recalculate), cât şi unele valori noi (valorile de la iteraţia k, pentru variabilele care au
fost recalculate deja).
Relaţia de calcul iterativ este de forma:
i −1 n
+1
xi k +1
= (bi − ∑aij ⋅ x j k
− ∑aij ⋅ xkj ) / aii , i = 1,..., n , k ≥ 0 (6)
j =1 j =i +1

Această variantă de calcul indică o îmbunătăţire a vitezei de convergenţă datorită


folosirii unor informaţii mai precise din iteraţia curentă.

3. Metoda Seidel-Gauss modificată

Dacă se dorește o accelerare suplimentară a convergeței se poate folosi un factor de


accelerare α. În ceea ce priveşte accelerarea vitezei de convergenţă, aceasta nu se
produce pentru orice valoare a factorului α, iar alegerea optimă a acestuia este
dependentă de problemă.Formula de iterare a metodei Seidel-Gauss modificată este:

a a
b i−1
ij
n
ij
xik +1 = i

−∑ xj−∑
k
xkj
a = a =+ a
ii j1 ii ji1 ii
1 k +1 k
+ 1− (xi − xi ) i = 1,
α
În acest caz, noua aproximaţie se determină în funcţie de aproximaţia calculată cu relația
(6) căreia i se aplică o corecţie depedentă de factorul de accelerare:
a a
* b i−1 ij n ij
((
(xik +1 ) = i
− xkj −∑ xkj
a ∑
= a =+ a
ii j1 ii j i 1 ii

k +1 k +1 * 1 k +1 k

xi = (xi ) +1 − α (xi − xi ) i = 1, , n

Utilizarea unui factor de accelerare care nu a fost bine ales poate transforma un proces care
îndeplineşte condiţia de convergenţă într-unul divergent. Valoarea acestui factor este dependent
de problemă şi se recomandă, ca atunci când se foloseşte metoda Seidel-Gauss modificată, acesta
să se aleagă cu prudenţă între anumite valori. În general se recomandă utilizarea unor valori
cuprinse în intervalul (0, 2).
Exemple numerice

Exemplul 1

Se consideră sistemul de ecuaţii liniar:

8x1 + 6x2 − 2x3 = −2


6 x1 + 10 x2 − 2 x3 + 2 x4 = −8
2 x1+5 x3− 2 x4=16
2x2 + 2x3 + 5x4 = 2
Se cere determinarea soluţiei acestui sistem folosind metoda iterativă Jacobi.

Rezolvare

Se alege aproximaţia iniţială, X0 = [0; 0; 0; 0], abaterea maximă între două iteraţii,
Emax = 0,0001 şi numărul maxim de iteraţii, Nmax=100, formula iterativă (3) devine:

x1 = (−2 − 6x2 + 2x3 ) / 8


x2 = (−8 − 6 x1 + 2 x3 − 2 x4 ) /10

x3 =(16- 2x1 +2x4 )/5

x4 = (2 − 2x2 − 2x3 ) / 5
Iteraţia 1
x1 = (−2 − 6 x0 + 2 x 0) / 8 = −2 / 8 = −0,25
x2 = (−8 − 6 x 0 + 2 x 0 − 2 x0) /10 = − 8 10 = −0,8
x3 = (16 + 2 x0 + 2x 0) / 5 = 16 5 = 3,2
x4 = (2 – 2x 0 – 2x 0) / 5 = 2 5 = 0,4
………………………………………………………………………………………………

Iteraţia 48

x1 = (−2 − 6 x (−0,6272) + 2 x 3,3477) / 8 = 8,4586 / 8 = 1,0574


x2 = (−8 − 6 x1,0574 + 2 x 3,3477 − 2 x (−0,6882)) /10 = − 6,2726 10 = −0,6272
x3 = (16 + 2 1,0574 + 2 x (−0,6882)) / 5= 16,7348 5 = 3,3477
x4 = (2 − 2 x (−0,6272) − 2 x 3,3477) / 5 = − 3,441 5 = −0,6882

Exemplul 2

Se consideră sistemul format din 4 ecuaţii liniare definit în cadrul exemplului 1. Se cere
determinarea soluţiei acestui sistem folosind metoda iterativă Seidel-Gauss.

Rezolvare

Se alege aproximaţia iniţială, X0=[0; 0; 0; 0], abaterea maximă între două iteraţii,
Emax = 0,0001 şi numărul maxim de iteraţii, Nmax = 100, formula iterativă (6) devine:

x1 = (−2 − 6x2 + 2x3 ) / 8


x2 = (−8 − 6 x1 + 2 x3 − 2 x4 ) /10

x3 =(16- 2x1 +2x4 )/5

x4 = (2 − 2x2 − 2x3 ) / 5

Iteraţia 1
x1 = (−2 − 6 x0 + 2x 0) / 8 = −2 / 8 = −0,25
x2 = (−8 − 6 x (−0,25) + 2 x 0 − 2 x 0) /10 = − 6.5 10 = −0,65
x3 = (16 + 2 x (−0,25) + 2 x 0) / 5 = 15,5 5 = 3,1
x4 = (2 − 2 x (−0,65) − 2 x 3,1) / 5 = − 2,9 5 = −0,58
----------------------------------------------------------------------------------------------------------------

Iteraţia 11
x1 = (−2 − 6 x (−0,6272) + 2 x 3,3477) / 8 = 8,4586 / 8 = 1,0574
x2 = (−8 − 6 x1,0574 + 2 x 3,3477 − 2 x (−0,6882)) /10 = − 6,2726 10 = −0,6272
x3 = (16 + 2 x1,0574 + 2 x (−0,6882)) / 5 = 16,7348 5 = 3,3477
x4 = (2 − 2 x (−0,6272) − 2 x 3,3477) / 5 = − 3,441 5 = −0,6882

Exemplul 3

Se consideră sistemul format din 4 ecuaţii liniare definit în cadrul exemplului 1. Se cere
determinarea soluţiei acestui sistem folosind metoda iterativă Seidel-Gauss modificată.

Rezolvare

Dacă se alege aproximaţia iniţială X0=[0; 0; 0; 0], abaterea maximă între două iteraţii
Emax = 0,0001, numărul maxim de iteraţii Nmax = 100, coeficientul de accelerare
ω= 1,15, formula iterativă devine:

x1 = (−2 − 6x2 + 2x3 ) / 8


x2 = (−8 − 6 x1 + 2 x3 − 2 x4 ) /10
x3 =(16- 2x1 +2x4 )/5
x4 = (2 − 2x2 − 2x3 ) / 5

Iteraţia 1

Se determină noua aproximaţie cu formula metodei Seidel-Gauss obişnuită;


x11= (−2−6⋅0+ 2⋅0)/8 = −2/8 = −0,25
x21 = (−8− 6⋅(−0,25) + 2⋅0− 2⋅0)/10 = − 6,5 10 = −0,65
x3 1=((16 + 2⋅(−0,25) + 2⋅0)/5= 15,5 5 = 3,1
x41 = (2 − 2⋅(−0,65) − 2⋅3,1)/5 = − 2,9 5 = −0,58
Se calculează corecţia folosind aproximaţia calculată şi cea din iteraţia anterioară, iar apoi
se determină noua aproximaţie, prin aplicarea acestei corecţii valorii calculate cu metoda
Seidel-Gauss obişnuită.

x1(1) = x1(0) + ω ⋅ (x1 − x1 )= 0 + 1,15 ⋅ (−0,25 − 0) = −0,2875


(1) (0)
x2(1) = x2(0) + ω ⋅ (x2 − x2 )= 0 + 1,15 ⋅ (−0,65 − 0) = −0,7475
(1) (0)

(0) (1) (0)


( )
x3(1) = x3 + ω ⋅ x3 − x3 = 0 + 1,15 ⋅ (3,1− 0) = 3,565
(1) (0) (1) (0)
x
4 = x4 + ω ⋅ (x4 − x4 )= 0 + 1,15 ⋅ (−0,58 − 0) = −0,667
Iteraţia 9
(9)
x
1 = (−2 − 6 ⋅ (−0,6273) + 2 ⋅ 3,3476) /8 = 8,4586 /8 = 1,0574
x2(9) = (−8 − 6 ⋅1,0574 + 2 ⋅ 3,3477 − 2 ⋅ (−0,6882)) /10 = − 6,2726 10 = −0,6273
x3(9) = (16 + 2 ⋅1,0574 + 2 ⋅ (−0,6882)) / 5 = 16,7348 5 = 3,3476
(9)
x
4 = (2 − 2 ⋅ (−0,6273) − 2 ⋅ 3,3476) / 5 = − 3,441 5 = −0,6882
= x1(8) + ω ⋅ (x1 − x1 )= 1,0576 + 1,15 ⋅ (1,0574 − 1,0576) = 1,0574
(9) (9) (8)
x1
= x2(8) + ω ⋅ (x2 − x2 )= −0,6274 + 1,15 ⋅ (−0,6273 + 0,6274) = −0,6272
(9) (8)
x2(9)
(9)
x3(9) = x3 + ω ⋅ x3 − x3
(8) (
(8)
)
= 3,3478 + 1,15 ⋅ (3,3476 − 3,3478) = 3,477
(9) (8) (9) (8)

x
4 = x4 + ω ⋅ (x4 − x4 )= −0,6882 + 1,15 ⋅ (−0,6882 + 0,6882) = −0,6882
CONCLUZII

Spre deosebire de metodele directe,soluţia folosind metodele iterative se obţine printr-o serie
(proces) de aproximaţii succesive, fiecare secvenţă de operaţii aritmetice elementare (mai
mic decât la metodele directe) este parcursă de mai multe ori, obținându-se aproximaţii din
ce în ce mai bune ale soluţiei până la atingerea unei precizii fixate dinainte (precizie dorită).
Aceste metode permit obţinerea soluţiei numerice a unui sistem de ecuaţii prin generarea
unui şir care tinde la soluţia exactă.Practic se poate efectua numai un număr finit de
iteraţii, erorile de rotunjire sunt însoţite în cazul metodelor iterative şi de erori de
trunchiere.Ca avantaj al metodelor iterative putem enumera simplitatea şi eficienţa
implementării lor în programe, în cazurile în care nu sunt rezolvabile prin metode
directe.Aceste metode au și dezavantaje pentru faptul că nu se poate stabili de la început
numărul de pași necesari rezolvării.Astfel sunt costisitoare,mai ales în ceea ce privește timpul
de calcul.Se folosesc în general pentru sisteme de dimensiuni mari și sunt de asemenea
potrivite rezolvării sistemelor ce prezintă mulți coeficienți nuli.

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