Moltiplicazione di una matrice per uno scalare
La moltiplicazione per uno scalare è un’operazione che, data una matrice A ed un numero c (detto scalare), costruisce una nuova matrice cA, il cui elemento è ottenuto moltiplicando l’elemento corrispondente di A per c
(cA)ij = cAi,j
Esempio
Prodotto tra matrici AxB
È definito soltanto se il numero di righe di B coincide con il numero n di colonne di A.
Il risultato è una matrice con lo stesso numero di righe di A e lo stesso numero di colonne di B.
- Se A è una matrice mxn e B una matrice nxl, C = A x B sarà una matrice mxl
- L’elemento di posizione (i,j) in C è dato dalla somma
Esempio 1
Moltiplicando una matrice 2 x 3 per una matrice 3 x 3 si ottiene una matrice 2 x 3
Il risultato è una matrice 2 x 3
Matrici quadrate
- Una matrice si dice quadrata se ha lo stesso numero di righe e colonne.
- Una matrice quadrata ha una diagonale principale, quella formata da tutti gli elementi ai,i con indici uguali. La somma di questi elementi è chiamata traccia. L’operazione di trasposizione trasforma una matrice quadrata A nella matrice At ottenuta scambiando ogni ai,j con aj,i, in altre parole ribaltando la matrice intorno alla sua diagonale principale.
- Una matrice tale che ai,j = aj,i è una matrice simmetrica. In altre parole, A è simmetrica se A = At
- Se tutti gli elementi che non stanno nella diagonale principale sono nulli, la matrice è detta diagonale.
Il prodotto di matrici in Python
Implementare il prodotto di matrici in Python che richiede un po’ più di operazioni rispetto al codice che abbiamo visto per l’addizione:
A =[[2,3],[5,-8]]
B = [[1,-4],[8,-6]]
Def multmatrix(a,b):
#Restituisce il prodotto della matrice a per la matrice b
m = len(a) #numero di righe della prima matrice
n = len(b[0]) #numero di colonne della seconda matrice
newmatrix = []
for i in range(m):
row = []
# per ogni colonna di b...
for j in range(n):
sum1 = 0
# per ogni elemento nella colonna
for k in range(len(b)):
sum1 += a[i][k]*b[k][j]
row.append(sum1)
newmatrix.append(row)
return newmatrix
C =multmatrix(A,B)
print(C)
A =[[1,2,-3,-1]]
B = [[4,-1],[-2,3],[6,-3],[1,0]]
def multmatrix(a,b):
#Restituisce il prodotto della matricea per la matrice b
m = len(a) #numero di righe della prima matrice
n = len(b[0]) #numero di colonne della seconda matrice
newmatrix = []
for i in range(m):
row = []
# per ogni colonna di b...
for j in range(n):
sum1 = 0
# per ogni elemento nella colonna
for k in range(len(b)):
sum1 += a[i][k]*b[k][j]
row.append(sum1)
newmatrix.append(row)
return newmatrix
C =multmatrix(A,B)
print(C)
A = [[1,-2],[2,1]]
B = [[3,-4],[5,6]]
C =multmatrix(A,B)
print(C)
L’ordine dei fattori nel prodotto di matrici conta!
Una cosa importante da ricordare èche nel prodotto di matrici A xB non necessariamente è uguale a B x A:
Vediamo cosa succede invertendo le matrici dell’ esempio precedente:
A = [[3,-4],[5,6]]
B = [[1,-2],[2,1]]
C =multmatrix(A,B)
print(C)