metode de calcul numeric matriceal. algoritmi fundamentali
metode de calcul numeric matriceal. algoritmi fundamentali
metode de calcul numeric matriceal. algoritmi fundamentali
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 .