Documente Academic
Documente Profesional
Documente Cultură
CURS 3
METODE NUMERICE PENTRU SISTEME DE ECUAŢII LINIARE
------------------------------------------------------------------------------------------------------------
I. Metode directe: Gauss; LU; Cholesky; Cholesky – matrici bandă.
0. INTRODUCERE
Sistemele de ecuaţii liniare apar în modelarea unor probleme ştiinţifice, precum şi în
metodele numerice de rezolvare a acestora. Exemple: sisteme de ecuaţii neliniare,
aproximarea funcţiilor, probleme la limită pentru ecuaţii diferenţiale, ecuaţii cu
derivate parţiale, optimizare, etc.
Găsirea soluţiei unui sistem de ordin mare (sau inversarea unei matrici de ordin
mare), poate fi o sarcină dificilă în practică, datorită:
(2) Erorilor propagate, într-un şir lung de operaţii cu numere reprezentate în virgulă
flotantă.
Dificultatea (1) face nepractică rezolvarea manuală, iar (2) este inerentă în utilizarea
calculatorului.
Asemenea sisteme pot ajunge la sute de mii de ecuaţii. Eliminarea Gauss nu mai este
convenabilă, şi se utilizează metode iterative.
a11 a1n x1 b1
a
21 a 2 n b2 (1)
a n1 a nn x n bn
Sau:
Ax b , (1)
I. METODE DIRECTE
1 Metoda Gauss
1.1 Metoda
A (1) x b (1) .
A (k ) x b (k ) .
a11
(1) (1)
a12 a1(1k) . . a1(1n)
( 2)
0 a 22 a 2( 2k) . . a 2( 2n)
. 0 . .
. . a k( k1,1k)1 . . a k( k1,1n)
A (k ) 0 . 0 a kk( k ) . a kj( k ) . a kn( k ) (mik ) ;
. . . . . . . .
. . . (k )
aik . (k )
aij . ain (k )
. . . . . . . .
(k ) (k )
0 0 0 a nk . . . a nn
b1(1)
( 2)
b2
( k 1)
bk 1,k 1
b (k ) bk( k ) ( mik )
.
b (k )
i
.
(k )
bn
Elementul diagonal a kk(k ) se numeşte pivot (la pasul k). Presupunem a kk( k ) 0 – v. mai
elemente nule în coloana k, sub elementul diagonal a kk(k ) . Linia k rămâne neschimbată.
Ux g . Explicit:
u11 . . . . u1n x1 g1
0 u . . . u 2 n x 2 g 2
22
. . . . . .
(2)
0 0 u kk . u kn x k g k
. . . .
0 0 u nn x n g n
Observaţi că u kk akk(k ) .
1 0 . . . 0
m 0
21 1 0
m31 m32 1 0 0
L (3)
. . . . . .
. . . . 1 0
mn1 mn 2 . . mn ,n 1 1
Propoziţia 1
Dacă, în eliminarea Gauss, la fiecare pas k pivotul a kk( k ) 0 , atunci A LU ■
n3
NOPGuass
3
1.4 Pivotare
avem condiţiile:
- Dacă pivotul este nul, eliminarea Gauss nu poate continua. În acest caz, matricea
este singulară.
- Dacă pivotul este ”foarte mic”: rezultă multiplicatori mik mari, iar erorile de
Dacă pivotul este mai mic decât pragul, eliminarea Gauss se opreşte.
Strategii de pivotare:
1) Pivotarea parţială:
2) Pivotarea completă:
coloanele k şi J - în A, şi liniile k şi I - în b ■
Observaţii
- Prin pivotare rezultă, la fiecare pas, multiplicatori de modul 1:
| mik | 1, i k 1, ... , n .
Teoretic, pivotarea completă duce la o precizie mai mare a soluţiei; în practică însă,
diferenţa este mică faţă de pivotarea parţială. În plus, pivotarea completă cere mai
mult timp-calculator. Din aceste motive, majoritatea algoritmilor utilizează pivotarea
parţială. În ceea ce urmează vom considera numai pivotarea parţială, numită pe scurt,
pivotare ■
Observaţie
Dacă nu se pivotează, atunci avem LU = A (Propoziţia 1).
Calculul determinantului:
Determinantul matricii A va fi
5 6 3 1
1 0 1 1
A b 1 1 1 1
T
,
2 2 1 6
4 2 3 4
Permutare, Pivot:
1 5.000000
2<->4 -2.800000
3 -0.2857143
4 7.7486033E-07
x(1) = -0.2193944E+08
x(2) = 6452776.
x(3) = 0.2322999E+08
x(4) = 1290555.
* Proba
Diferente (A*x-b)
1 -4.625000
2 0.3750000
3 -1.750000
4 -4.500000
Erorile în soluţie sunt produse de pivotul de la pasul 4, care este “foarte mic”.
3 Descompunerea LU
u j1
u
j2
min(i , j )
aij li1 li 2 lii 0 0 u jj lik u kj
0 k 1
0
Există o neunicitate a descompunerii LU, care provine din alegerea arbitrară a lui l ii
l ii = arbitrar 0;
u ii = arbitrar 0.
i 1
aij lik ukj
uij k 1
, j = i, i+1, …, n (a)
lii
i 1
a ji l jk uki
l ji k 1
, j = i+1, …, n (b)
uii
l ii u i ,i u i ,i 1 u i ,n
l i 1,i
l n ,i
Gauss).
Posibilitatea descompunerii LU
Propoziţie
Descompunerea LU există dacă şi numai dacă toate sub-matricile principale
A(1 : i,1 : i), i 1, n 1 sunt nesingulare ■
i 1
u ii aii lik u ki
k 1
Aşa cum s-a arătat la metoda Gauss, trebuie pivotat şi dacă pivotul este foarte mic.
Practic, se testează dacă pivotul este mai mic decât un prag.
3.3 Metoda
U
1. Factorizare A LU , cu pivotare parţială. A =
L
Observaţii
- Legătura cu eliminarea Gauss este y = g.
4 Metoda Cholesky
Metoda Cholesky se aplică pentru un sistem cu matrice simetrică şi pozitiv definită.
Simetrie: AT A aij a ji , i, j 1, n
Mai întâi, se arată că dacă A este simetrică, valorile proprii sunt reale – v. Cap. 5.
Apoi, fie o valoare proprie şi x vectorul propriu asociat, atunci Ax x .
Inmulţind la stânga cu x T şi ţinând cont de definirea pozitivă a matricii A, rezultă
x T x 0 , din care urmează că este pozitiv.
Observaţie
Reciproc, dacă A este simetrică şi valorile proprii sunt pozitive, atunci A este pozitiv
definită. Demonstraţia cere rezultate de algebră matriceală care sunt în afara scopului
acesui paragraf. V. de exemplu, R. Bellman, “Introducere in analiza matriceală”, E.T.,
Bucureşti, 1969.
(5) Determinatul matricii este pozitiv. Mai mult, toţi determinaţii principali sunt
pozitivi.
Întrucât determinatul matricii este det(A) 12 n - v. Cap. 5, urmează că avem
det(A) 0 . A doua afirmaţie decurge din faptul ca sub-matricile principale sunt şi ele
pozitiv definite – conform Proprietăţii 2.
Observaţie
Reciproc, dacă matricea este simetrică şi toţi minorii principali sunt pozitivi, matricea
este pozitiv definită. Pentru demonstraţie – v. Wilkinson-2.
Cu aceasta, rezultă:
Propoziţie
Dacă A este simetrică şi pozitiv definită, atunci există descompunerea
A LLT , (1)
S LT ,
A ST S (2)
Cele două forme (1) şi (2) reprezintă aceeaşi descompunere, luând ca referinţă una
sau alta din cele două matrici triunghiulare. Ele sunt ilustrate mai jos. 0 desemnează
elementele nule.
0 LT
= ·
A L 0
( ST ) (S)
a 21 a31
l11 a11 ; l 21 , l31 .
l11 l11
a32 l31 l 21
l 22 (a22 l 21 )1 / 2 ;
2
l32
l 22
Exempu numeric:
1 2 3 1 0 0
A 2 13 18 ; L 2 3 0 ■
3 18 50 3 4 5
- Cu matricea L (unde U LT ):
- Cu matricea S (unde U S ; L S T ):
1) A S T S
2) S T y b
3) Sx y
n3
NOPCholesky
6
Acesta este cca. ½ din numărul de operaţii cerute eliminarea Gauss (sau LU).
- Matricea A fiind simetrică, se poate stoca numai triunghiul inferior (sau superior),
cerând numai 1
2 n(n 1) locaţii de memorie. În aceste locaţii se stochează
Observație
Presupunem că matricea sistemului este simetrică şi, în plus, are structura de matrice
bandă, adică în fiecare linie elementele matricii sunt constitutite din:
Observaţie
Între elementele din bandă, pot fi şi elemente nule, dar caracterul de bandă este dat de
faptul că toate elementele situate în afara benzii sunt nule. În acest sens LIM poate fi
considerat semi-lăţimea de bandă maximă ■
a = a11 a12 a13 a22 a23 a24 a33 a34 a35 a44 a45 a46 a55 a56 0 a66 0 0
a = a11 a12 a22 a13 a23 a33 a24 a34 a44 a35 a45 a55 a46 a56 a66
Stocarea se mai poate face pe linii de LIM elemente, într-un tablou B(n, LIM).
Liniile care conţin mai puţin de LIM elemente se completează cu elemene nule
(exemplu: liniile 5 şi 6).
Dacă matricea bandă este simetrică şi pozitiv definită, atunci descompunerea LLT
sau S T S poate fi făcută lucrând exclusiv în bandă ■
Y1 YA
Tablourile Y1 şi YA
1 Metoda JACOBI
Exemplu numeric
Fie sistemul:
8 x1 x2 x3 8
2 x1 x2 9 x3 12
x1 7 x2 2 x3 4
să fie necunoscuta cu coeficientul cel mai mare din ecuaţie, eventual rearanjând
ecuaţiile. Intervertind ecuaţiile 2 şi 3, avem:
x1 1 (1 / 8) x2 (1 / 8) x3
x2 4 / 7 (1 / 7) x1 (2 / 7) x3
x3 12 / 9 (2 / 9) x1 (1 / 9) x2
Sau matriceal:
x1 1 0 1 / 8 1 / 8 x1
x 4 / 7 1/ 7 0 2 / 7 x 2 (1')
2
x3 12 / 9 2 / 9 1 / 9 0 x3
x ( m1) g Mx ( m)
este || x ( m1) x ( m ) || 1E 6 . La iteraţia 12 rezultă soluţia (1.0, 1.0, 1.0) . Coordonata
de modul maxim în Ax b (rezidualul maxim) este 1.43E-06 (ecuaţia 3).
■
Metoda
Explicitând xi se obţine:
n
xi (bi a
j 1, j i
ij x j ) / aii , i = 1, 2, …, n
x ( 0 ) arbitrar
( m1) n
Metoda Jacobi se mai zice metoda “iteraţiilor simultane”, pentru că, coordonatele xi
ale soluţiei x se calculează independent unele de altele. (Pentru alt mod de calcul – v.
metoda Metoda Gauss_Seidel, mai jos.)
2 Metoda Gauss_Seidel
Se modifică metoda Jacobi, astfel că, la calculul coordonatei xi(m ) se utilizează valorile
x1( m ) , …, xi(m1) deja calculate, care în general, sunt aproximaţii mai bune ale soluţiei.
x ( 0) arbitrar
i 1
( m1) n
x
i (bi aij x (jm1) a ij x (jm ) ) / aii , i 1, 2, ..., n; m 0
j 1 j i 1
Formula se pune sub forma următoare, adunând şi scăzând x i(m ) în membrul doi
Termenul care se adună la x i(m ) este diferenţa (x im1 x im ) . Metoda SOR constă în
i 1 n
xi( m1) (bi aij x (jm1) a ij x (jm ) ) / aii (1 ) xi( m ) , i 1, n
j 1 j i 1
Se notează expresia din prima paranteză cu z i( m1) (aceasta este coordonata i a iteratei
i 1 n
zi( m1) (bi aij x (jm1) a ij x (jm ) ) / aii ,
j 1 j i 1
1 < < 2.
În practică, se poate alege astfel: se utilizează valori de test, pe un număr limitat
de iteraţii; se alege ca valoare optimă acel pentru care convergenţa este cea mai
rapidă.
Ax = b (1)
- Termenii liberi b
- Matricea A a sistemului
Ae r , (3)
e A 1r (3).
|| e || / || x || perturbarea relativã în x
.
|| r || / || b || perturbarea relativã în b
Acest raport exprimă efectul perturbării în b asupra soluţiei x, şi anume: După cum
raportul este 1, respectiv >> 1, perturbarea relativă a soluţiei este de acelaşi ordin,
respectiv de ordin mult mai mare, în raport cu perturbarea relativă în b.
1 || e ||
|| A 1 || (4)
|| A || || r ||
1 || b || || e || / || x || || b ||
|| A 1 || (5)
|| A || || x || || r || / || b || || x ||
1 || b ||
1
|| A || (6)
|| A || || x ||
1 || e || / || x ||
1
|| A || || A 1 || (7)
|| A || || A || || r || / || b ||
Introducem următoarea
Definiţie
Numărul de condiţie al matricii A, este:
1 || e || / || x ||
Cond ( A) (10)
Cond ( A) || r || / || b ||
Sau:
1 || r || || e || || r ||
Cond ( A) (10‟)
Cond ( A) || b || || x || || b ||
Sau, definind
avem
Cum valorile proprii ale matricii A 1 sunt inversele valorilor proprii ale lui A, notând
cu (A) spectrul matricii A, rezultă formula de calcul:
max | |
( A )
Cond ( A) (11‟)
min | |
( A )
Cond (A) 2 || A || 2 || A 1 || 2
- Valorile proprii ale lui D sunt inversele valorilor proprii ale lui D 1 AA T .
( B , max )1 / 2
Cond ( A) 2
(C , min )1 / 2
Exemplu – 1
Fie sistemul liniar:
8 x1 9 x 2 b1
7 x1 8 x 2 b2
Avem:
8 9 8 9
A , A 1
7 8 7 8
8 7 8 9 113 128
B AT A . Polinomul caracteristic al lui B, este
9 8 7 8 128 145
145 128
Se verifică, în particular, observaţia anterioară: C AA T , are acelaşi
128 113
polinom caracteristic ca şi B.
Întrucât numărul de condiţie este mare, aceasta arată că sistemul este sensibil la mici
schimbări în b. Într-adevăr, fie de exemplu, termenii liberi daţi şi perturbaţi, şi
soluţiile respective, cum urmează:
Cu acestea, rezultă:
În particular, în acest exemplu, marginea superioară din (10) este atinsă – conform
Cond (A) 289 .
Exemplu – 2
Există sisteme care nu sunt rău-condiţionate, deşi Cond(A) este mare. De exemplu, să
considerăm următoarea matrice, în care m este un întreg 1:
1 0 1 0
A m
; A 1 m
.
0 10 0 10
x y 2
1.1x y 2.1
Cond (A)1 Cond (A) 44.10 , Cond (A) 2 42.08 , Cond (A) 41.98 ,
Pantele celor două drepte sunt respectiv -1.0 şi -1.1, adică apropiate. Dacă
considerăm o incertitudine în coeficienţii sistemului, banda de incertitudine a
rădăcinii va fi „largă‟ – şi cu atât mai largă cu cât pantele sunt mai apropiate. Vezi
Figura de mai sus: incertitudinea în valorile y(x) este reprezentată de linia „groasă‟ a
graficului. În schimb, dacă pantele sunt diferite, intersecţia dreptelor este netă şi
banda de incertitudine este „îngustă‟.
1 1
2
1
3 ... 1
n
1 1 1
... 1
Hn 2 3 4 n 1
1 1 1
n n 1 n2 ... 2 n11
Inversa matricii H n este cunoscută analitic, şi anume: punând H n1 [ ij( n ) ] , avem –
(n i 1)!(n j 1)!
ij( n ) (1) i j , i, j 1, n
(i j 1)[(i 1)!( j 1)!]2 (n i)!(n j )!
n Cond( H n )1
3 7.48 E+02
4 2.84 E+04
5 9.44 E+05
6 2.91 E+07
7 9.85 E+08
139.9972 1679.974 4199.943 2799.965
Inversa calculată analitic H 41 , are elemente intregi: 11 16, ... , 44 2800 .
2 Perturbare în A şi b
Să presupunem că atât matricea A a sistemului, cât şi termenul liber b, suferă mici
schimbări A, respectiv, b, iar soluţia devine x + x:
(A A)(x x) b b
Avem următoarea
Teoremă
Presupunem A nesingulară şi fie perturbarea A satisfăcând condiţia
|| A || 1 / || A 1 || .
Atunci:
|| x || Cond ( A) || A || || b ||
(12)
|| x || 1 Cond ( A) || A || / || A || || A || || b ||
|| x || Cond ( A) || A ||
(13)
|| x || 1 Cond ( A) || A || / || A || || A ||