Prodotto di Kronecker

Da Wikipedia, l'enciclopedia libera.

In matematica, nel campo dell'algebra lineare, il prodotto di Kronecker, indicato con \otimes, è una operazione tra due matrici di dimensioni arbitrarie, sempre applicabile, al contrario dell'altra più usuale moltiplicazione di matrici.

Definizione[modifica | modifica sorgente]

Se A una matrice m×n e B una matrice p×q, allora il loro prodotto di Kronecker A \otimes B è una matrice mp×nq definita a blocchi nel modo seguente:

\ A\otimes B = \begin{bmatrix} a_{11} B & \cdots & a_{1n}B \\ \vdots & \ddots & \vdots \\ a_{m1} B & \cdots & a_{mn} B \end{bmatrix}

Cioè, esplicitando ogni termine:

\ A\otimes B = \begin{bmatrix} a_{11} b_{11} & a_{11} b_{12} & \cdots & a_{11} b_{1q} & \cdots & \cdots & a_{1n} b_{11} & a_{1n} b_{12} & \cdots & a_{1n} b_{1q} \\ a_{11} b_{21} & a_{11} b_{22} & \cdots & a_{11} b_{2q} & \cdots & \cdots & a_{1n} b_{21} & a_{1n} b_{22} & \cdots & a_{1n} b_{2q} \\ \vdots & \vdots & \ddots & \vdots & & & \vdots & \vdots & \ddots & \vdots \\ a_{11} b_{p1} & a_{11} b_{p2} & \cdots & a_{11} b_{pq} & \cdots & \cdots & a_{1n} b_{p1} & a_{1n} b_{p2} & \cdots & a_{1n} b_{pq} \\ \vdots & \vdots & & \vdots & \ddots & & \vdots & \vdots & & \vdots \\ \vdots & \vdots & & \vdots & & \ddots & \vdots & \vdots & & \vdots \\ a_{m1} b_{11} & a_{m1} b_{12} & \cdots & a_{m1} b_{1q} & \cdots & \cdots & a_{mn} b_{11} & a_{mn} b_{12} & \cdots & a_{mn} b_{1q} \\ a_{m1} b_{21} & a_{m1} b_{22} & \cdots & a_{m1} b_{2q} & \cdots & \cdots & a_{mn} b_{21} & a_{mn} b_{22} & \cdots & a_{mn} b_{2q} \\ \vdots & \vdots & \ddots & \vdots & & & \vdots & \vdots & \ddots & \vdots \\ a_{m1} b_{p1} & a_{m1} b_{p2} & \cdots & a_{m1} b_{pq} & \cdots & \cdots & a_{mn} b_{p1} & a_{mn} b_{p2} & \cdots & a_{mn} b_{pq} \end{bmatrix}.

Notare che questo prodotto non è un'estensione della sopra citata moltiplicazione "righe per colonne", in quanto la moltiplicazione tra una matrice 3×2 e una 2×3 produce una matrice 6×6, e non una 3×3.

Esempio[modifica | modifica sorgente]

\begin{bmatrix} 1 & 2 \\ 3 & 1 \\ \end{bmatrix} \otimes \begin{bmatrix} 0 & 3 \\ 2 & 1 \\ \end{bmatrix} = \begin{bmatrix} 1\cdot 0 & 1\cdot 3 & 2\cdot 0 & 2\cdot 3 \\ 1\cdot 2 & 1\cdot 1 & 2\cdot 2 & 2\cdot 1 \\ 3\cdot 0 & 3\cdot 3 & 1\cdot 0 & 1\cdot 3 \\ 3\cdot 2 & 3\cdot 1 & 1\cdot 2 & 1\cdot 1 \\ \end{bmatrix} = \begin{bmatrix} 0 & 3 & 0 & 6 \\ 2 & 1 & 4 & 2 \\ 0 & 9 & 0 & 3 \\ 6 & 3 & 2 & 1 \end{bmatrix}

Proprietà[modifica | modifica sorgente]

Bilinearità e associatività[modifica | modifica sorgente]

Il prodotto di Kronecker è un caso speciale di prodotto tensoriale, dunque è bilineare e associativo:

 A \otimes (B+C) = A \otimes B + A \otimes C \qquad (se B e C hanno la stessa dimensione)
 (A+B) \otimes C = A \otimes C + B \otimes C \qquad (se A e B hanno la stessa dimensione)
 (kA) \otimes B = A \otimes (kB) = k(A \otimes B), (k scalare)
 (A \otimes B) \otimes C = A \otimes (B \otimes C),

Questo prodotto non è commutativo, tuttavia A\otimes B e B \otimes A sono equivalenti per permutazione, cioè esistono matrici di permutazione P e Q tali che  A \otimes B = P \, (B \otimes A) \, Q . Se A e B sono quadrate, allora sono simili per permutazione, cioè vale che P = QT

Prodotto misto[modifica | modifica sorgente]

Se A, B, C e D sono matrici tali che esiste il prodotto righe per colonne tra A e C e tra B e D, allora esiste anche  (A \otimes B) \cdot (C \otimes D) e vale che

 (A \otimes B) \cdot (C \otimes D) = (A \cdot C) \otimes (B \cdot D) .

Ne segue che A \otimes B è invertibile se e solo se lo sono A e B e l'inversa è data da  (A \otimes B)^{-1} = A^{-1} \otimes B^{-1}.

Spettro[modifica | modifica sorgente]

Siano A e B quadrate di ordine n e q rispettivamente e siano λ1, ..., λn gli autovalori di A, μ1, ..., μq quelli di B. Allora gli autovalori di A \otimes B sono

 \lambda_i \mu_j, \qquad i=1,\ldots,n ,\, j=1,\ldots,q.

Ne segue che la traccia è \operatorname{tr}(A \otimes B) = \operatorname{tr} A  \cdot  \operatorname{tr} B e che il determinante è \det(A \otimes B) = (\det A)^q  \cdot (\det B)^n.

Valori singolari[modifica | modifica sorgente]

Siano A e B matrici rettangolari con valori singolari non nulli, rispettivamente  \sigma_{A,i} , i=1,..,rA e  \sigma_{B,j} , j=1,..,rB.

Allora il prodotto A \otimes B ha rArB valori singolari che sono esattamente  \sigma_{A,i} \cdot \sigma_{B,j}, i=1,..,rA, j=1,..,rB.

Dal momento che il rango di una matrice è uguale al numero di valori singolari non nulli, allora è  \operatorname{rank}(A \otimes B) = \operatorname{rank} A  \cdot  \operatorname{rank} B .

Relazioni col prodotto tensoriale astratto[modifica | modifica sorgente]

Il prodotto di Kronecker tra matrici corrisponde al prodotto tensoriale astratto di mappe lineari. Specificatamente, se le matrici A e B rappresentano le trasformazioni lineari V1 → W1 e V2 → W2, allora la matrice A \otimes B rappresenta il prodotto tensoriale tra la due mappe V1 \otimes V2 → W1 \otimes W2.

Applicazioni al graph matching[modifica | modifica sorgente]

Se A_1 e A_2 sono le matrici di adiacenza di due grafi non pesati, allora A = A_1 \otimes A_2 + \overline{A_1} \otimes \overline{A_2} è la matrice di adiacenza di un grafo, detto di associazione, i cui vertici corrispondo ad assegnamenti fra i vertici dei due grafi originali e le cui clique massime/massimali corrispondo a match massimi/massimali fra i due grafi originali.

Equazioni matriciali[modifica | modifica sorgente]

Il prodotto di Kronecker può essere usato per la rappresentazione di alcune equazioni matriciali. Si consideri ad esempio l'equazione AXB=C, dove A,B e C sono matrici date e X è incognita. Possiamo riscrivere tale equazione come

 (B^\top \otimes A) \, \operatorname{vec} X = \operatorname{vec} C

dove se X è di ordine m×n, vec(X) denota il vettore di dimensione m×n formato dalle entrate di X scritte ordinatamente per colonna, cioè

 \operatorname{vec} X = [ x_{11}, x_{21}, \ldots, x_{m1}, x_{12}, x_{22}, \ldots, x_{m2}, \ldots, x_{1n}, x_{2n}, \ldots, x_{mn} ]^\top. .

Dalle proprietà enunciate finora, ne viene che l'equazione AXB=C ha un'unica soluzione se e solo se A e B sono non singolari.

Storia[modifica | modifica sorgente]

Il prodotto di Kronecker prende il nome da Leopold Kronecker, ma ci sono poche prove che Kronecker sia stato il primo a definirlo e usarlo. In effetti, in passato è anche stato usato col nome di matrice di Zehfuss, da Johann Georg Zehfuss.

Collegamenti esterni[modifica | modifica sorgente]

matematica Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica