26.12.2014 Views

metode de calcul numeric matriceal. algoritmi fundamentali

metode de calcul numeric matriceal. algoritmi fundamentali

metode de calcul numeric matriceal. algoritmi fundamentali

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

32 CAPITOLUL 1. ALGORITMI ELEMENTARI<br />

1. Pentru j = 1 : n<br />

1. Pentru i = 1 : m<br />

1. y i ← y i + a ij x j<br />

Bucla interioară reprezintă acum o operaţie Saxpy, corespunzând exprimării<br />

produsului matrice-vector în forma (1.9), care este o sumă <strong>de</strong> vectori. Algoritmul<br />

1.7 se rescrie <strong>de</strong>ci în forma vectorială:<br />

Algoritmul 1.8 (Se dau A ∈ R m×n , x ∈ R n .<br />

y ← Ax + y ∈ R m folosind operaţii Saxpy.)<br />

1. Pentru j = 1 : n<br />

1. y ← Saxpy(x j , A(:, j), y)<br />

Se <strong>calcul</strong>ează<br />

Comentarii. Toţi <strong>algoritmi</strong>i <strong>de</strong> mai sus au 2n 2 operaţii. De aceea Gaxpy<br />

face parte din grupul operaţiilor <strong>de</strong> nivel 2. Vom face referinţă la ea în forma<br />

y = Gaxpy(A, x, y). Desigur, implementările din <strong>algoritmi</strong>i 1.6 şi 1.8 vor fi <strong>de</strong>osebit<br />

<strong>de</strong> eficiente pe <strong>calcul</strong>atoare vectoriale.<br />

♦<br />

1.4 Înmulţirea matricelor<br />

Dedicăm o secţiune separată înmulţirii <strong>de</strong> matrice (şi unor noţiuni conexe),<br />

<strong>de</strong>oarece această operaţie este specifică (nu se poate <strong>de</strong>fini în general produsul a<br />

doi vectori cu rezultat vector 6 ) şi apare <strong>de</strong>seori în construcţia <strong>algoritmi</strong>lor <strong>de</strong> nivel<br />

superior, <strong>de</strong>venind astfel interesantă atât ”teoretic”, cât şi din punctul <strong>de</strong> ve<strong>de</strong>re al<br />

<strong>de</strong>taliilor <strong>de</strong> implementare.<br />

Definiţia 1.1 Fie A ∈ R m×l şi B ∈ R l×n , două matrice; produsul lor este matricea<br />

C = AB ∈ R m×n , <strong>de</strong>finită prin<br />

c ij =<br />

l∑<br />

a ik b kj , i = 1 : m, j = 1 : n.<br />

k=1<br />

Cazuri particulare. Să discutăm întâi cazurile particulare în care cel puţin<br />

una dintre dimensiuni este egală cu 1.<br />

Dacă m = n = 1, atunci A not<br />

= x T este un vector linie, B not<br />

= y este un vector<br />

coloană, ambii în R l , iar produsul lor coinci<strong>de</strong> cu simplul produs scalar AB = x T y.<br />

Dacă l = 1, atunci A not<br />

= x este un vector coloană în R m , B not<br />

= y T este un<br />

vector linie în R n , iar produsul lor este matricea C = xy T ∈ R m×n , <strong>de</strong>finită prin<br />

c ij = x i y j ; această operaţie cu doi vectori poartă numele <strong>de</strong> produs exterior şi va fi<br />

notată prin OUT(x, y).<br />

Dacă n = 1, atunci B not<br />

= y este un vector coloană şi operaţia AB este o înmulţire<br />

matrice-vector.<br />

Dacă m = 1, atunci A not<br />

= x T este un vector linie şi AB = x T B este un vector<br />

linie (înmulţire vector linie - matrice).<br />

6 Produsul ”vectorial” a × b este posibil, printr-un acci<strong>de</strong>nt fericit căruia îi este îndatorată<br />

întreaga fizică clasică, numai în R 3 .

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

Saved successfully!

Ooh no, something went wrong!