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

Σχετικά έγγραφα
Metode iterative pentru probleme neliniare - contractii

Sisteme diferenţiale liniare de ordinul 1

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

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

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

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

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

Curs 4 Serii de numere reale

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

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

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

Curs 1 Şiruri 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

Metode iterative pentru rezolvarea sistemelor de ecuatii liniare

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

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

Sisteme liniare - metode directe

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

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

Metode de interpolare bazate pe diferenţe divizate

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

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

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

Esalonul Redus pe Linii (ERL). Subspatii.

Seminar 5 Analiza stabilității sistemelor liniare

Integrala nedefinită (primitive)

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

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

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

Curs 2 Şiruri de numere reale

Asupra unei inegalităţi date la barajul OBMJ 2006

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

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

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

riptografie şi Securitate

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

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.

Subiecte Clasa a VII-a

Subiecte Clasa a VIII-a

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

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

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,...

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

Matrice. Determinanti. Sisteme liniare

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

Criptosisteme cu cheie publică III

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

1.3 Baza a unui spaţiu vectorial. Dimensiune

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Laborator 6. Integrarea ecuaţiilor diferenţiale

MARCAREA REZISTOARELOR

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

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

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

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

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

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

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

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)).

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

Analiză matricială şi condiţionarea unui. sistem liniar

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

Ecuatii trigonometrice

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

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

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

Calculul valorilor proprii

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

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

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

z a + c 0 + c 1 (z a)

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

, m ecuańii, n necunoscute;

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

Conice - Câteva proprietǎţi elementare

Laborator 11. Mulţimi Julia. Temă

Profesor Blaga Mirela-Gabriela DREAPTA

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

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

Sisteme de ecuaţii diferenţiale

Noţiuni introductive

Algoritmi numerici pentru analiza circuitelor electrice rezistive neliniare

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

PROBLEME DE VALORI ŞI VECTORI PROPRII

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

1.3. Erori în calculele numerice

Cum folosim cazuri particulare în rezolvarea unor probleme

Geometrie computationala 2. Preliminarii geometrice

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Problema a II - a (10 puncte) Diferite circuite electrice

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

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

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Conf.dr.ing. Gabriela Ciuprina

CURS 11. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă?

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

Transcript:

Sisteme de ecuaţii algebrice liniare - metode iterative nestaţionare (semiiterative) Conf.dr.ing. Gabriela Ciuprina Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică, Departamentul de Electrotehnică Suport didactic pentru disciplina Algoritmi Numerici, 2012

Cuprins Formularea problemei Metode staţionare Ideea metodei GC Metoda gradientului Metoda direcţiilor conjugate Metoda GC Precondiţionare

Formularea problemei 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)

Se dă matricea coeficienţilor A = Formularea problemei ş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)

Buna formulare matematică 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".

Clasificarea metodelor 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.

Reziduul la iteraţia k Ideea metodelor staţionare Ax = b A = B C Bx (k+1) = Cx (k) + b. (6) B(x (k+1) x (k) ) = b Ax (k). (7) r (k) = b Ax (k), (8) x (k+1) = x (k) + B 1 r (k), (9) Staţionaritatea se referă la faptul că reziduul este întotdeauna înmulţit cu matricea B 1, aceeaşi pe parcursul tuturor iteraţiilor: Jacobi: B = D Gauss-Seidel: B = D+L SOR: B = ω 1 (D+ωL). Nu se face inversarea propriu zisă, ci se rezolvă un sistem algebric liniar.

Algoritmul general al metodelor staţionare procedură metodă_iterativă_staţionară(n, B, A, b, x0, er, maxit, x) xv = x0 ; iniţializează şirul iteraţiilor k = 0 ; iniţializare contor iteraţii repetă r = b A xv ; calculează reziduu metodă_directă (n, B, r, z) d = z x = xv + z xv = x ; actualizează soluţia veche k = k + 1 cât timp d > er şi k maxit retur Metodele iterative + sunt eficiente pentru matrici rare deoarece ele nu generează umpleri. - s-ar putea să nu fie convergente.

Metoda gradienţilor conjugaţi Este o metodă iterativă nestaţionară, pentru rezolvarea unor sisteme de ecuaţii algebrice de forma unde A este simetrică şi pozitiv definită. Ax = b, (10) Algoritmul metodei gradienţilor conjugatţi (GC) este eficient pentru matrice rare. Pseudocodurile vor fi descrise simplificat, evidenţiind operaţii de algebră liniară, presupuse a fi implementate ţinând cont de raritatea structurilor de date.

Forma pătratică Metoda GC este simplu de înţeles dacă ea este formulată ca o problemă de minimizare. Fie o formă pătratică f : IR n IR unde A IR n n, x, b IR n 1, c IR. f(x) = 1 2 xt Ax b T x+c, (11) Teoremă Dacă A este simetrică şi pozitiv definită, atunci funcţia f(x) dată de (11) este minimizată de soluţia ecuaţiei Ax = b.

Justificarea teoremei: Forma pătratică f(x) = 1 2 xt Ax b T x+c (12) f(x) = 1 2 AT x+ 1 Ax b. (13) 2 În punctul de minim gradientul este zero f(x) = 0 1 2 (AT + A)x = b. (14) Dacă A T = A (matrice simetrică) atunci (14) Ax = b. Deci soluţia ecuaţiei Ax = b este punct critic pentru f. Dacă în plus, A este pozitiv definită, atunci punctul critic este un minim.

Matrice pozitiv definită - intuitiv A = [3, 1.41 ; 1.41, 4] A = [ 3, 1.41 ; 1.41, 4] 2000 10000 0 f = x T A x b T x 8000 6000 4000 2000 f = x T A x b T x 2000 4000 6000 8000 0 2000 40 20 0 x 2 20 40 40 20 x 1 0 20 40 10000 40 20 0 x 2 20 40 40 20 x 1 0 20 40 Funcţia pătratică asociată unei matrice pozitiv definite. Minimul funcţiei coincide cu soluţia sistemului. GC functionează. Funcţia pătratică asociată unei matrice negativ definite. Maximul funcţiei coincide cu soluţia sistemului. Algoritmul GC poate fi modificat cu uşurinţă pentru a putea funcţiona.

Matrice pozitiv semidefinită/indefinită - intuitiv A = [1, 2 ; 2, 4] A = [ 1, 1.73 ; 1.73, 1] 1500 1000 f = x T A x b T x 1000 500 0 f = x T A x b T x 500 0 500 500 20 10 0 x 2 10 20 10 5 x 1 0 5 10 1000 20 10 0 x 2 10 20 20 10 x 1 0 10 20 Funcţia pătratică asociată unei matrice singulare, pozitiv semidefinite. Minimul este atins într-o infinitate de valori. Sistemul are o infinitate de soluţii (problema prost formulată matematic). Funcţia pătratică asociată unei matrice indefinite. Soluţia sistemului este punct şa pentru f. GC nu funcţionează.

Metoda celei mai rapide coborâri (a gradientului) Ax = b, (15) f(x) = 1 2 xt Ax b T x+c (16) f(x) = 1 2 AT x+ 1 Ax b = Ax b. (17) 2 Ideea: căutarea pe direcţii care corespund ratei celei mai mari de schimbare a funcţiei. Pentru aproximaţia x (k), direcţia celei mai rapide coborâri: Se definesc: e (k) - eroarea la iteraţia k r (k) - reziduul la iteraţia k. f(x (k) ) = b Ax (k). (18) e (k) = x (k) x, (19) r (k) = b Ax (k). (20)

Metoda celei mai rapide coborâri (a gradientului) r (k) = b A(e (k) + x) = b Ae (k) Ax. Legătura între eroare şi reziduu: e (k) = x (k) x, (21) r (k) = b Ax (k). (22) r (k) = Ae (k). (23) f(x) = Ax b. f(x (k) ) = b Ax (k). (24) Reziduul este direcţia celei mai rapide coborâri: r (k) = f(x (k) ). (25)

Metoda celei mai rapide coborâri (a gradientului) Corecţia primei iteraţii: după direcţia reziduului corespunzător iniţializării: x (1) = x (0) +αr (0). (26) α se va alege a.î. pe direcţia respectivă funcţia să fie minimă. g(α) = f(x (1) ) minimă, dg dα (x(1) ) = 0 Din (25) f(x (1) ) = r (1) ; Din (26) dx (1) /dα = r (0). (27) ( f(x (1) )) T dx(1) dα = 0. (27) (r (1) ) T r (0) = 0, (b Ax (1) ) T r (0) = 0, [b A(x (0) + αr (0) )] T r (0) = 0, (b Ax (0) αar (0) )) T r (0) = 0, (b Ax (0) ) T r (0) α(ar (0) ) T r (0) = 0, (r (0) ) T r (0) = α(r (0) ) T A T r (0). A simetrică α = (r(0) ) T r (0) (r (0) ) T Ar (0). (28)

Metoda celei mai rapide coborâri (a gradientului) Corecţia iteraţiei k + 1: α k se va alege a.î.: g(α k ) = f(x (k+1) ) minimă, dg dα (x(k+1) ) = 0 Din (25) f(x (k+1) ) = r (k+1) ; Din (29) dx (k+1) /dα k = r (k). (30) ortogonalitatea reziduurilor: x (k+1) = x (k) +α k r (k). (29) ( f(x (k+1) )) T dx(k+1) dα k = 0. (30) (r (k+1) ) T r (k) = 0, (b Ax (k+1) ) T r (k) = 0, [b A(x (k) + αr (k) )] T r (k) = 0, (b Ax (k) αar (k) )) T r (k) = 0, (b Ax (k) ) T r (k) α(ar (k) ) T r (k) = 0, (r (k) ) T r (k) = α(r (k) ) T A T r (k). A simetrică α = (r(k) ) T r (k) (r (k) ) T Ar (k). (31)

Metoda celei mai rapide coborâri (a gradientului) Algoritm - varianta 0 procedură metoda_gradientului_v0(n, A, b, x0, er, maxit, x) xv = x0 ; iniţializează şirul iteraţiilor k = 0 ; iniţializare contor iteraţii r = b A xv ; calculează reziduu cât timp r > er şi k maxit α = r T r/(r T Ar) x = xv+αr r = b A xv xv = x ; actualizează soluţia veche k = k + 1 retur Efortul cel mai mare de calcul: datorat produsului dintre o matrice şi un vector. (două astfel de produse la fiecare iteraţie).

Metoda celei mai rapide coborâri (a gradientului) Înmulţim la stânga cu A şi adunăm b x (k+1) = x (k) +α k r (k), (32) r (k+1) = r (k) α k Ar (k), (33) procedură metoda_gradientului(n, A, b, x0, er, maxit, x) xv = x0 ; iniţializează şirul iteraţiilor k = 0 ; iniţializare contor iteraţii r = b A xv ; calculează reziduu e = r cât timp e > er şi k maxit m = A r α = r T r/(r T m) e = r x = xv + αr xv = x ; actualizează soluţia veche k = k + 1 r = r αm retur Observaţii: 1 singur produs matrice vector pe iteraţie; Reziduul se calculează recursiv. Se pot acumula erori de rotunjire. Este bine ca periodic r (k) = b Ax (k).

Metoda celei mai rapide coborâri (a gradientului) Analiza convergenţei acestei metode se face pe baza numărului de condiţionare spectrală κ = maxλ i minλ i 1. (34) Metoda poate converge rapid, într-un singur pas, dacă punctul de start este ales pe axele elipsoidului sau dacă forma pătratică este sferică (ceea ce corespunde cazului în care toate valorile proprii sunt egale). În rest, convergenţa depinde de numărul de condiţionare κ şi de iniţializare. Se poate demonstra că eroarea la fiecare iteraţie i este mărginită de ( ) κ 1 i e (i) e (0) (35) κ+1

Metoda celei mai rapide coborâri (a gradientului) 100 80 60 40 20 0 20 40 60 80 100 80 60 40 20 0 20 40 60 80 100 80 60 40 20 0 20 40 60 80 100 100 50 0 50 100 100 100 50 0 50 100 100 100 50 0 50 100 κ = 10 κ = 10 κ = 1 Convergentă metodei gradientului depinde de iniţializare şi de numărul de condiţionare spectrală. O problemă care are numărul de condiţionare spectrala κ = 1 (toate valorile proprii sunt egale, iar forma pătratică este sferică) converge într-un singur pas.

Metoda direcţiilor conjugate Metoda gradientului converge atât de încet deoarece direcţiile de căutare sunt ortogonale şi se întâmplă ca pe parcursul iteraţiilor direcţiile de căutare să se repete. Ar fi de dorit să existe exact n direcţii de căutare, d (0), d (1),...,d (n 1) astfel încât soluţia să fie găsită după exact n paşi. La fiecare pas nou x (k+1) = x (k) +α k d (k), (36) iar α k se va alege astfel încât eroarea e (k+1) să fie ortogonală pe d (k) şi, în consecinţă, nici o altă corecţie să nu se mai facă în direcţia lui d (k) : (d (k) ) T e (k+1) = 0. (37) OBS: În cazul particular în care direcţiile d (k) sunt reziduurile, se obţine exact metoda celei mai rapide coborâri.

Metoda direcţiilor conjugate x (k+1) = x (k) +α k d (k), (38) Scădem soluţia exactă din ambii termeni Din e (k+1) = e (k) +α k d (k), (39) (d (k) ) T e (k+1) = 0. (40) (d (k) ) T (e (k) +α k d (k) ) = 0. (41) α k = (d(k) ) T e (k) (d (k) ) T d (k). (42) Nu este utilă deoarece eroarea nu este cunoscută.

Metoda direcţiilor conjugate Soluţia constă în a face direcţiile de căutare A-ortogonale şi nu ortogonale: (d (k) ) T Ad (j) = 0. j < k. (43) Noua cerinţă este ca e (k+1) să fie A-ortogonal pe d (k), această condiţie fiind echivalentă cu găsirea unui punct de minim de-a lungul direcţiei d (k), aşa cum se făcea la metoda gradientului. d dα f(x(k+1) ) = 0, ( f(x (k+1) )) T d dα (x(k+1) ) = 0, (r (k+1) ) T d (k) = 0, Rezultă (d (k) ) T A(e (k) +α k d (k) ) de unde (d (k) ) T Ae (k+1) = 0. (44) α k = (d(k) ) T Ae (k) (d (k) ) T Ad (k) = (d(k) ) T r (k) (d (k) ) T Ad (k), (45) expresie ce se poate calcula.

Metoda direcţiilor conjugate Teoremă Metoda direcţiilor conjugate calculează soluţia în exact n paşi. Pentru demonstraţie consultaţi documentul extins. Găsirea unui set de direcţii A-ortogonale d (k) se realizează uşor cu ajutorul procedurii Gram-Schmidt conjugate. Se porneşte de la o mulţime de n vectori liniar independenţi u (0), u (1),...,u (n 1) d (0) = u (0). (46) A doua direcţie porneşte de la al doilea vector la care se adaugă un vector orientat pe direcţia anterioară, scalat astfel încât rezultatul să fie A-ortogonal pe direcţia anterioară.

Metoda direcţiilor conjugate d (1) = u (1) +β 10 d (0), (47) unde β 10 se alege astfel încât (d (1) ) T Ad (0) = 0. (48) Această relaţie este echivalentă cu (u (1) +β 10 d (0) ) T Ad (0) = 0, (49) de unde β 10 = (u(1) ) T Ad (0) (d (0) ) T Ad (0). (50)

Metoda direcţiilor conjugate Similar, următoarea direcţie este d (2) = u (2) +β 20 d (0) +β 21 d (1), (51) unde β 20 şi β 21 se aleg astfel încât de unde rezultă (d (2) ) T Ad (0) = 0 şi (d (2) ) T Ad (1) = 0, (52) β 20 = (u(2) ) T Ad (0) (d (0) ) T Ad (0), β 21 = (u(2) ) T Ad (1) (d (1) ) T Ad (1). (53)

Metoda direcţiilor conjugate În general k 1 d (k) = u (k) + β kj d (j), (54) unde β kj, definiţi pentru k > j, sunt deduşi din condiţiile de A-ortogonalitate impuse direcţiilor, rezultând j=0 β kj = (u(k) ) T Ad (j) (d (j) ) T. (55) Ad (j) Dificultate: toate direcţiile de căutare trebuie memorate pentru a construi o direcţie de căutare nouă.

Metoda gradienţilor conjugaţi Metoda gradienţilor conjugaţi este metoda direcţiilor conjugate în care direcţiile de căutare sunt construite prin conjugarea reziduurilor: u (k) = r (k). (56) Justificarea acestei alegeri: 1. Intuitiv, inspirat de metoda celei mai rapide coborâri, în care direcţiile de căutare erau direcţiile reziduurilor. 2. Proprietatea reziduului de a fi ortogonal pe direcţiile de căutare anterioare şi pe reziduurile anterioare. (d k ) T r (i) = 0, k < i, (57) (r k ) T r (i) = 0, k < i. (58) De asemenea, reziduul r k este o combinaţie liniară dintre reziduul anterior şi produsul Ad (k 1) : r (k) = Ae (k) = A(e (k) +α k d (k) ) = r (k 1) α k 1 Ad (k 1). (59)

Metoda gradienţilor conjugaţi Coeficienţii β β kj = (r(k) ) T Ad (j) (d (j) ) T Ad (j). (60) Pentru a explicita termenul de la numărător, vom înmulţi relaţia (59) la stânga cu (r (i) ) T : de unde (r (i) ) T r (k+1) = (r (i) ) T r (k) α k (r (i) ) T Ad (k), (61) α k (r (i) ) T Ad (k) = (r (i) ) T r (k) (r (i) ) T r (k+1). (62) Pentru i k, membrul drept al acestei relaţii este nenul doar pentru cazul i = k + 1, când valoarea lui este (r (i) ) T r (i) /α i 1. Rezultă că valorile β sunt nenule doar dacă i = k + 1: β kj = { (r (k) ) T r (k) α k 1 (d (k 1) ) T Ad (k 1) k = i 1, 0 k < i 1 (63)

Metoda gradienţilor conjugaţi Nu mai este necesar ca valorile β să fie notate cu doi indici. Vom renota β k = β k,k 1 = (r (k) ) T r (k) α k 1 (d (k 1) ) T Ad (k 1) = (r(k) ) T r (k) (d (k 1) ) T r = (r(k) ) T r (k) (k 1) (r (k 1) ) T r (k 1). (64) În concluzie, metoda gradienţilor conjugaţi se bazează pe următoarele şase relaţii: d (0) = r (0) = b Ax (0) α k = (r (k) ) T r (k) (d (k) ) T Ad (k) x (k+1) = x (k) +α k d (k) r (k+1) = r (k) α k Ad (k) β k+1 = (r(k+1) ) T r (k+1) (r (k) ) T r (k) d (k+1) = r (k+1) +β k+1 d (k)

Metoda gradienţilor conjugaţi Algoritmul este complet după n iteraţii. 100 80 60 40 20 0 20 40 60 80 100 80 60 40 20 0 20 40 60 80 100 100 50 0 50 100 100 100 50 0 50 100 Convergenţa metodei gradientului depinde de iniţializare şi de numărul de condiţionare spectrală (stânga). Metoda gradienţilor conjugaţi converge în exact n paşi, indiferent de iniţializare şi de numărul de condiţionare spectrală (dreapta).

Algoritm: Metoda gradienţilor conjugaţi procedură metoda_gradienţilor_conjugaţi(n, A, b, x0, er, maxit, x) xv = x0 ; iniţializează şirul iteraţiilor k = 0 ; iniţializare contor iteraţii r = b A xv ; calculează reziduu cât timp r > er şi k maxit dacă k = 0 d = r altfel β = r T r/(rv T rv) d = r + βdv α = r T r/(d T Ad) x = xv + αd rv = r r = rv αad xv = x dv = d k = k + 1 retur Algoritmul se poate îmbunătăţi, calculând la o iteraţie o singură dată produsul matrice - vector Ad şi produsul scalar r T r.

Metoda gradienţilor conjugaţi Algoritmul este complet după n iteraţii. Din acest motiv, se mai spune că metoda este semi-iterativă, şirul iteraţiilor nu tinde către soluţia exactă atunci când numărul iteraţiilor tinde la infinit, ci, într-o aritmetică exactă, soluţia exactă se obţine după exact n iteraţii. În practică însă metoda este folosită pentru probleme atât de mari încât nu ar fi fezabil să se execute toate cele n iteraţii. De aceea, iteraţiile în algoritm sunt executate într-un ciclu cu test şi nu într-un ciclu cu contor.

Precondiţionare Precondiţionare = transformarea problemei iniţiale într-una echivalentă care are proprietaţi îmbunătăţite considerabil. Precondiţionare la stânga Ax = b (65) M 1 Ax = M 1 b, (66) M matrice nesingulară, numită matrice de precondiţionare sau precondiţionator. Convergenţa depinde de proprietăţile matricei M 1 A. M 1 A nu se calculează explicit, ci se rezolvă My = A Cazurile extreme: M = I şi M = A - nu există nici un câştig. O condiţie puternică pentru un bun precondiţionator este ca valorile proprii ale matricei M 1 A să fie apropiate de 1 şi ca norma M 1 A I 2 să fie mică [Trefethen:97].

Precondiţionare la dreapta Precondiţionare AM 1 y = b, (67) unde x = M 1 y. Se pot folosi ambele tipuri de precondiţionare simultan. Precondiţionare matricelor simetrice şi pozitiv definite Precondiţionarea se face astfel încât să se păstreze această proprietate. Fie M = CC T - simetrică şi pozitiv definită. [ C 1 AC T] C T x = C 1 b, (68) unde C T = (C 1 ) T = (C T ) 1, iar matricea din paranteza dreapta este simetrică şi pozitiv definită.

Precondiţionare Metode de precondiţionare celebre 1. Precondiţionarea Jacobi (sau scalarea diagonală): M = diag(a), nesingulară. Generalizare: M = diag(c), unde c ales convenabil. 2. Factorizarea incompletă Cholesky sau LU în care se aplica procedura de factorizare, dar factorii nu sunt calculati complet, valorile care ar umple matricea nu sunt luate în considerare. Matricea de precondiţionare se obţine ca produsul acestor factori incompleţi. Aceste două exemple de precondiţionatori nu fac nicio referire la problema iniţială care a generat sistemul (65). Cel mai bun sfat general: de a încerca să se construiască precondiţionatorul pe baza unei versiuni mai simple a problemei. Pe această idee se bazează metodele multigrid care se bazează şi pe precondiţionatori obţinuţi din Jacobi şi SSOR..

Precondiţionare Sugestie pentru studiu. 1. Analizaţi funcţiile Matlab disponibile pentru rezolvarea sistemelor de ecuaţii algebrice liniare: directe (mldivide, lu, chol, luinc, cholinc), semiiterative (pcg, cgs, gmres, etc.). 2. Alegeţi un set de sisteme de test pe care să experimentaţi metodele de rezolvare. Algeţi aceste probleme din următoarea listă: gallery - din Matlab; http://math.nist.gov/matrixmarket/ http://www.cise.ufl.edu/ davis/welcome.html - UF sparse matrix collection