10.07.2015 Views

Calcul matriceal elementar

Calcul matriceal elementar

Calcul matriceal elementar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.4. PROBLEME REZOLVATE 13Algoritmul 1.5 (Gram-Schmidt) Fiind daţi vectorii liniar independenţi b j , j =1 : p, algoritmul calculează un set de p vectori ortogonali q j , j = 1 : p careformează o bază ortogonală a subspaţiului generat de vectorii b j , j = 1 : p.1. pentru k = 1 : n1. q 1 (k) = b 1 (k)2. pentru j = 1 : p − 11. β j = 02. pentru k = 1 : n1. β j = β j + q j (k) ∗ q j (k)2. q j+1 (k) = b j+1 (k)3. pentru i = 1 : j1. α ij = 02. pentru k = 1 : n1. α ij = α ij + q i (k) ∗ b j+1 (k)3. α ij = −α ij /β i4. pentru k = 1 : n1. q j+1 (k) = q j+1 (k) + α ij q i (k)Observaţi că algoritmul Gram-Schmidt conţine multe operaţii vector-vector cum suntprodusele SAXPY şi DOT, implementate profesional la nivelul 1 BLAS.La curs vom prezenta un algortitm mai bun pentru rezovarea aceleiaşi probleme.Problema 4. Fie o matrice A ∈ IR m×n , un vector b ∈ IR n şi un vector c ∈ IR m , toatedate. Scrieţi un algoritm eficient care să calculeze c ← c + A ∗ b. (Daca iniţial c = 0, atunciaceasta este o problemă de înmultire matrice-vector c = A ∗ b).Soluţie. Vom da doi algoritmi: primul bazat pe algoritmul DOT de calcul al produsuluiscalar a doi vectori (un algortim orientat pe linii) şi un al doilea bazat pe SAXPY (unalgoritm orientat pe coloane). Pentru primul algoritm vom partiţiona matricea A pe linii şivom folosi formulan∑c(i) ← c(i) + A(i, :) ∗ b = c(i) + a ij b j , i = 1 : m.j=1Algoritmul, numit versiunea (i, j) a lui GAXPY, este:Algoritmul 1.6 GAXPY pe linii: Fiind dată o matrice A ∈ IR m×n şi vectoriib ∈ IR n şi c ∈ IR m , algoritmul calculează c ← c + A ∗ b1. pentru i = 1 : m1. pentru j = 1 : n1. c i = c i + a ij ∗ b jPentru al doilea algoritm vom partiţiona matricea A pe coloane şi vom folosi formulan∑c ← c + A :,j b j .j=1Algoritmul, numit versiunea (j, i) a lui GAXPY, este:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!