Prodotto di Kronecker
# Prodotto di Kronecker

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

## Definizione

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

${\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à

### Bilinearità e associatività

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 = $Q^T$

### Prodotto misto

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

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

Siano A e B matrici rettangolari con valori singolari non nulli, rispettivamente $\sigma _{A,i}$, $i=1,..,r_A$ e $\sigma _{B,j}$, $j=1,..,r_B.$

Allora il prodotto $A\otimes B$ ha $r_Ar_B$ valori singolari che sono esattamente Errore del parser (SVG (MathML può essere abilitato tramite plug-in del browser): risposta non valida ("Math extension cannot connect to Restbase.") dal server "http://localhost:6011/it.wikipedia.org/v1/":): {\displaystyle \sigma_{A,i} \cdot \sigma_{B,j}} , $i=1,..,r_A,$ $j=1,..,r_B.$

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

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 $V_1$ → $W_1$ e $V_2$ → $W_2,$ allora la matrice $A\otimes B$ rappresenta il prodotto tensoriale tra la due mappe $V_1$ $\otimes$ $V_2$ → $W_1$ $\otimes$ $W_2.$

## Applicazioni al graph matching

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 corrispondono ad assegnamenti fra i vertici dei due grafi originali e le cui clique massime/massimali corrispondono a match massimi/massimali fra i due grafi originali.

## Equazioni matriciali

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

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.

