Computer 4 dummy

Informatica facile a portata di tutti

Numpy – Prodotti tra matrici

Utilizzando il pacchetto numpy per python vediamo come fare moltiplicazioni tra matrici.
L’indice del corso lo puoi trovare a questo Link: https://computer4dummy.altervista.org/programmazione-guide-alla-programmazione/numpy-per-python/

Quando si possono moltiplicare

Per eseguire delle operazioni di moltiplicazione tra matrici il numero di colonne della prima matrice deve essere lo stesso del numero di righe della seconda matrice.

Ad esempio se abbiamo una matrice 3X4 (matrice A) ed una seconda 4X5 (matrice B) e le moltiplichiamo otterremo una matrice AB di dimensione 3X5, quindi il numero di righe della matrice A e il numero di colonne della matrice B.

[  1,  2,  3,  4 ]  [  1,  2,  3,  4,  5 ] 
[  5,  6,  7,  8 ]  [  6,  7,  8,  9, 10 ] 
[  9, 10, 11, 12 ]  [ 11, 12, 13, 14, 15 ]
                    [ 16, 17, 18, 19, 20 ]

         A                     B

Il prodotto della matrice avrà le dimensioni 3X5 quindi il numero di righe della prima matrice ed il numero di colonne della seconda.

Quindi per capire facilmente se è possibile moltiplicare tra loro due matrici basta scrivere vicine tra di loro le dimensioni delle due matrici cosi:

   A        B
(3, 4) * (4, 5)

Vicino all’asterisco della moltiplicazione ci sono due quattro quindi le matrici sono moltiplicabili.
Per ottenere la dimensione della matrice prodotto troncando i numeri 4 uguali vicino all’asterisco della moltiplicazione otteniamo 3X5.

   A        B
(3,  ) * ( , 5) ==> (3, 5)

Moltiplicare B X A non è quindi possibile dato che

   B        A
(4, 5) * (3, 4)

Come si moltiplicano

Abbiamo capito fin qui quando possiamo moltiplicare tra di loro due matrici, per calcolarne quindi il prodotto si deve procedere moltiplicando il primo elemento della prima riga della matrice A per il primo elemento della prima riga della matrice B che va sommato al secondo elemento della prima riga della matrice A al secondo elemento della prima colonna di B e così via fino all’ultimo elemento della prima colonna della matrice A.

Mantenendo i dati delle nostre matrici B vediamo un esempio per la prima riga:

[  1,  2,  3,  4 ]  [  1,  2,  3,  4,  5 ] 
[  5,  6,  7,  8 ]  [  6,  7,  8,  9, 10 ] 
[  9, 10, 11, 12 ]  [ 11, 12, 13, 14, 15 ]
                    [ 16, 17, 18, 19, 20 ]

         A                     B

(1*1)+(2*6) +(3*11)+(4*16) = 110
(1*2)+(2*7) +(3*12)+(4*17) = 120
(1*3)+(2*8) +(3*13)+(4*18) = 130
(1*4)+(2*9) +(3*14)+(4*19) = 140
(1*5)+(2*10)+(3*15)+(4*20) = 150

Quindi la prima riga è composta da 110, 120, 130, 140, 150 procediamo quindi a calcolare le successive due righe della prima matrice:

(5*1)+(6* 6)+(7*11)+(8*16) = 246
(5*2)+(6* 7)+(7*12)+(8*17) = 272
(5*3)+(6* 8)+(7*13)+(8*18) = 298
(5*4)+(6* 9)+(7*14)+(8*19) = 324
(5*5)+(6*10)+(7*15)+(8*20) = 350

(9*1)+(10* 6)+(11*11)+(12*16) = 382 
(9*2)+(10* 7)+(11*12)+(12*17) = 424
(9*3)+(10* 8)+(11*13)+(12*18) = 466
(9*4)+(10* 9)+(11*14)+(12*19) = 506
(9*5)+(10*10)+(11*15)+(12*20) = 550

Approfondimenti…

Una descrizione molto più dettagliata sulla moltiplicazione tra matrici la potete trovare al link:

http://www.youmath.it/lezioni/algebra-lineare/matrici-e-vettori/1567-prodotto-riga-per-colonna.html