Documente Academic
Documente Profesional
Documente Cultură
ro/~ccosmin)
1. Introducere Metodele de rezolvare a sistemelor de ecuatii liniare de forma (1) se grupeaza in general in doua categorii: metode directe, bazate pe procedee de eliminare si metode indirecte (iterative).
a11 a 21 ... a n1 a12 a 22 ... an 2 ... a1n x1 b1 ... a 2 n x b 2 = 2 ... ... ... ... ... a nn xn bn
AX = B
(1)
(1')
Proprietatile pe care le ofera liniaritatea unei functii sau ecuatii sunt utilizate ca elemente de baza pentru metodele de rezolvare bazate pe procedee de eliminare a necunoscutelor. Ecuatiile sistemului initial se pot multiplica prin constante si se combina cu ajutorul operatiilor suplimentare obtinindu-se in final forme simplificate ale sistemului considerat. La alegerea unei metode de calcul, pentru rezolvarea unei anumite probleme pe un sistem de calcul dat, trebuie avute in vedere o serie de criterii cum ar fi: numarul secventelor de calcul, precizia rezultatelor, posibilitatea introducerii unor teste de precizie, secventiale, pe parcursul desfasurarii algoritmului. In cadrul metodelor directe, care se considera a fi metode exacte, s-au impus metodele care au la baza algoritmul de eliminare Gauss, cu variantele Gauss-Jordan, Doolitle, Crout si Cholesky. Metodele exacte permit obtinerea solutiei exacte a sistemului de ecuatii facind abstractie de erorile de tip round-off ale sistemului de calcul, de erorile de rotunjire si trunchiere folosind un numar finit de operatii elementare. In cadrul metodelor iterative s-au impus metodele Jacobi, Gauss-Seidl, metoda relaxarilor succesive si metoda Lanczos. Metodele iterative se caracterizeaza prin faptul ca solutia sistemului considerat se obtine ca limita a unui sir de valori ce reprezinta solutii pentru diverse iteratii succesive. In cadrul acestor metode, se pune problema de a alege acea metoda, care asigura cea mai mare viteza de convergenta a solutiilor pentru o aproximare initiala adecvat aleasa. Dintre metodele numerice directe, utilizate la rezolvarea sistemului de ecuatii algebrice neomogene se vor prezenta: metoda eliminarii directe Gauss, metoda factorizarii LU si metoda Cholesky.
2. Proceduri numerice de rezolvare a sistemelor de ecuatii liniare Dintre metodele numerice directe, utilizate la rezolvarea sistemului de ecuatii algebrice neomogene se vor prezenta: metoda eliminarii directe Gauss, metoda factorizarii LU si metoda Cholesky, iar ca si metoda indirecta (iterativa) de rezolvare a sistemelor de ecuatii liniare va fi prezentata metoda Jacobi. 2.1. Metoda eliminarii Gauss In prima etapa numita triangularizare (substitutia inainte) se elimina succesiv in n-1 pasi necunoscutele xi, i=1,2,...n-1 din ecuatiile sistemului ceea ce are ca rezultat eliminarea elementelor situate sub diagonala principala a metricei A si transformarea acestora intr-o matrice superior triunghiulara. In pasul 1 se obtine: a11 0 ... 0 sau cu notatiile a12 a a22 21 a12 a11 ... a a n 2 n1 a12 a11 a1n b1 x 1 a a ... a 2 n 21 a1n x b2 21 b1 a11 a11 2 = ... ... ... ... a n1 an1 a1n xn bn ... a nn b1 a11 a11 ...
(2)
(3)
rezulta: a11 0 ... 0 a12 ... a1n x1 b1 (1) (1) (1) a22 ... a2 b n x2 = 2 ... ... ... ... ... (1) (1) (1) an ... ann bn 2 xn
(4)
In pasul i-1 al eliminarii sistemul de ecuatii devine: a11 a12 ... a1i ... a1n x1 b1 0 a (1) ... a (1) ... a (1) x b (1) 22 2i 2n 2 2 ... ... ... ... ... ... ... ... (i 1) (i 1) = (i 1) a a 0 0 ... ... ii in xi bi ... ... ... ... ... ... ... ... (i 1) (i 1) (i 1) 0 ... a ni ... a nn 0 xn bn sau in forma restrinsa: A (i 1) [X] = B (i 1)
(5)
(6)
In pasul l se obtine cu
(l ) (l 1) aij = aij
[A ( ) ] [X] = [B ( ) ]
l l
(7)
bi = bi
(l )
(l 1)
(8)
In final dupa consumarea pasului n-1, sistemul este complet triangularizat: a11 a12 a13 ... a1n x1 b1 (1) (1) (1) (1) ... a 2 a 22 a 23 b n x2 2 (2 ) (2 ) a33 ... a3n x3 = b3( 2 ) ... ... ... ... ( n 1) ( n 1) ann xn bn sau utilizind o scriere simbolica:
(9)
[0 \ S] [X] = [B ' ]
(10)
Observatie In procesul de calcul automat, matricele succesive A (l ) se construiesc in spatiul de memorie initial alolcat pentru matricea [A ] . Procedeul se prezinta algoritmat in forma urmatoare:
[ ]
Pentru determinarea solutiei sistemului (1) are loc un proces de eliminare inversa (substitutia inapoi) care poate fi descris astfel:
xn =
(11)
1) ai(,ii +1 xi +1
ai ,n xn ...
(i 1)
(i 1) aii
, i = n 2, n 3,...,1
i = n 1, n 2,...,1 xi = a bi
1 ii
a x ij j j = i +1
n
in care aij sunt elemente ale matricii triunghiulare S iar bi elementele matricii B'. In concluzie, in urma aplicarii unei eliminari Gauss dupa n-1 etape de calcul se obtine o matrice S superior triunghiulara, asociata sistemului (1) cu conditia ca matricea A sa fie nesingulara, iar elementele transformate de pe diagonala principala sa rezulte nenule in (l ) fiecare pas al eliminarii: aii 0 , i=1,2,...,n; l=1,2,...,n-1. Valoarea determinantului matricii A este dat de produsul elementelor de pe diagonala principala a matricii S: (1) (2 ) ( n 1) det (A ) = det (S ) = a11 a 22 a33 ... a nn (12)
2.2. Descompunerea LU
O modificare a metodei eliminarii, numita descompunerea sau factorizarea LU este frecvent utilizata. In aceasta metoda, matricea coeficientilor A este tranformata intr-un produs de doua matrici L si U unde L este matricea inferior triunghiulara si U este matricea superior triunghiulara avind elemente egale cu 1 pe diagonala principala. Orice matrice poate fi scrisa ca produsul unei matrici a permutarilor P a unei matrice inferior triunghiulara L si a uneia superior triunghiulara U, intr-o infinitate de moduri. Din intreaga gama de posibilitati vom alege varianta in care U are 1 pe diagonala.In continuare va fi exemplificata aplicarea metodei in cazul unei matrici de dimensiuni 4x4.
(13)
Inmultind liniile lui L cu prima coloana a lui U: l11 = a11 ; l 21 = a 21 ; l31 = a31 ; l 41 = a 41 Inmultind prima linie a lui L cu coloanele a lui U: l11 u12 = a12 ; l11 u13 = a13 ; l11 u14 = a14 ; de unde a a a u12 = 12 ; u13 = 13 ; u14 = 14 l11 l11 l11
(14) (15)
(16)
In aceasta metoda se alterneaza gasirea unei coloane a lui L si a unei linii a lui U, astfel ca urmeaza gasirea urmatoarei coloane a lui L, prin inmultirea liniilor lui L cu cu coloana a doua a lui U: l 21 u12 + l 22 = a22 ; l31 u12 + l32 = a32 ; l 41 u12 + l 42 = a42 (17) l 22 , l32 , l 42
Procedind analog obtinem in continuare: a l u a l u u 23 = 23 21 13 ; u 24 = 24 21 14 l 22 l 22 l33 = a33 l31u13 l32 u 23 ; l 43 = a43 l 41u13 l 42 u 23 a l u l u u34 = 34 31 14 32 24 l33 l 44 = a44 l 41u14 l 42u 24 l 43u34 Formulele generale pentru obtinerea elementelor matricelor L si U sunt: lij = aij lik u kj ; j i, i = 1,2,..., n
k =1 j 1
(18)
uij =
aij lik u kj
k =1
i 1
lii
Observatie: Stocarea matricii Deoarece matricele L si U pot fi stocate in zona rezervata matricei A aceasta metoda este cunoscuta si sub denumirea de schema compacta:
a11 a 21 A= ... a n1
a12 a 22 ... an 2 ... a1n l11 u12 ... a 2 n l 21 l 22 ... ... ... ... ... a nn l n1 l n 2 ... u1n ... u 2 n ... ... ... l nn
(21)
(22)
(23)
Elementele matricei L se obtin in functie de cele ale matricei A prin identificarea termen cu termen a rezolvarii produsului matrceal (22). Se obtin urmatoarele relatii de recurenta: a l11 = a11 ; li1 = i1 l11
2 lii = aii lii ; 1< i = j
l =1 j 1 1 lij = a l jj , i > j > 1, lij = 0, i < j ij lli llj l =1 i 1
(24)
( )
Relatia (24) arata ca termenii de pe diagonala principala rezulta sub forma radacinii patrate din diferenta dintre elementele diagonalei respective aii si suma patratelor tuturor elementelor de pe aceeasi coloane calculate anterior. Termenii secundari se calculeaza ca diferente intre elementele respective aij al matricei A si suma unor produse de cite doi factori, reprezentind elementele coloanelor i si j, totul impartit la termenul corespunzator de pe diagonala principala lii. Rezolvarea sistemului de ecuatii: (25) Cu notatia [L ][X] = [B'] procedura de rezolvare in doua etape se aplica dupa cum urmeaza: Substitutia inainte: [L][B'] = [B] [B']
1 ) b1' = b1 (l11 i 1 1 ' lii , i = 2,3,..., n bi' = b l b i ji j j =1 Substitutia inapoi [L][X] = [B'] [X]
[L ][L][X] = [B] ;
T
(26)
(27)
(28)
xn =
' bn 1 l nn
i = n 1, n 2,...,1
n ' 1 xi = bi lij x j lii j = i +1
(29)
Observatie: Remarcabil este faptul ca in factorizarea Cholesky vectorul B nu este afectat si in consecinta matricea L o data obtinuta poate fi utilizata si pentru alte situatii, vectori liberi diferiti.
(30)
set de
(31)
(32)
Calculele se pot conduce matriceal considerind relatia (32) scrisa sub forma condensata:
X = g + MX (33) gasind simultan la fiecare iteratie aproximatiile tuturor necunoscutelor. Considerind vectorul de pornire:
(X ( ) ) = (x ( )
0 T 0 1
(34) (35)
X (1) = g + MX (0 )
X ( 2 ) = g + MX (1) ....
(36)
X ( m+1) = (I + M + M 2 + ... + M m )g + M m+1 X (0 ) Cum procesul iterativ, daca e convergent, nu trebuie sa depinda de vectorul de pornire X(0), va rezulta ca: m +1 (38) lim M = 0
n
X (3 ) = g + MX ( 2 ) = g + M ((I + M )g + M 2 X (0 ) ) = (I + M + M 2 )g + M 3 X (0 ) ...
X ( 2 ) = g + MX (1) = g + M (g + MX (0 ) ) = (I + M )g + M 2 X (0 )
(37)
adica matricea M trebuie sa fie convergenta, sa ca M < 1 . Folosind pentru norma, norma linie rezulta ca putem scrie: n n a 1 n ij < 1; (39) mij < 1; aij < aii aii j =1 j =1 j =1 aii
j i j i j i
din ultima inegalitate deducindu-se ca, pentru ca metoda Jacobi sa fie convergenta, trebuie ca matricea A a sistemului sa fie diagonal dominanta. Procesul de iterare este continuat in baza relatiilor (37) pina la incadrarea in precizia dorita: X ( k +1) X ( k ) < (40) X ( k +1) numarul de iteratii fiind influentat de calitatea aproximatiei initiale X(0) si de modul in care este conditionata matricea A a coeficientilor sistemului.
X = A 1 b; X A 1 b ; b A X e = A 1 r; e A 1 r ; r A e
sau:
(45)
b e A A 1 X r X r A A 1 b e
Din (46) rezulta
be A A 1 Xr be 1 Xr A A 1
(46)
(47)
sautinind cont ca A A 1 = cond(A ) numit numarul de conditie a matricii A obtinem: r e r 1 cond( A) cond( A) b X b (48)
10
Relatia (48) poate furniza informatii asupra stabilitatii sistemelor de ecuatii liniare. Astfel daca matricea A a sistemului are numarul de conditie cond(A)1 atunci modificarea e este de acelasi ordin de marime ca si modificarea in termenul solutiei exprimata prin X liber definit de r . Altfel spus daca mici modificari se produc in termenul liber, solutia b se modifica si ea in aceeasi masura. Sistemele cu matricea coeficientilor A avind numarul de conditie cond(A) mic sunt sisteme bine conditionate, stabile in solutie.
Exemplu numeric
6 4 2 0 0 -2 5 10 15 20
1.57x-3.42y=2.35 1.6x-3.40y=2.40
25
30
35
Fig. 1 O imbunatatire a conditionarii se obtine daca se scade prima ecuatie din cea de a doua si rezultatul se multiplica cu 100: 3.0 x + 2.04 y = 5.0 (50) 1.60 x 3.40 y = 2.40 Solutiile acestui nou sistem x=1.63, y=0.06 sunt putin diferite de ale celui precedent, dar modificarile coeficientilor nu le influenteaza in mod insemnat (Fig. 2).
11
20
10
Y
-30 -40 -50
Fig. 2
12