Prodotto di Kronecker

In matematica, nel campo dell'algebra lineare, il prodotto di Kronecker, indicato con {\displaystyle \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 B {\displaystyle A\otimes B} è una matrice mp×nq definita a blocchi nel modo seguente:

  A B = [ a 11 B a 1 n B a m 1 B a m n B ] {\displaystyle \ 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 B = [ a 11 b 11 a 11 b 12 a 11 b 1 q a 1 n b 11 a 1 n b 12 a 1 n b 1 q a 11 b 21 a 11 b 22 a 11 b 2 q a 1 n b 21 a 1 n b 22 a 1 n b 2 q a 11 b p 1 a 11 b p 2 a 11 b p q a 1 n b p 1 a 1 n b p 2 a 1 n b p q a m 1 b 11 a m 1 b 12 a m 1 b 1 q a m n b 11 a m n b 12 a m n b 1 q a m 1 b 21 a m 1 b 22 a m 1 b 2 q a m n b 21 a m n b 22 a m n b 2 q a m 1 b p 1 a m 1 b p 2 a m 1 b p q a m n b p 1 a m n b p 2 a m n b p q ] . {\displaystyle \ 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

[ 1 2 3 1 ] [ 0 3 2 1 ] = [ 1 0 1 3 2 0 2 3 1 2 1 1 2 2 2 1 3 0 3 3 1 0 1 3 3 2 3 1 1 2 1 1 ] = [ 0 3 0 6 2 1 4 2 0 9 0 3 6 3 2 1 ] {\displaystyle {\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 ( B + C ) = A B + A C {\displaystyle A\otimes (B+C)=A\otimes B+A\otimes C\qquad } (se B e C hanno la stessa dimensione)
( A + B ) C = A C + B C {\displaystyle (A+B)\otimes C=A\otimes C+B\otimes C\qquad } (se A e B hanno la stessa dimensione)
( k A ) B = A ( k B ) = k ( A B ) , {\displaystyle (kA)\otimes B=A\otimes (kB)=k(A\otimes B),} (k scalare)
( A B ) C = A ( B C ) , {\displaystyle (A\otimes B)\otimes C=A\otimes (B\otimes C),}

Questo prodotto non è commutativo, tuttavia A B {\displaystyle A\otimes B} e B A {\displaystyle B\otimes A} sono equivalenti per permutazione, cioè esistono matrici di permutazione P e Q tali che A B = P ( B A ) Q {\displaystyle 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

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 B ) ( C D ) {\displaystyle (A\otimes B)\cdot (C\otimes D)} e vale che

( A B ) ( C D ) = ( A C ) ( B D ) {\displaystyle (A\otimes B)\cdot (C\otimes D)=(A\cdot C)\otimes (B\cdot D)} .

Ne segue che A B {\displaystyle A\otimes B} è invertibile se e solo se lo sono A e B e l'inversa è data da ( A B ) 1 = A 1 B 1 . {\displaystyle (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 B {\displaystyle A\otimes B} sono

λ i μ j , i = 1 , , n , j = 1 , , q . {\displaystyle \lambda _{i}\mu _{j},\qquad i=1,\ldots ,n,\,j=1,\ldots ,q.}

Ne segue che la traccia è tr ( A B ) = tr A tr B {\displaystyle \operatorname {tr} (A\otimes B)=\operatorname {tr} A\cdot \operatorname {tr} B} e che il determinante è det ( A B ) = ( det A ) q ( det B ) n {\displaystyle \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 σ A , i {\displaystyle \sigma _{A,i}} , i=1,..,rA e σ B , j {\displaystyle \sigma _{B,j}} , j=1,..,rB.

Allora il prodotto A B {\displaystyle A\otimes B} ha rArB valori singolari che sono esattamente σ A , i σ B , j {\displaystyle \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 è rank ( A B ) = rank A rank B {\displaystyle \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 V1 → W1 e V2 → W2, allora la matrice A B {\displaystyle A\otimes B} rappresenta il prodotto tensoriale tra la due mappe V1 {\displaystyle \otimes } V2 → W1 {\displaystyle \otimes } W2.

Applicazioni al graph matching

Se A 1 {\displaystyle A_{1}} e A 2 {\displaystyle A_{2}} sono le matrici di adiacenza di due grafi non pesati, allora A = A 1 A 2 + A 1 ¯ A 2 ¯ {\displaystyle 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 A ) vec X = vec C {\displaystyle (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è

vec X = [ x 11 , x 21 , , x m 1 , x 12 , x 22 , , x m 2 , , x 1 n , x 2 n , , x m n ] . {\displaystyle \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.[1]

Note

  1. ^ Biografia di Zehfuss, su mathshistory.st-andrews.ac.uk.

Collegamenti esterni

  • (EN) Prodotto di Kronecker, in PlanetMath.
  • (EN) Eric W. Weisstein, Prodotto di Kronecker, in MathWorld, Wolfram Research.
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica