sisteme de ecuatii algebrice liniare - metode iterative...

56
1/56 Introducere Metoda gradien¸ tilor conjuga¸ ti Precondi¸ tionare Referin¸ te Sisteme de ecua¸ tii algebrice liniare - metode iterative nesta¸ tionare (semiiterative) Prof.dr.ing. Gabriela Ciuprina Universitatea "Politehnica" Bucure¸ sti, Facultatea de Inginerie Electric˘ a, Departamentul de Electrotehnic ˘ a Suport didactic pentru disciplina Algoritmi Numerici, 2016-2017 Gabriela Ciuprina Sisteme de ecua¸ tii algebrice liniare - metode semiiterative

Upload: others

Post on 25-Sep-2019

23 views

Category:

Documents


3 download

TRANSCRIPT

1/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Sisteme de ecuatii algebrice liniare - metodeiterative nestationare (semiiterative)

Prof.dr.ing. Gabriela Ciuprina

Universitatea "Politehnica" Bucuresti, Facultatea de Inginerie Electrica,Departamentul de Electrotehnica

Suport didactic pentru disciplina Algoritmi Numerici, 2016-2017

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

2/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Cuprins

1 IntroducereFormularea problemeiMetode stationareIdeea metodei gradientilor conjugati

2 Metoda gradientilor conjugatiMetoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

3 Preconditionare

4 Referinte

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

3/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Formularea problemei

Sistem de n ecuatii algebrice liniare cu n necunoscute:

a11x1 + a12x2 + · · ·+ a1nxn = b1,a21x1 + a22x2 + · · ·+ a2nxn = b2,· · ·an1x1 + an2x2 + · · ·+ annxn = bn.

(1)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

4/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Formularea problemei

Se da matricea coeficientilor

A =

a11 a12 · · · a1n

a21 a22 · · · a2n

· · ·an1 an2 · · · ann

∈ IRn×n (2)

si vectorul termenilor liberi

b =[

b1 b2 · · · bn]T

∈ IRn, (3)

se cere sa se rezolve sistemul

Ax = b, (4)

unde x este solutia

x =[

x1 x2 · · · xn]T

∈ IRn. (5)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

5/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Buna formulare matematica

Problema este bine formulata din punct de vedere matematic(solutia exista si este unica)⇔matricea A este nesingulara (are determinantul nenul).Se scrie formal:

”x = A−1b”

trebuie citita ca:"x este solutia sistemului algebric liniar Ax = b"si NU "se calculeaza inversa matricei A care se înmulteste cuvectorul b".

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

6/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Clasificarea metodelor

1 Metode directe - gasesc solutia teoretica a problemeiîntr-un numar finit de pasi. (Gauss, factorizare LU)

2 Metode iterative - genereaza un sir de aproximatii alesolutiei care se doreste a fi convergent catre solutiaexacta.

stationare: Jacobi, Gauss-Seidel, SOR, SSORnestationare (semiiterative): gradienti conjugati (GC),reziduu minim (MINRES), reziduu minim generalizat(GMRES), gradienti biconjugati (BiGC), etc.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

7/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Ideea metodelor stationare

Ax = b

A = B − C

Bx (k+1) = Cx(k) + b. (6)

B(x(k+1) − x(k)) = b − Ax (k). (7)

Reziduul la iteratia k

r(k) = b − Ax (k), (8)

x(k+1) = x(k) + B−1r(k), (9)Stationaritatea se refera la faptul ca reziduul este întotdeauna înmultitcu matricea B−1, aceeasi pe parcursul tuturor iteratiilor:Jacobi: B = D; Gauss-Seidel: B = D + L; SOR: B = ω−1(D + ωL).Nu se face inversarea propriu zisa, ci se rezolva un sistem algebricliniar.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

8/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Algoritmul general al metodelor stationare

procedur a metoda_iterativa_stationara(n, B, A, b, x0, er, maxit, x)· · ·xv = x0 ; initializeaza sirul iteratiilork = 0 ; initializare contor iteratiirepet a

r = b − A · xv ; calculeaza reziduumetoda_directa (n, B, r, z)d = ‖z‖x = xv + zxv = x ; actualizeaza solutia vechek = k + 1

cât timp d > er si k ≤ maxitretur

Metodele iterative

+ sunt eficiente pentru matrici rare deoarece ele nugenereaza umpleri.

- s-ar putea sa nu fie convergente.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

9/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Clasa de probleme

Este o metoda iterativa nestationara, pentru rezolvarea unorsisteme de ecuatii algebrice de forma

Ax = b, (10)

unde A este simetrica si pozitiv definita.

Algoritmul metodei gradientilor conjugati (GC) este eficientpentru matrice rare.

⇒ Pseudocodurile vor fi descrise simplificat, evidentiindoperatii de algebra liniara, presupuse a fi implementate tinândcont de raritatea structurilor de date.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

10/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Forma patratica

Metoda GC este simplu de înteles daca ea este formulata ca oproblema de minimizare.Fie o forma patratica

f : IRn → IR

f (x) =12

xT Ax − bT x + c, (11)

unde A ∈ IRn×n, x, b ∈ IRn×1, c ∈ IR.

Teorema

Daca A este simetrica si pozitiv definita, atunci functia f (x) datade (11) este minimizata de solutia ecuatiei Ax = b .

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

11/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Forma patratica

Justificarea teoremei:

f (x) =12

xT Ax − bT x + c (12)

∇f (x) =12

AT x +12

Ax − b. (13)

În punctul de minim gradientul este zero

∇f (x) = 0 ⇒12(AT + A)x = b. (14)

Daca AT = A (matrice simetrica) atunci (14) ⇔ Ax = b.⇒ solutia ecuatiei Ax = b este punct critic pentru f .Daca în plus, A pozitiv definita, atunci pct.critic este un minim.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

12/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Matrice pozitiv definita - intuitiv

−40−20

020

40

−40

−20

0

20

40−2000

0

2000

4000

6000

8000

10000

x1

A = [3 , 1.41 ; 1.41 , 4]

x2

f = x

T A

x −

bT x

Functia patratica asociata unei matrice pozitiv

definite. Minimul functiei coincide cu solutia

sistemului. GC functioneaza.

−40−20

020

40

−40

−20

0

20

40−10000

−8000

−6000

−4000

−2000

0

2000

x1

A = [−3 , 1.41 ; 1.41 , −4]

x2

f = x

T A

x −

bT x

Functia patratica asociata unei matrice negativ

definite. Maximul functiei coincide cu solutia

sistemului. Algoritmul GC poate fi modificat cu

usurinta pentru a putea functiona.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

13/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Formularea problemeiMetode stationareIdeea metodei gradientilor conjugati

Matrice pozitiv semidefinita/indefinita - intuitiv

−10−5

05

10

−20

−10

0

10

20−500

0

500

1000

1500

x1

A = [1 , 2 ; 2 , 4]

x2

f = x

T A

x −

bT x

Functia patratica asociata unei matrice singulare,

pozitiv semidefinite. Minimul este atins într-o

infinitate de valori. Sistemul are o infinitate de solutii

(problema prost formulata matematic).

−20−10

010

20

−20

−10

0

10

20−1000

−500

0

500

1000

x1

A = [−1 , 1.73 ; 1.73 , 1]

x2

f = x

T A

x −

bT x

Functia patratica asociata unei matrice indefinite.

Solutia sistemului este punct sa pentru f . GC nu

functioneaza.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

14/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

Ax = b, (15)

f (x) =12

xT Ax − bT x + c (16)

∇f (x) =12

AT x +12

Ax − b = Ax − b. (17)

Ideea: cautarea pe directii care corespund ratei celei mai maride schimbare a functiei.Pentru aproximatia x(k), directia celei mai rapide coborâri:

−∇f (x(k)) = b − Ax (k). (18)

Se definesc:

e(k) = x(k) − x, (19)

r(k) = b − Ax (k). (20)

e(k) - eroarea la iteratia kGabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

15/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

e(k) = x(k) − x, (21)

r(k) = b − Ax (k). (22)

r(k) = b − A(e(k) + x) = b − Ae(k) − Ax .Legatura între eroare si reziduu:

r(k) = −Ae(k). (23)

∇f (x) = Ax − b.

−∇f (x(k)) = b − Ax (k). (24)

Reziduul este directia celei mai rapide coborâri:

r(k) = −∇f (x(k)). (25)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

16/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)Corectia primei iteratii: dupa directia reziduului initializarii:

x(1) = x(0) + αr(0). (26)

α se va alege a.î. pe directia respectiva functia sa fie minima.g(α) = f (x(1)) minima, ⇒

dg

dα(x(1)) = 0 ⇒ (∇f (x(1)))T ·

dx(1)

dα= 0. (27)

Din (25) ⇒ ∇f (x(1)) = −r(1) ;Din (26) ⇒ dx(1)/dα = r(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 AT r(0).

A simetrica ⇒

α =(r(0))T r(0)

(r(0))T Ar (0). (28)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

17/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)Corectia iteratiei k + 1:

x(k+1)= x(k) + αk r(k). (29)

αk se va alege a.î.:

g(αk ) = f (x(k+1)) minima, ⇒

dg

dα(x(k+1)

) = 0 ⇒ (∇f (x(k+1)))

dx(k+1)

dαk= 0. (30)

Din (25) ⇒ ∇f (x(k+1)) = −r(k+1) ;

Din (29) ⇒ dx(k+1)/dαk = r(k) .(30) ⇒ ortogonalitatea reziduurilor:

(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 AT r(k).

A simetrica ⇒

α =(r(k))T r(k)

(r(k))T Ar (k). (31)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

18/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

Algoritm - varianta 0

procedur a metoda_gradientului_v0(n,A,b, x0,er ,maxit , x)· · ·xv = x0 ; initializeaza sirul iteratiilork = 0 ; initializare contor iteratiir = b − A · xv ; calculeaza reziduucât timp ‖r‖ > er si k ≤ maxit

α = rT r/(rT Ar)x = xv + αrr = b − A · xvxv = x ; actualizeaza solutia vechek = k + 1

•retur

Efortul cel mai mare: produsului matrice - vector. (2/iter.).Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

19/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

x(k+1) = x(k) + αk r(k), (32)

Înmultim la stânga cu −A si adunam b ⇒

r(k+1) = r(k) − αkAr (k), (33)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

20/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

procedur a metoda_gradientului(n,A,b, x0,er ,maxit , x)· · ·xv = x0 ; initializeaza sirul iteratiilork = 0 ; initializare contor iteratiir = b − A · xv ; calculeaza reziduue = ‖r‖cât timp e > er si k ≤ maxit

m = A · rα = rT r/(rT m)e = ‖r‖x = xv + αrxv = x ; actualizeaza solutia vechek = k + 1r = r − αm

•retur

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

21/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

Observatii:

1 singur produs matrice vector pe iteratie;

Reziduul se calculeaza recursiv. Se pot acumula erori derotunjire. Este bine ca periodic r(k) = b − Ax (k).

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

22/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

Analiza convergentei acestei metode se face pe bazanumarului de conditionare spectrala

κ =maxλi

minλi≥ 1. (34)

Metoda poate converge rapid, într-un singur pas, dacapunctul de start este ales pe axele elipsoidului sau dacaforma patratica este sferica (ceea ce corespunde cazului încare toate valorile proprii sunt egale).

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

23/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

În rest, convergenta depinde de numarul de conditionare κsi de initializare.

Se poate demonstra ca eroarea la fiecare iteratie i estemarginita de

‖e(i)‖ ≤

(

κ− 1κ+ 1

)i

‖e(0)‖ (35)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

24/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda celei mai rapide coborâri (a gradientului)

−100 −50 0 50 100−100

−80

−60

−40

−20

0

20

40

60

80

100

−100 −50 0 50 100−100

−80

−60

−40

−20

0

20

40

60

80

100

−100 −50 0 50 100−100

−80

−60

−40

−20

0

20

40

60

80

100

κ = 10 κ = 10 κ = 1Convergenta metodei gradientului depinde de initializare si de numarul de conditionare spectrala. O problema care

are numarul de conditionare spectrala κ = 1 (toate valorile proprii sunt egale, iar forma patratica este sferica)

converge într-un singur pas.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

25/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

Metoda gradientului converge atât de încet deoarece directiilede cautare sunt ortogonale si se întâmpla ca pe parcursuliteratiilor directiile de cautare sa se repete.Ar fi de dorit sa existe exact n directii de cautare,d(0), d(1), . . . , d(n−1) astfel încât solutia sa fie gasita dupa exactn pasi.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

26/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

La fiecare pas nou

x(k+1) = x(k) + αkd(k), (36)

iar αk se va alege astfel încât eroarea e(k+1) sa fie ortogonalape d(k) si, în consecinta, nici o alta corectie sa nu se mai facaîn directia lui d(k):

(d(k))T e(k+1) = 0. (37)

OBS: În cazul particular în care directiile d(k) sunt reziduurile,se obtine exact metoda celei mai rapide coborâri.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

27/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

x(k+1) = x(k) + αkd(k), (38)

Scadem solutia exacta din ambii termeni ⇒

e(k+1) = e(k) + αkd(k), (39)

Din(d(k))T e(k+1) = 0. (40)

(d(k))T (e(k) + αkd(k)) = 0. (41)

αk = −(d(k))T e(k)

(d(k))T d(k). (42)

Nu este utila deoarece eroarea nu este cunoscuta.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

28/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

Solutia consta în a face directiile de cautare A-ortogonale si nuortogonale:

(d(k))T Ad (j) = 0. j < k . (43)

Noua cerinta: e(k+1) sa fie A-ortogonal pe d(k)

(echivalent cu gasirea unui punct de minim de-a lungul directiei d(k), ca la metoda gradientului).

ddα

f (x(k+1)) = 0,

(∇f (x(k+1)))T ddα

(x(k+1)) = 0,

−(r(k+1))T d(k) = 0,

(d(k))T Ae(k+1) = 0. (44)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

29/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

Rezulta(d(k))T A(e(k) + αkd(k)) = 0

de unde

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

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

30/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

Teorema

Metoda directiilor conjugate calculeaza solutia în exact n pasi.Pentru demonstratie consultati [Shewchuk94].

Gasirea unui set de directii A-ortogonale d(k) se realizeazausor cu ajutorul procedurii Gram-Schmidt conjugate.

Se porneste de la o multime de n vectori liniarindependenti u(0), u(1), . . . , u(n−1)

d(0) = u(0). (46)

A doua directie porneste de la al doilea vector la care seadauga un vector orientat pe directia anterioara, scalat a.î.rezultatul sa fie A-ortogonal pe directia anterioara.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

31/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

d(1) = u(1) + β10d(0), (47)

unde β10 se alege astfel încât

(d(1))T Ad (0) = 0. (48)

Aceasta relatie este echivalenta cu

(u(1) + β10d(0))T Ad (0) = 0, (49)

de unde

β10 = −(u(1))T Ad (0)

(d(0))T Ad (0). (50)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

32/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

Similar, urmatoarea directie este

d(2) = u(2) + β20d(0) + β21d(1), (51)

unde β20 si β21 se aleg astfel încât

(d(2))T Ad (0) = 0 si (d(2))T Ad (1) = 0, (52)

de unde rezulta

β20 = −(u(2))T Ad (0)

(d(0))T Ad (0), β21 = −

(u(2))T Ad (1)

(d(1))T Ad (1). (53)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

33/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda directiilor conjugate

În general

d(k) = u(k) +

k−1∑

j=0

βkjd(j), (54)

unde βkj , definiti pentru k > j , sunt dedusi din conditiile deA-ortogonalitate impuse directiilor, rezultând

βkj = −(u(k))T Ad (j)

(d(j))T Ad (j). (55)

Dificultate: toate directiile de cautare trebuie memorate pentrua construi o directie de cautare noua.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

34/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Metoda gradientilor conjugati este metoda directiilor conjugateîn care directiile de cautare sunt construite prin conjugareareziduurilor:

u(k) = r(k). (56)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

35/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Justificarea acestei alegeri:1 Intuitiv, inspirat de metoda celei mai rapide coborâri, în

care directiile de cautare erau directiile reziduurilor.2 Proprietatea reziduului de a fi ortogonal pe directiile de

cautare anterioare si pe reziduurile anterioare.

(dk )T r(i) = 0, k < i , (57)

(rk )T r(i) = 0, k < i . (58)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

36/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

De asemenea, reziduul rk este o combinatie liniara dintrereziduul anterior si produsul Ad (k−1):

r(k) = −Ae(k) = −A(e(k)+αkd(k)) = r(k−1)−αk−1Ad (k−1). (59)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

37/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Coeficientii β

βkj = −(r(k))T Ad (j)

(d(j))T Ad (j). (60)

Pentru a explicita termenul de la numarator, vom înmulti relatia(59) la stânga cu (r(i))T :

(r(i))T r(k+1) = (r(i))T r(k) − αk (r(i))T Ad (k), (61)

de unde

αk (r(i))T Ad (k) = (r(i))T r(k) − (r(i))T r(k+1). (62)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

38/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Pentru i 6= k , membrul drept al acestei relatii este nenul doarpentru cazul i = k + 1, când valoarea lui este −(r(i))T r(i)/αi−1.Rezulta ca valorile β sunt nenule doar daca 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)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

39/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Nu mai este necesar ca valorile β sa 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(k−1)=

=(r(k))T r(k)

(r(k−1))T r(k−1). (64)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

40/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

În concluzie, metoda gradientilor conjugati se bazeaza peurmatoarele sase relatii:

d(0) = r(0) = b − Ax (0)

αk =(r(k))T r(k)

(d(k))T Ad (k)

x(k+1) = x(k) + αkd(k)

r(k+1) = r(k) − αkAd (k)

βk+1 =(r(k+1))T r(k+1)

(r(k))T r(k)

d(k+1) = r(k+1) + βk+1d(k)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

41/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Algoritmul este complet dupa n iteratii.

−100 −50 0 50 100−100

−80

−60

−40

−20

0

20

40

60

80

100

−100 −50 0 50 100−100

−80

−60

−40

−20

0

20

40

60

80

100

Convergenta metodei gradientului depinde de initializare si de numarul de conditionare spectrala (stânga). Metoda

gradientilor conjugati converge în exact n pasi, indiferent de initializare si de numarul de conditionare spectrala

(dreapta).

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

42/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

procedur a metoda_gradientilor_conjugati(n, A, b, x0, er, maxit, x)· · ·xv = x0 ; initializeaza sirul iteratiilork = 0 ; initializare contor iteratiir = b − A · xv ; calculeaza reziduucât timp ‖r‖ > er si k ≤ maxit

dac a k = 0d = r

altfel

β = rT r/(rvT · rv)d = r + βdv

α = rT r/(dT Ad)x = xv + αdrv = rr = rv − αAdxv = xdv = dk = k + 1

•retur

Algoritmul se poate îmbunatati, calculând la o iteratie o singura data produsul matrice - vector Ad si produsul scalar

rT r.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

43/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Metoda gradientuluiMetoda directiilor conjugateMetoda gradientilor conjugati

Metoda gradientilor conjugati

Algoritmul este complet dupa n iteratii. Din acest motiv, semai spune ca metoda este semi-iterativa, sirul iteratiilor nutinde catre solutia exacta atunci când numarul iteratiilortinde la infinit, ci, într-o aritmetica exacta, solutia exacta seobtine dupa exact n iteratii.

În practica însa metoda este folosita pentru probleme atâtde mari încât nu ar fi fezabil sa se execute toate cele niteratii. De aceea, iteratiile în algoritm sunt executateîntr-un ciclu cu test si nu într-un ciclu cu contor.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

44/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Preconditionare

Preconditionare

Preconditionare = transformarea problemei initiale într-unaechivalenta care are proprietati îmbunatatite considerabil.Preconditionare la stânga

Ax = b (65)

M−1Ax = M−1b, (66)M matrice nesingulara, numita matrice de preconditionare saupreconditionator.

Convergenta depinde de proprietatile matricei M−1A.

M−1A nu se calculeaza explicit, ci se rezolva My = A

Cazurile extreme: M = I si M = A - nu exista nici un câstig.

O conditie puternica pentru un bun preconditionator este cavalorile proprii ale matricei M−1A sa fie apropiate de 1 si canorma ‖M−1A − I‖2 sa fie mica [Trefethen97].

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

45/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Preconditionare

Preconditionare

Preconditionare la dreapta

AM−1y = b, (67)

unde x = M−1y.Se pot folosi ambele tipuri de preconditionare simultan.Preconditionare matricelor simetrice si pozitiv definitePreconditionarea se face astfel încât sa se pastreze aceastaproprietate.Fie M = CCT - simetrica si pozitiv definita.

[

C−1AC−T]

CT x = C−1b, (68)

unde C−T = (C−1)T = (CT )−1, iar matricea din parantezadreapta este simetrica si pozitiv definita.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

46/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Preconditionare

Preconditionare

Metode de preconditionare celebre

1 Preconditionarea Jacobi (sau scalarea diagonala):M = diag(A), nesingulara. Generalizare: M = diag(c), undec ales convenabil.

2 Factorizarea incompleta Cholesky sau LU în care se aplicaprocedura de factorizare, dar factorii nu sunt calculaticomplet, valorile care ar umple matricea nu sunt luate înconsiderare. Matricea de preconditionare se obtine caprodusul acestor factori incompleti.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

47/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Preconditionare

Preconditionare

Aceste doua exemple de preconditionatori nu fac nicioreferire la problema initiala care a generat sistemul (65).

Cel mai bun sfat general: de a încerca sa se construiascapreconditionatorul pe baza unei versiuni mai simple aproblemei. Pe aceasta idee se bazeaza metodele multigridcare se bazeaza si pe preconditionatori obtinuti din Jacobisi SSOR.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

48/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Referinte

Minimal:[AN] Gabriela Ciuprina,Algoritmi numerici pentru calcule stiintifice în ingineria electricaEditura MatrixROM, 2013, pag. 106-120.Alte recomand ari:[Shewchuk94] J.R. Shewchuk, An Introduction to the ConjugateGradient Method Without the Agonizing Pain, Online[Saad03] Y. Saad, Iterative Methods for Sparse Linear Systems,SIAM, 2003.[Barrett94] R. Barrett, M. Berry, T.F. Chan, J. Demmel, J.M.Donato,J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. Van der Vorst,Templates for the Solution of Linear Systems: Building Blocks forIterative Methods, SIAM 1994.[Trefethen97] Lloyd N. Trefethen, David Bau III Numerical LinearAlgebra, SIAM 1997.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

49/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Referinte

Biblioteci existente:[Dongarra2016] Freely Available Software for Linear Algebra(September 2016),http://www.netlib.org/utk/people/JackDongarra/la-sw.html[Eijkhout97] Overview of Iterative Linear System SolverPackages http://www.netlib.org/utk/papers/iterative-survey/BDDCML, BILUM, BlockSolve95, CERFACS, DUNE/ISTL, GMM++, HIPS, HYPRE, IML++, ITL, ITPACK, ITSOL,

Lis, PARALUTION, pARMS, PETSc, PIM, QMRPACK, SLAP, SOL, SPARSKIT, SPLIB, Templates, Trilinos

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

50/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Referinte

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

51/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Pe scurt

Fiti atenti la astfel de informatii (capturi din LTSPICE).Consultati documentatia pentru detalii!

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

52/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Pe scurt

Fiti atenti la astfel de informatii (capturi din LTSPICE).Consultati documentatia pentru detalii!

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

53/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Pe scurt

Fiti atenti la astfel de informatii (capturi din COMSOL)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

54/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Pe scurt

Fiti atenti la astfel de informatii (capturi din COMSOL)

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

55/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Pe scurt

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative

56/56

IntroducereMetoda gradientilor conjugati

PreconditionareReferinte

Tema 4 (din categoria "examen")

1 Analizati functiile Matlab disponibile pentru rezolvarea sistemelor de ecuatii algebrice liniare: directe(mldivide , lu , chol , luinc , cholinc ), semiiterative (pcg , cgs , gmres , etc.).

2 Implementati algoritmul general al metodelor iterative. Procedura implementata va avea în plus unparametru care sa permita selectarea metodei (Jacobi, Gaiss-Seidel sau SOR, în acest din urma caz vaexista ca parametrul factorul de relaxare ω). Procedura va trebui sa foloseasca tehnici de matrice rare.

3 Experimentati metodele de rezolvare (cele din biblioteca Matlab si cea pe care ati implementat-o la punctul

anterior) pe o problema din urmatoarea lista:

gallery - din Matlab;http://math.nist.gov/MatrixMarket/

http://www.cise.ufl.edu/∼davis/welcome.html - UF sparse matrix collection

4 Studiati comportarea metodelor pe sistemul de ecuatii generat pentru rezolvarea circuitului din capitolul 3 alcartii cu exercitii. Studiati prin experimente numerice complexitatea metodelor utilizate. Realizati graficeilustrative.

Scrieti un raport care sa rezolve punctele de mai sus. Este obligatoriu ca raportul sa aiba: o pagina de titlu, un

cuprins generat automat, o lista de referinte. Dati o structura coerenta raportului.

Gabriela Ciuprina Sisteme de ecuatii algebrice liniare - metode semiiterative