Calcul Numeric Cursul 4 2019 Anca Ignat
Metode numerice de rezolvarea sistemelor liniare Fie matricea nesingulară A nn şi b n. Rezolvarea sistemului de ecuații liniare Ax=b se poate face folosind regula lui Cramer: det Ai ( b) xi, i 1,, n, det A în care Ai(b) se obține din matricea A prin înlocuirea coloanei i cu vectorul b. Algoritmul dat de regula lui Cramer este foarte costisitor din punct de vedere al resurselor și instabil numeric. 1
Din aceste motive s-au căutat alte metode de aproximare a soluției x. Unul din cele mai folosiți algoritmi este algoritmul de eliminare Gauss : Ax=b Ax bcu A matrice superior triunghiulară 1 1 x A b A b(notăm Ax b Ax b) 2
3
4
5
6
Metoda substituției Fie sistemul liniar Ax = b unde matricea sistemului A este triunghiulară. Pentru a găsi soluția unică a sistemului, trebuie ca matricea să fie nesingulară. Determinantul matricelor triunghiulare este dat de formula: det A = a11a22 a nn det A 0, a 0 i = 1,2,, n ii 7
Vom considera întâi cazul când matricea A este inferior triunghiulară. Sistemul are forma: a x = b 11 1 1 a x a x = b 21 1 22 2 2 a x a x a x = b i1 1 i 2 2 ii i i (1) a x a x a x a x = b n1 1 n2 2 ni i nn n i 8
Necunoscutele x1, x2,, x n, se deduc folosind ecuațiile sistemului de la prima către ultima. Din prima ecuație se deduce x1: x b 1 1 (2) a11 Din a doua ecuație, utilizând valoarea x1 din (2), obținem x2: x 2 = b a x a 2 21 1 22 9
Când ajungem la ecuația i: a x a x a x a x b i1 1 i 2 2 ii1 i1 ii i = i folosind variabilele x1, x2,, xi 1 calculate anterior, avem: x i b a x a x a 1 1 1 1 = i i ii i Din ultima ecuație se deduce xn astfel: x n b a x a x a x a 1 1 2 2 1 1 = n n n nn n ii nn 10
Algoritmul de calcul al soluției sistemelor (1) cu matrice inferior triunghiulară este următorul: i1 bi aij x j j1 aii x, i 1,2,, n 1, n i Acest algoritm se numește metoda substituției directe. 11
Vom considera, în continuare sistemul (1) cu matrice superior triunghiulară : a x a x a x a x = b 11 1 1i i 1n1 n1 1n n 1 a x a x a x = b ii i in1 n1 in n i a x a x = b n1n1 n1 n1n n n1 ann xn = bn 12
Necunoscutele x1, x2,, x n se deduc pe rând, folosind ecuațiile sistemului, de la ultima către prima. Din ultima ecuație găsim xn: x n b a Folosind valoarea lui xn dedusă mai sus, din penultima ecuație obținem: x n1 n nn b a x a 1 1 = n n n n n1n1 13
Când ajungem la ecuația i: a x a x a x b ii i ii1 i1 in n = i se cunosc deja x 1, x 2,, x de unde ducem: i i n x i = b a x a x a i ii1 i1 in n Din prima ecuație găsim valoarea lui x1: x 1 b a x a x a 1 12 2 1n n = ii 11 14
Procedeul descris mai sus se numește de metoda substituției inverse pentru rezolvarea sistemelor liniare cu matrice superior triunghiulară: n bi aij x j j i 1 xi, i n, n 1,,2,1. a ii M - numărul de operații *, / (înmulțiri/împărțiri) efectuate A - numărul operațiilor (adunări/scăderi) efectuate. 15
Atunci pentru calculul componentei xi se efectuează M=n-i+1, A=n-i şi în total: 1 n n n 1 M n i 1 k, 2 in 1 n1 in k1 k1 A n i k n n 1 2 Efortul de calcul pentru metoda substituției directe este M nn n n 1 1 A. 2 2 16
Algoritmul de eliminare Gauss Algoritmul se realizează în n-1 pași prin transformarea sistemului dat într-un sistem echivalent cu matrice triunghiulară superior. Pas 1 la acest pas se obține sistemul: 1 1 1 A x b Ax b, undea are prima coloană în formă superior triunghiulară. 17
Pas 2 se construiește sistemul 2 2 2 A x b Ax b, undea are primele două coloane în formă superior triunghiulară. Pasul r r r r se obține sistemul A x b Ax b, undea are primele r coloane în formă superior triunghiulară. Pasul n-1 : se obține sistemul n1 n1 n1 A x b Ax b, undea are primele n-1 coloane în formă superior triunghiulară. 18
Dacă la un anumit pas matricea A (r) nu poate fi construită aceasta ne va arăta că matricea A este singulară. În realizarea acestor pași se utilizează următoarele operații elementare: înmulțirea unei ecuații cu un factor și adunarea la altă ecuație; interschimbarea a două linii și/sau două coloane în matricea A. 19
Pasul 1 Intrare : sistemul Ax=b 1 1 Ieșire : sistemul A x b Ax b, matricea A (1) are prima coloană în formă superior triunghiulară. Fie ecuația i, cu i=1,,n E : a x a x a x b. i i1 1 i 2 2 in n i Presupunem 11 0 a. Operațiile efectuate au ca obiectiv anularea coeficienților lui x1 din ecuațiile de la 2 la n şi sunt descrise în continuare: 20
a 21 1 1 E1 E2 E2 a21 0 a 11 ai1 1 1 E1 Ei Ei ai1 0 a 11 an1 1 1 E1 En En an1 0 a 11 21
Sistemul obținut prin aceste operații are forma: 1 1 1 1 a x a x a x b a x a x b ai 2 x2 ain xn bi 11 1 12 2 1n n 1 1 1 1 22 2 2n n 2 1 1 1 1 1 1 a x a x b n2 2 nn n n 22
Pas 2 Intrare : Ieșire : 1 1 A x b 2 2 2 A x b Ax b, A are primele două coloane în formă superior triunghiulară. Se presupune 2 2 2 32 42 2 1 a și se urmărește anularea elementelor 22 0 a, a,, an (transformarea coloanei 2 în formă superior triunghiulară). Operațiile efectuate asupra ecuațiilor 1 E, i 3,, n sunt următoarele : i 23
1 a 32 1 1 1 2 2 E2 E3 E3 a32 a22 0; 1 1 a i 2 1 2 2 E2 1 Ei Ei ai 2 a22 0; 1 1 a n2 1 2 2 E2 1 En En an2 a22 0; Se observă că nu se schimbă forma superior triunghiulară a primei coloane. 24
Pas r Intrare : Ieșire : r1 r1 A x b r r r A x b Ax b, A are primele r coloane în formă superior triunghiulară. Sistemul are forma următoare: 25
r1 r1 r1 r1 a x a x a x b arr xr arn xn br a x a x b a x a x b anr xr ann xn bn 11 1 1r r 1n n 1 r1 r1 r1 r1 r1 r1 r1r r r1n n r1 r1 r1 r1 ir r in n i r1 r1 r1 26
r 1 Presupunem a rr 0. Vom urmări anularea elementelor r r r a, a,, a. r1r r2r nr r1 a r1r r1 r 1 r 1 r r Er Er1 Er1ar 1r arr 0; r1 r1 a ir r1 r r Er r 1 Ei Ei a ir arr 0; r1 r1 a nr r1 r r Er r 1 En En a nr arr 0; 27
Se observă că nu se schimbă forma superior triunghiulară a primelor r-1 coloane. La fiecare pas s-a făcut ipoteza r 1 a rr 0. Elementul r 1 a rr poartă numele de pivot. În cazul în care elementul pivot este nul se pot aplica următoarele strategii, numite de pivotare: 28
Pivotare ( ( r a 1) 0? ) 1 0 Fără pivotare 0, 1,, astfel încât r 1 a 0. Se interschimbă liniile i0 și r. Se caută primul indice i r r n ir 0 Să observăm că în procesul de calcul la pasul r intervine 1 r 1 factorul 1 astfel că valori mici ale lui a a rr conduc la r rr amplificarea erorilor de calcul. Pentru a asigura stabilitatea r 1 numerică a procesului de calcul este de dorit ca să fie mare. rr a rr 29
2 0 Pivotare parțială Se determină indicele i0: r1 r1 a max a ; i r,, n și se interschimbă liniile 3 0 Pivotare totală i r ir Se determină indicii i0 şi j0: 0 r1 r1 i j ij 0 0 i, rdacă i r. 0 0 a max a ; i r,, n, j r,, n și se interschimbă liniile j, rdacă j r 0 0 i, rdacă i r şi coloanele 0 0 30
Schimbarea coloanelor implică schimbarea ordinii variabilelor astfel încât în final va trebui refăcută ordinea inițială a variabilelor. r 1 a rr Dacă după pivotare elementul pivot rămâne nul, 0, atunci putem deduce că A (r-1) este singulară. În adevăr, dacă în procesul de pivotare parțială r 1 0, atunci a rr 31
a11a12 a1 n a ( 1) rr arn r A ann 0 arn r1 r1 r1 r1 0 det A a11 a22 ar1r1 det 0 0 ann 32
Deoarece operațiile efectuate (cele de interschimbare de linii și/sau coloane) nu au schimbat decât semnul determinantului avem: r1 det A det A 0 det A 0 prin urmare matricea A inițială este singulară. Și în cazul procesului de pivotare totală dacă r 1 0, atunci: a rr 33
a11a12 a1n ( r1) arr 0 A 0 0 0 r1 r1 r1 r1 0 0 det A a11 a22 ar1r1 det 0 0 0 1 det A det A r 0 A este matrice singulară. 34
r 1; pivotare( r); while ( r n -1 şi a > ) // Pas r for i r 1,, n f air - ; a for j r 1,, n rr a a f * a ; a ir 0; rr ij ij rj b b f * b ; r r 1; pivotare( r); i i r if ( a ) 'MATRICE SINGULARA' rr else { A A, b b ( n1) ( n1) se rezolv ă sistemul triunghiular superior Ax b} 35
Numărul de operații efectuate la pasul r și în total este: ( n r) 1M n r A n r M 1A 1M n1 n1 2 n r n r 2 n r n r n 1 n2n 5 M : 2, 6 r1 r1 n1 n1 n 1 nn 1 A :, 3 r1 r1 3 3 n 2 n 2 M : n ; Α: n 3 3 36
Eliminarea chinezească 200-100 î.cr. China 9 capitole despre arta matematică metodă de rezolvare foarte asemănătoare eliminării Gauss Avem 3 tipuri de grâu. Știm că 3 baloturi din primul tip, 2 baloturi din al doilea tip și 1 balot din al treilea tip cântăresc 39 măsuri. De asemenea, 2 baloturi din primul tip, 3 baloturi din al doilea tip și 1 balot din al treilea tip cântăresc 34 măsuri și 1 balot din primul tip, 2 baloturi din al doilea tip și 3 baloturi din al treilea tip cântăresc 26 măsuri. Câte măsuri cântărește un balot din fiecare tip de grâu 37
Notația actuală: Notația chinezească 3b 2b b 39 1 2 3 2b 3b b 34 1 2 3 b 2b 3b 26 1 2 3 1 2 3 2 3 2 3 1 1 26 34 39 38
Pasul 1 Se înmulțește coloana a doua cu 3 și se scade din ea coloana a treia atât timp cât este posibil. Se înmulțește prima coloană cu 3 și se scade din ea coloana a treia atât timp cât este posibil. Se ajunge la forma: 0 0 3 4 5 2 8 1 1 39 24 39 39
Pasul 2 Se înmulțește prima coloană cu 5 și se scade din ea coloana a doua atât timp cât este posibil. Se ajunge la forma: 0 0 3 0 5 2 36 1 1 99 24 39 Pentru rezolvare se folosește metoda substituției inverse pe sistemul obținut mai sus. 40
Descompuneri LU A nn, A=L U, L inferior triunghiulară şi U superior triunghiulară LU, Ly = bsoluţiay 1 Ax = blux = b, x A b Ux = y soluţiax nn 41
Fie minorul principal principal al matricii A: a11a12 a1 p a21 a22 a2 p p p Ap det, p 1,, n a p1a p2 a pp 42
Teoremă (descompunere LU) nn Fie A o matrice reală pătratică de dimensiune n astfel încât Ap 0, p= 1,, n. Atunci există o unică matrice inferior triunghiulară L= ( l ij ) i, j=1,..., n cu lii = 1, i = 1,, n şi o unică matrice superior triunghiulară U = ( u ij ) i, j=1,..., n astfel încât A = L U (1) Demonstraţie. Existenţa: demonstraţia se face prin inducţie după n dimensiunea matricii A. 43
Algoritmul Doolittle de calcul al descompunerii LU nn Fie A o matrice reală pătratică de dimensiune n care satisface ipotezele teoremei de mai sus. Algoritmul de calcul al matricilor L şi U are n etape. La fiecare pas se determină simultan: - câte o linie din matricea U şi - câte o coloană din matricea L. Descriem în continuare, un pas oarecare. Pasul p ( p= 1,2,, n) Se determină elementele liniei p ale matricii U, u, i = p,, n, şi elementele coloanei p ale matricii L, pi 44
l, = 1,, ip i p n l =1(upi= lip =0, i=1,,p-1). pp 0 0 pp pp1 pn lin. a matr. u u u p U 0 0 1 l p1 p l np col. p a matr. L 45
Se cunosc de la paşii anteriori: - elementele primelor p-1 linii din U (elemente u kj cu k = 1,, p 1, j) şi - elementele primelor p-1 coloane din L (elemente k p j). l ik cu = 1,, 1, Calculul elementelor liniei p din matricea U, u i = p,, n se face folosind elementul api şi (LU)pi. Avem: pi n a = ( LU ) l u ( l = 0, k = p 1,, n) = l u = pi pi pk ki pk pk ki k=1 k=1 p1 l u l u pp pi pk ki k=1 p 46
Pentru i = p,, n avem: p1 u a l u, i p,, n (2) pi pi pk ki k1 ( l pp =1, l pk, u ki k = 1,, p 1 sunt elemente de pe coloane din L şi linii din U calculate la paşii anteriori) Calculul elementelor coloanei p din matricea L: l, i = p 1,, n ( l = 0, i = 1,, p 1, l = 1) ip se face analog: ip pp 47
n a = ( LU ) l u ( u = 0, k = p 1,, n) = l u = ip ip ik kp kp ik kp k=1 k=1 l u p1 l u ip pp ik kp k=1 u putem calcula elementele nenule ale coloanei p Dacă pp 0 din matricea L astfel: p1 ( aip l pkuki ) k1 p lip, i p 1,, n (3) u pp (elementele pasului p) l pk, u ki k = 1,, p 1 sunt calculate anterior 48
Dacă u pp =0, calculele se opresc, descompunerea LU nu poate fi calculată - matricea A are un minor A p cu determinantul 0. Unicitatea: Demonstraţie prin reducere la absurd. Facem observaţia că inversa unei matrici nesingulare triunghiulară inferior (superior) este o matrice de acelaşi tip. Presupunem că A LU L1 U1 (4) 49
Din ipoteza A nesingulară rezultă existenţa inverselor matricilor L, L1, U, U1. Înmulţind egalitatea (4) la stânga cu L -1 1 şi cu U 1 la dreapta obţinem 1 1 U U1 L L1. 1 Matricea L L 1 este inferior triunghiulară cu elementele 1 diagonale egale cu 1 iar matricea UU 1 este superior triunghiulară. Rezultă că: U U L L I, deci L=L1, U=U1. 1 1 1 1 n 50