Sisteme de ecuaţii algebrice liniare - metode directe (II)

Σχετικά έγγραφα
Cap.2. Sisteme de ecuaţii algebrice liniare - metode directe (II)

Sisteme diferenţiale liniare de ordinul 1

Sisteme liniare - metode directe

Metode iterative pentru probleme neliniare - contractii

Cap2. Sisteme de ecuaţii algebrice liniare - metode iterative

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Matrice. Determinanti. Sisteme liniare

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Esalonul Redus pe Linii (ERL). Subspatii.

Seminar 5 Analiza stabilității sistemelor liniare

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

METODE NUMERICE: Laborator #5 Metode iterative pentru rezolvarea sistemelor: Jacobi, Gauss-Siedel, Suprarelaxare

Curs 1 Şiruri de numere reale

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Metode directe pentru sisteme de ecuaţii liniare

riptografie şi Securitate

Curs 4 Serii de numere reale

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Sisteme de ecuaţii algebrice liniare - metode iterative nestaţionare (semiiterative)

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Metode de interpolare bazate pe diferenţe divizate

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

1. Sisteme de ecuaţii liniare Definiţia 1.1. Fie K un corp comutativ. 1) Prin sistem de m ecuaţii liniare cu n necunoscute X 1,...

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

2 Transformări liniare între spaţii finit dimensionale

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

Lucian Maticiuc CURS I II. 1 Matrice şi determinanţi. Sisteme de ecuaţii liniare. 1.1 Matrice şi determinanţi

Metode directe pentru sisteme de ecuaţii liniare

Criptosisteme cu cheie publică III

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Subiecte Clasa a VII-a

Asupra unei inegalităţi date la barajul OBMJ 2006

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare. Cuprins. Prof.dr.ing. Gabriela Ciuprina

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

Subiecte Clasa a VIII-a

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Curs 2 Şiruri de numere reale

Integrala nedefinită (primitive)

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Rezolvarea sistemelor liniare determinate

MARCAREA REZISTOARELOR

Metode iterative pentru rezolvarea sistemelor de ecuatii liniare

Nicolae Cotfas ELEMENTE DE EDITURA UNIVERSITĂŢII DIN BUCUREŞTI

Noţiuni introductive

PROBLEME DE VALORI ŞI VECTORI PROPRII

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

METODE NUMERICE: Laborator #7 Calculul valorilor proprii si vectorilor proprii prin metodele puterii. Metoda Householder

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Examen AG. Student:... Grupa:... ianuarie 2011

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

, m ecuańii, n necunoscute;

Conice - Câteva proprietǎţi elementare

Profesor Blaga Mirela-Gabriela DREAPTA

a. 11 % b. 12 % c. 13 % d. 14 %

1.3 Baza a unui spaţiu vectorial. Dimensiune

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

Seminar Algebra. det(a λi 3 ) = 0

sistemelor de algebrice liniarel

Problema celor mai mici pătrate

Ecuatii trigonometrice

Laborator 6. Integrarea ecuaţiilor diferenţiale

1.3. Erori în calculele numerice

Algebra si Geometrie Seminar 9

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Aproximarea funcţiilor prin metoda celor mai mici pătrate

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Geometrie computationala 2. Preliminarii geometrice

Adriana-Ioana Lefter DIFERENŢIALE) Anul I, Facultatea de Chimie Note de curs

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Calculul valorilor proprii

Sisteme de ecuaţii diferenţiale

1.4 Schimbarea bazei unui spaţiu vectorial

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Matrici şi sisteme de ecuaţii liniare

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

I. Noţiuni introductive

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Integrarea numerică. Prof.dr.ing. Gabriela Ciuprina. Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

Olimpiada Naţională de Matematică Etapa locală Clasa a IX-a M 1

Proiectarea filtrelor prin metoda pierderilor de inserţie

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

CUPRINS 5. Reducerea sistemelor de forţe (continuare)... 1 Cuprins..1

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Gheorghe PROCOPIUC PROBLEME DE ALGEBRĂ LINIARĂ GEOMETRIE

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

Interpolarea funcţiilor.

Conf.dr.ing. Gabriela Ciuprina

Examen AG. Student:... Grupa: ianuarie 2016

Transcript:

Sisteme de ecuaţii algebrice liniare - metode directe (II) Prof.dr.ing. Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică, Departamentul de Electrotehnică Suport didactic pentru disciplina Algoritmi Numerici, 2016-2017 1/59

Cuprins 1 Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple 2 Varianta Doolittle Varianta Cholesky 3 Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu 4 2/59

Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Sistem de n ecuaţii algebrice liniare cu n necunoscute: a 11 x 1 + a 12 x 2 + +a 1n x n = b 1, a 21 x 1 + a 22 x 2 + +a 2n x n = b 2, a n1 x 1 + a n2 x 2 + +a nn x n = b n. (1) 3/59

Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Se dă matricea coeficienţilor A = şi vectorul termenilor liberi a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn se cere să se rezolve sistemul unde x este soluţia IRn n (2) b = [ b 1 b 2 b n ] T IR n, (3) Ax = b, (4) x = [ x 1 x 2 x n ] T IR n. (5) 4/59

Buna formulare matematică Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Problema este bine formulată din punct de vedere matematic (soluţia există şi este unică) matricea A este nesingulară (are determinantul nenul). Se scrie formal: x = A 1 b trebuie citită ca: "x este soluţia sistemului algebric liniar Ax = b" şi NU "se calculează inversa matricei A care se înmulţeşte cu vectorul b". 5/59

Condiţionarea problemei Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple κ(a) = A A 1 (6) număr de condiţionare la inversare al matricei A. ε x κ(a)ε b, (7) κ(a) 1: Cazul cel mai favorabil: n A = 1 şi ε x = ε b. (matrice ortogonală) Numărul de condiţionare este o proprietate a matricei şi nu are legătură nici cu metoda de rezolvare propriu-zisă, nici cu erorile de rotunjire care apar în mediul de calcul. În practică: Dacă κ(a) > 1/eps problema se consideră slab condiţionată. 6/59

Clasificarea metodelor Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple 1 Metode directe - găsesc soluţia teoretică a problemei într-un număr finit de paşi. (Gauss, factorizare LU) 2 Metode iterative - generează un şir de aproximaţii ale soluţiei care se doreşte a fi convergent către soluţia exactă. staţionare: Jacobi, Gauss-Seidel, SOR, SSOR nestaţionare (semiiterative): gradienţi conjugaţi (GC), reziduu minim (MINRES), reziduu minim generalizat (GMRES), gradienţi biconjugaţi (BiGC), etc. 7/59

Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Fie m sisteme de ecuaţii algebrice liniare Ax (1) = b (1), Ax (2) = b (2),, Ax (m) = b (m), (8) Se dau: A IR n n, b (k) IR n 1, k = 1, m Se cer: x (k) IR n 1, Notăm B = [b (1) b (2) b (m) ] IR n m (9) X = [x (1) x (2) x (m) ] IR n m (10) Se cere să se rezolve sistemul AX = B. (11) 8/59

Varianta I Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Varianta I - aplicarea succesivă a algoritmului Gauss Efort de calcul: m(2n 3 /3+n 2 ) 2mn 3 /3. Etapa de eliminare este repetată inutil, de m ori. Cea mai proasta idee. 9/59

Varianta II Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Varianta II - rezolvarea simultană prin adaptarea algoritmului Gauss procedură Gauss_multiplu(n, m, a, B, X) ; rezolvă simultan sistemele algebrice liniare ax = B prin metoda Gauss întreg n ; dimensiunea sistemului întreg m ; numărul de sisteme tablou real a[n][n] ; matricea coeficienţilor - indici de la 1 tablou real B[n][m] ; matricea termenilor liberi tablou real X[n][m] ; matricea soluţie întreg i, j, k real p, s ; etapa de eliminare pentru k = 1, n 1 ; parcurge sub-etape ale eliminării ; aici se poate introduce pivotarea pentru i = k + 1, n ; parcurge liniile p = a ik /a kk ; element de multiplicare pentru j = k + 1, n ; parcurge coloanele a ij = a ij + pa kj pentru j = 1, m ; parcurge coloanele termenilor liberi b ij = b ij + pb kj 10/59

Varianta II Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple ; etapa de retrosubstituţie pentru k = 1, m x nk = b nk /a nn pentru i = n 1, 1, 1 s = 0 pentru j = i + 1, n s = s + a ij x jk x ik = (b ik s)/a ii retur 11/59

Varianta II Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Efort de calcul T e = n 1 n 1 [2(n k)+2m+1](n k) [2(n k) 2 + 2m(n k)] = k=1 = 2 (n 1)n(2n 1) 6 + 2m n(n 1) 2 k=1 2n3 3 + mn2. (12) n 1 T s = m [2(n i)+2] m i=1 n 1 i=1 [2(n i)] = 2m n(n 1) 2 T = O(2n 3 /3+2mn 2 ), mai mic decât în cazul variantei I. mn 2. (13) 12/59

Varianta III Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple Varianta III - rezolvarea succesivă a sistemelor folosind calculul inversei Se calculeză A 1 Se calculează x (k) = A 1 b (k) imediat ce este cunoscut termenul liber. 13/59

Varianta III Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple funcţie inva(n, a) ; calculează inversa matricei a întreg n ; dimensiunea matricei tablou real a[n][n] ; matricea, indici de la 1 ; alte declaraţii... pentru i = 1, n pentru j = 1, n B ij = 0 B ii = 1 Gauss_multiplu(n, n, a, B, X) întoarce X ; X este inversa matricei Complexitatea calcului inversei: 2n 3 /3+2mn 2 = 8n 3 /3 COSTISITOR! 14/59

Varianta III Rezolvarea unui sistem de ecuaţii algebrice liniare Cazul sistemelor multiple funcţie produs_mv (n, M, v) ; calculează produsul dintre o matrice pătrată M şi un vector coloană v întreg n ; dimensiunea problemei tablou real M[n][n] ; matricea, indici de la 1 tablou real v[n] ; vectorul tablou real p[n] ; rezultatul p = Mv ; alte declaraţii... pentru i = 1, n p i = 0 pentru j = 1, n p i = p i + M ij v j întoarce p Complexitatea inmulţirii dintre o matrice şi un vector: 2n 2 Efortul total de calcul : O(8n 3 /3+2mn 2 ). Există o variantă mai eficientă bazată pe factorizarea matricei coeficienţilor. 15/59

Ideea metodei Varianta Doolittle Varianta Cholesky Ax = b, (14) A = LU, factorizare (15) A = L = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 U = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LUx = b. (16) 16/59

Ideea metodei Varianta Doolittle Varianta Cholesky Ax = b, (17) A = LU, factorizare (18) LUx = b. (19) Notăm (50) y = Ux, (20) Ly = b, substituţie progresivă Ux = y. substituţie progresivă (21) 17/59

Varianta Doolittle Varianta Cholesky Un exemplu simplu - pornind de la Gauss x 1 + 2x 2 x 3 = 1, 2x 1 + 3x 2 + x 3 = 0, 4x 1 x 2 3x 3 = 2. x 1 + 2x 2 x 3 = 1, 7x 2 x 3 = 2, 9x 2 + x 3 = 2. x 1 + 2x 2 x 3 = 1, 7x 2 x 3 = 2, 2/7x 3 = 4/7. x 3 = ( 4/7)/( 2/7) = 2, x 2 = ( 2+x 3 )/7 = 0, x 1 = 1 2x 2 + x 3 = 1. (22) (23) (24) (25) 18/59

Varianta Doolittle Varianta Cholesky Un exemplu simplu - pornind de la Gauss Factorizare L = Verificare: LU = A U = 1 0 0 2/1 1 0 4/1 9/7 1 A = 1 2 1 0 7 1 0 0 2/7 = 1 2 1 2 3 1 4 1 3. (26) 1 0 0 2 1 0 4 9/7 1. (27). (28) 19/59

Varianta Doolittle Varianta Cholesky Un exemplu simplu - pornind de la Gauss Substituţie progresivă Ly = b 1 0 0 2 1 0 4 9/7 1 y 1 y 2 y 3 = 1 0 2 y 1 = 1 2y 1 + y 2 = 0 4y 1 9/7y 2 + y 3 = 2, (29) (30) y 1 = 1 y 2 = 2y 1 = 2 y 3 = 2 4y 1 + 9/7y 2 = 4/7. (31) 20/59

Varianta Doolittle Varianta Cholesky Un exemplu simplu - pornind de la Gauss Substituţie regresivă Ux = y 1 2 1 x 1 1 0 7 1 x 2 = 2, (32) 0 0 2/7 x 3 4/7 x 1 + 2x 2 x 3 = 1 7x 2 x 3 = 2 (33) 2/7x 3 = 4/7. x 3 = ( 4/7)/( 2/7) = 2, x 2 = ( 2+x 3 )/7 = 0, x 1 = 1 2x 2 + x 3 = 1. (34) 21/59

Variante de factorizare Varianta Doolittle Varianta Cholesky Factorizare nu este unică. Variante standard: Doolittle: l ii = 1 - se aplică la orice matrice nesingulară Crout: u ii = 1 - se aplică la orice matrice nesingulară Cholesky: L = U T - se aplică doar matricelor simetrice şi pozitiv definite [ 3 2 6 1 ] [ ][ l11 0 u11 u = 12 l 21 l 22 0 u 22 l 11 u 11 = 3 l 12 u 12 = 2 l 21 u 11 = 6 l 21 u 12 + l 22 u 22 = 1 ]. (35) (36) Sistemul devine determinat doar dacă fixăm oricare două valori. 22/59

Variante de factorizare Varianta Doolittle Varianta Cholesky Exemplu: [ 3 2 6 1 ] = [ 9 2 2 1 [ 1 0 2 1 ] = ][ 3 2 0 3 ] = [ 3 0 2/3 5/3 [ 3 0 6 3 ][ 3 2/3 0 5/3 ][ 1 2/3 0 1 ]. ] (37). (38) 23/59

Algoritmul variantei Doolittle Varianta Doolittle Varianta Cholesky A 0 = A, (39) A 1 = E 1 A 0, A 2 = E 2 A 1 = E 2 E 1 A 0, A n 1 = E n 1 A n 2 = E n 1 E n 2 E 2 E 1 A 0. (40) U = A n 1. (41) Dar E este nesingulară şi: E = E n 1 E n 2 E 2 E 1, (42) U = EA. (43) L = E 1. (44) 24/59

Algoritmul variantei Doolittle Varianta Doolittle Varianta Cholesky E 1 1 = a 11 a 12 a 13 0 0 a 22 a 32 a 23 a 33 E 1 = 1 0 0 a 21 /a 11 1 0 a 31 /a 11 0 1 = E 1 1 0 0 a 21 /a 11 1 0 a 31 /a 11 0 1, E 1 2 = a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33. (45). (46) 1 0 0 0 1 0 0 a 32 /a 22 1. (47) E 1 = E 1 1 E 1 2 E 1 n 2 E 1 n 1. (48) 1 0 0 E 1 = a 21 /a 11 1 0 = L. (49) a 31 /a 11 a 32 /a 22 1 25/59

Algoritmul variantei Doolittle Varianta Doolittle Varianta Cholesky ; etapa de eliminare din metoda Gauss cu memorarea opuselor elementelor ; de multiplicare în triunghiul inferior al matricei pentru k = 1, n 1 ; parcurge sub-etape ale eliminării pentru i = k + 1, n ; parcurge liniile p = a ik /a kk ; element de multiplicare pentru j = k + 1, n ; parcurge coloanele a ij = a ij + pa kj a ik = p procedură factorizare_lu(n, a) ; factorizează "in loc" matricea a ; varianta Doolittle ; declaraţii pentru k = 1, n 1 ; parcurge sub-etape ale eliminării pentru i = k + 1, n ; parcurge liniile a ik = a ik /a kk ; element de multiplicare pentru j = k + 1, n ; parcurge coloanele a ij = a ij a ik a kj ; Factorizare "pe loc" : "A = L + U I" retur 26/59

Varianta Doolittle Varianta Cholesky Calculul soluţiei după factorizare Notăm (50) LUx = b. (50) y = Ux, (51) Ly = b, (52) Ux = y. (53) "y = L 1 b" se rezolvă prin substituţie progresivă: l 11 y 1 = b 1, l 21 y 1 + l 22 y 2 = b 2, l n1 y 1 + l n2 y 2 + l nn y n = b n, y 1 = b 1 /l 11, y 2 = (b 2 l 21 y 1 )/l 22, y n = (b n n 1 k=1 l nky k )/l nn. (54) 27/59

Varianta Doolittle Varianta Cholesky Calculul soluţiei după factorizare y 1 = b 1 /l 11, (55) i 1 y i = b i l ij y j /l ii, i = 2,...,n. (56) j=1 "x = U 1 y" se rezolvă prin substituţie regresivă: x n = y n /u nn, (57) n x i = y i u ij x j /u ii, i = n 1,...,1. (58) j=i+1 28/59

Varianta Doolittle Varianta Cholesky Calculul soluţiei după factorizare procedură rezolvă_lu(n, a, b, x) ; rezolvă sistemul de ecuaţii ax = b prin factorizare LU ; matricea este presupusă a fi deja factorizată în loc ; varianta Doolittle ; declaraţii ; substituţie progresivă y 1 = b 1 ; formula (55), unde l 11 = 1 pentru i = 2, n s = 0 pentru j = 1, i 1 s = s + a ij y j ; formula (56), unde L este memorat în a y i = b i s ; deoarce l ii = 1 ; substituţie regresivă x n = y n/a nn ; formula (57), unde U este memorat în a pentru i = n 1, 1, 1 s = 0 pentru j = i + 1, n s = s + a ij x j x i = (y i s)/a ii retur 29/59

Evaluarea algoritmului Varianta Doolittle Varianta Cholesky Complexitate: Erori: Factorizarea propriu-zisă a: T f = O(2n 3 /3) Rezolvările: T s = O(2n 2 ). Necesarul de memorie: M = O(n 2 ) Nu există erori de trunchiere; Erorile de rotunjire pot fi micşorate dacă se aplică strategii de pivotare. 30/59

Pivotare Varianta Doolittle Varianta Cholesky Matrice de permutare: matrice care are exact un element egal cu 1 pe fiecare linie şi pe fiecare coloană, şi 0 în rest; inversa unei matrice de permutare este o matrice de permutare; produsul a două matrice de permutare este de asemenea o matrice de permutare; Pivotarea pe linie poate fi descrisă prin înmulţirea la stânga cu o matrice de permutare notată P. Pivotarea pe coloane poate fi descrisă prin înmulţirea la dreapta cu o matrice de permutare ce va fi notată cu Q. 31/59

Pivotare Varianta Doolittle Varianta Cholesky A 0 = P 1 A. (59) Presupunând că la fiecare etapă de eliminare se efectuează o permutare parţială, relaţiile (40) se scriu A 1 = E 1 A 0 = E 1 P 1 A, A 2 = E 2 P 2 A 1 = E 2 P 2 E 1 P 1 A, A n 1 = E n 1 P n 1 E 2 P 2 E 1 P 1 A. (60) 32/59

Pivotare Varianta Doolittle Varianta Cholesky U = E n 1 P n 1 E 2 P 2 E 1 P 1 A. (61) U = E 3 P 3 E 2 P 2 E 1 P 1 A = = E }{{} 3 E 3 P 3 E 2 P 1 3 }{{} E 2 = E 3 E 2 E 1 P 3 P 2 P }{{}}{{ 1 } L 1 P P 3 P 2 E 1 P 1 2 P 1 3 P 3 P 2 P 1 A = }{{} E 1 A (62) 33/59

Pivotare Varianta Doolittle Varianta Cholesky Factorizarea cu pivotare pe linii: PA = LU, (63) Factorizarea LU cu pivotare totală (rareori aplicată) PAQ = LU, (64) 34/59

Cazul sistemelor multiple Varianta Doolittle Varianta Cholesky Rezolvate cu factorizare: T = O(2n 3 /3+2mn 2 ), mai mic decât cel necesar calculului inversei. Efort de calcul pentru rezolvarea sistemelor multiple. Nr. sisteme Metoda Complexitate T 1 Gauss 2n 3 /3+n 2 LU 2n 3 /3+2n 2 m - simultan Gauss 2n 3 /3+2mn 2 m - succesiv folosind inversa 8n 3 /3+2mn 2 LU 2n 3 /3+2mn 2 35/59

Varianta Cholesky Varianta Doolittle Varianta Cholesky Dacă A este simetrică, atunci este de dorit ca U = L T. (65) Aceasta se poate realiza doar dacă A este pozitiv definită. Pp. A = LL T. (66) fie x nenul; atunci y = L T x va fi nenul x T Ax = x T LL T x = y T y = n i=1 y 2 i > 0. 36/59

Varianta Cholesky Varianta Doolittle Varianta Cholesky Teoremă: Dacă A este o matrice simetrică şi pozitiv definită, atunci factorizarea ei Cholesky există în mod unic, adică există în mod unic o matrice triunghiular inferioară L cu elementele diagonale pozitive, astfel încât. A = LL T 37/59

Modul de generare al matricei L Varianta Doolittle Varianta Cholesky [ α a T a A Complementul Schur al lui α: ] [ ][ λ 0 λ l T = l L 0 L T ]. (67) λ = α (68) l = a/λ (69) LL T = A ll T. (70) S = A ll T = A aa T /α. (71) Se poate demonstra că S este simetrică şi pozitiv definită şi, în consecinţa LL T este factorizarea ei Cholesky. 38/59

Modul de generare al matricei L Varianta Doolittle Varianta Cholesky [ λ 0 A = A 0 = l L Similar, ][ λ l T 0 L T ] [ λ 0 = l I A 1 = L 2 A 2 L T 2, ][ 1 0 0 S ][ λ l T 0 I ] = L 1 A 1 L T 1. (72) unde A n = I.. (73) A n 1 = L n A n L T n, A = L 1 L } 2 L {{ n L } T n L T n 1 LT 1 (74) }{{} L L T 39/59

Algoritm Varianta Doolittle Varianta Cholesky l kk = l ik k 1 akk lkj 2, k = 1,...,n (75) j=1 k 1 = (a ik l ij l kj )/l kk, i = k + 1,...,n. (76) j=1 40/59

Algoritm Varianta Doolittle Varianta Cholesky procedură factorizare_lu_cholesky(n, a, l) ; factorizează matricea a, presupusă simetrică şi pozitiv definită ; întoarce matricea triunghiular inferioară l ; varianta Cholesky ; declaraţii pentru k = 1, n ; parcurge sub-etape ale eliminării pentru i = k, n ; calculează coloana, sub diagonală s = a ik pentru j = 1, k 1 s = s l ij l kj dacă i = k l kk = s altfel l ik = s/l kk retur 41/59

Algoritm Varianta Doolittle Varianta Cholesky Efortul de calcul T e n [2k(n k)] = 2 k=1 [ n = 2 (n k) 2 n k=1 [ (n 1)n(2n 1) = 2 6 n [(n k n)(n k)] = k=1 ] n (n k) = k=1 n n(n 1) 2 ] ( ) 2n 3 2 6 n3 = n3 2 3 Algoritmul Cholesky este întotdeauna stabil şi nu are nevoie de pivotare. Aceasta se datorează proprietăţilor speciale ale matricei A, care fiind pozitiv definită este şi diagonal dominantă. 42/59

Cazul matricelor rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Matrice rară = matrice care conţine un număr foarte mare de elemente nenule. O matrice care nu este rară se numeşte matrice densă sau plină. Densitatea unei matrice = raportul dintre numărul de elemente nenule şi numărul total de elemente al matricei. Dacă, pentru o anumită matrice care are şi elemente nule, se poate elabora un algoritm care exploatează această structură şi care, este mai eficient decât algoritmul conceput pentru matricea plină, atunci aceasta este o matrice rară. 43/59

Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Formate de memorare a matricelor rare Matrix Market: se memoreză doar valorile nenule şi "coordonatele" lor în matrice. http://math.nist.gov/matrixmarket Exemplu: tablou bidimensional de dimensiune m n: M plin = 8mn B M rar,coord = 8 n nz + 4 2n nz = 16n nz B. M = 4 0 0 0 0 0 5 1 2 3 0 7 val = [ 4 5 1 2 3 7 ] r_idx = [ 1 2 2 3 3 3 ] c_idx = [ 1 3 4 1 2 4 ] 44/59

Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Formate de memorare a matricelor rare Formatul Yale sau CRS - Compressed Row Storage: M rar,crs = 8n nz + 4(m+1)+4n nz = 12n nz + 4(m+1) B. M = 4 0 0 0 0 0 5 1 2 3 0 7 val = [ 4 5 1 2 3 7 ] r_ptr = [ 1 2 4 7 ] c_idx = [ 1 3 4 1 2 3 ] Similar, CCS (Compressed Column Storage)- cunoscut şi sum numele Harwell - Boeing. M rar,ccs = 8n nz + 4(n+1)+4n nz = 12n nz + 4(n+1) B. M = 4 0 0 0 0 0 5 1 2 3 0 7 val = [ 4 2 3 5 1 7 ] c_ptr = [ 1 3 4 5 7 ] r_idx = [ 1 3 3 2 2 3 ] 45/59

Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Formate de memorare a matricelor rare Matricelor bandă (de exemplu matrice tridiagonală): q 1 r 1 0 0 0 0 0 p 2 q 2 r 2 0 0 0 0 0 p 3 q 3 r 3 0 0 0 M = 0 0 0 0 p n 1 q n 1 r n 1 0 0 0 0 0 p n q n Memorare cu ajutorul a trei vectori (CDS - Compressed Diagonal Storage): 0 p 2 p 3 p n 1 p n M rar = q 1 q 2 q 3 q n 1 q n r 1 r 2 r 3 r n 1 0 46/59

Metode directe pentru matrice rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Gauss pentru matrice tridiagonală, matricea la subetapa k de eliminare: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 q k r k 0 0 0 0 0 0 0 p k+1 q k+1 r k+1 0 0 0 0 0 0 0 p k+2 q k+2 r k+2 0 0... 0 0 0 0 0 0 0 p n q n Un singur element de multiplicare m = p k+1 /q k. Singura modificare suferind-o ecuaţia k + 1: q k+1 = q k+1 + m r k, şi temenul liber corespunzător. 47/59

Metode directe pentru matrice rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Gauss pentru matrice tridiagonală, matricea după eliminare. q 1 r 1 0 0 0 0 0 0 0 0 q 2 r 2 0 0 0 0 0 0... 0 0 0 q k r k 0 0 0 0 0 0 0 0 q k+1 r k+1 0 0 0... 0 0 0 0 0 0 0 q n 1 0 r n 1 0 0 0 0 0 0 0 0 q n Retrosubstituţie q i x i + r i x i+1 = b i x n = b n /q n, (77) x i = (b i r i x i+1 )/q i, i = n 1,...,1. (78) 48/59

Metode directe pentru matrice rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu procedură Gauss_tridiag(n, p, q, r, b, x) ; rezolvă sistemul algebric liniar ax = b prin metoda Gauss ; matricea a este tridiagonală, memorată în p, q, r întreg n ; dimensiunea sistemului tablou real p[n], q[n], r[n] ; "matricea" coeficienţilor - indici de la 1 tablou real b[n] ; vectorul termenilor liberi tablou real x[n] ; vectorul soluţie întreg i, k ; etapa de eliminare din metoda Gauss pentru k = 1, n 1 ; parcurge sub-etape ale eliminării m = p k+1 /q k ; element de multiplicare q k+1 = q k+1 + mr k ; modifică element în linia k + 1 b k+1 = b k+1 + mb k ; modifică termenul liber al ecuaţiei k + 1 ; etapa de retrosubstituţie x n = b n/q n pentru i = n 1, 1, 1 x i = (b i r i x i+1 )/q i retur T = O(8n), M = O(5n). 49/59

Metode directe pentru matrice rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Pentru matrice rare fără o structură particulară, algoritmii trebuie adaptaţi memorării de tip CRS sau CCS. La eliminare matricea se poate umple, a.î. pivotarea urmăreşte nu numai stabilitatea numerică, ci şi minimizarea umplerilor, adică a elementelor nenule nou apărute. La matrice rare inversarea este practic imposibilă datorită fenomen de umplere. 50/59

Metode directe pentru matrice rare Ce sunt? Formate de memorare Adaptarea metodelor directe - exemplu Factorizarea unei matrice rare poate salva raritatea dacă matricea are o anumită structură. A 1 = 0 0 0 0 0 0 0 0 0 0 0 0 A 2 = 0 0 0 0 0 0 0 0 0 0 0 0 Matricea A 1 are factorii LU rari, în timp ce matricea A 2 are factorii LU plini. Structura matricei joacă deci un rol important în conceperea algoritmului de rezolvare. 51/59

Minimal: [1], Algoritmi numerici pentru calcule ştiintifice în ingineria electrică Editura MatrixROM, 2013, pag. 51-66 Alte recomandări: [2] Timothy Davis, Direct methods for sparse linear systems, SIAM 2006. [3] Timothy A. Davis, Sivasankaran Rajamanickam, and Wissam M. Sid-Lakhdar, A survey of direct methods for sparse linear systems, draftul unei lucrări ce va apare in 2016, disponibilă la http://faculty.cse.tamu.edu/davis/publications_files/survey_tech_report.pdf 52/59

Pachete existente: ([3]) BCSLIB-EXT Ashcraft (1995), Ashcraft et al. (1998), Pierce and Lewis (1997), aanalytics.com BSMP Bank and Smith (1987), www.netlib.org/linalg/bsmp.f CHOLMOD Chen et al. (2008), suitesparse.com CSparse Davis (2006), suitesparse.com DSCPACK Heath and Raghavan (1995) (1997),Raghavan (2002), www.cse.psu.edu/?raghavan. Also CAPSS.Elemental Poulson, libelemental.org ESSL www.ibm.com GPLU Gilbert and Peierls (1988), www.mathworks.com IMSL www.roguewave.com KLU Davis and Palamadai Natarajan (2010), suitesparse.com LDL Davis (2005), suitesparse.com MA38 Davis and Duff (1997), www.hsl.rl.ac.uk MA41 Amestoy and Duff (1989), www.hsl.rl.ac.uk MA42, MA43 Duff and Scott (1996), www.hsl.rl.ac.uk. Successor to MA32. HSL MP42, HSL MP43 Scott (2001a) (2001b) (2003), www.hsl.rl.ac.uk. Also MA52 and MA72. MA46 Damhaug and Reid (1996), www.hsl.rl.ac.uk MA47 Duff and Reid (1996b), www.hsl.rl.ac.uk MA48, HSL MA48 Duff and Reid (1996a), www.hsl.rl.ac.uk. Successor to MA28. HSL MP48 Duff and Scott (2004), www.hsl.rl.ac.uk MA49 Amestoy et al. (1996b), www.hsl.rl.ac.uk MA57, HSL MA57 Duff (2004), www.hsl.rl.ac.uk MA62, HSL MP62 Duff and Scott (1999), Scott (2003), www.hsl.rl.ac.uk MA67 Duff et al. (1991), www.hsl.rl.ac.uk HSL MA77 Reid and Scott (2009b), www.hsl.rl.ac.uk HSL MA78 Reid and Scott (2009a), www.hsl.rl.ac.uk HSL MA86, HSL MA87 Hogg et al. (2010) Hogg and Scott (2013b), www.hsl.rl.ac.uk HSL MA97 Hogg and Scott (2013b), www.hsl.rl.ac.uk 53/59

Mathematica Wolfram, Inc., www.wolfram.com MATLAB Gilbert et al. (1992), www.mathworks.com Meschach Steward and Leyk, www.netlib.org/c/meschach MUMPS Amestoy et al. (2000), Amestoy et al. (2001a), Amestoy et al. (2006),www.enseeiht.fr/apo/MUMPS NAG www.nag.com NSPIV Sherman (1978b) (1978a), www.netlib.org/toms/533 Oblio Dobrian, Kumfert and Pothen (2000), Dobrian and Pothen (2005), www.cs.purdue.edu/homes/apothen PARDISO Schenk and G artner (2004), Schenk, G artner and Fichtner (2000), www.pardiso-project.org PaStiX H enon et al. (2002), www.labri.fr/ ramet/pastix QR MUMPS Buttari (2013), buttari.perso.enseeiht.fr/qr mumps PSPASES Gupta et al. (1997), www.cs.umn.edu/ mjoshi/pspases Quern Bridson, www.cs.ubc.ca/?rbridson/quern S+ Fu et al. (1998), Shen et al. (2000), www.cs.ucsb.edu/projects/s+ Sparse 1.4 Kundert (1986), sparse.sourceforge.net SPARSPAK Chu et al. (1984), George and Liu (1979a) (1981) (1999), www.cs.uwaterloo.ca/?jageorge SPOOLES Ashcraft and Grimes (1999), www.netlib.org/linalg/spooles SPRAL SSIDS Hogg et al. (2016), www.numerical.rl.ac.uk/spral SuiteSparseQR Yeralan et al. (2016), Foster and Davis (2013), suitesparse.com SuperLLT Ng and Peyton (1993a), http://crd.lbl.gov/ EGNg SuperLU Demmel et al. (1999a), crd.lbl.gov/ xiaoye/superlu SuperLU DIST Li and Demmel (2003), crd.lbl.gov/ xiaoye/superlu SuperLU MT Demmel et al. (1999b), crd.lbl.gov/ xiaoye/superlu 54/59

TAUCS Rotkin and Toledo (2004), www.tau.ac.il/ stoledo/taucs UMFPACK Davis (2004b) Davis and Duff (1997) (1999), suitesparse.com WSMP Gupta (2002a), Gupta et al. (1997), www.cs.umn.edu/ agupta/wsmp Y12M Zlatev, Wasniewski and Schaumburg (1981), www.netlib.org/y12m YSMP Eisenstat et al. (1977) (1982), Yale Librarian, New Haven, CT 55/59

42 de cursuri pe youtube ale lui T. Davis, primul este aici https://www.youtube.com/watch?v=1dgrtowbkqs 56/59

Pe scurt Fiţi atenţi la astfel de informaţii (capturi din COMSOL) 57/59

Pe scurt Fiţi atenţi la astfel de informaţii 58/59

Tema 3 Abonaţi-vă (cel puţin pe durata acestui semestru) la următoarele 1 NA Digest http://www.netlib.org/na-digest-html/ 2 Computational Science Stack Exchange https://scicomp.stackexchange.com/ şi urmăriţi unul sau mai multe subiecte de interes. Faceţi un scurt raport menţionând informaţiile care v-au stârnit interesul pe durata acestui semestru. Structuraţi raportul sub forma unui tabel cu două coloane, în coloana din stânga luaţi textul relevant din mesajele pe care le veţi primi ca urmare a celor două acţiuni de mai sus şi în coloana din dreapta introduceţi comentariile personale. Nota pe acest raport va reflecta comentariile personale. 59/59