Prodotto diadico

In algebra lineare, il prodotto diadico o prodotto esterno,[1] di due vettori è una matrice . Se i due vettori hanno dimensioni n e m, il loro prodotto esterno è una matrice n × m.

Il prodotto esterno si può definire in ambito più generale: dati due tensori, il loro prodotto esterno è un tensore. Il prodotto esterno dei tensori è anche chiamato il loro prodotto tensoriale e può essere usato per definire l'algebra tensoriale .

Il prodotto esterno differisce da:

  • il prodotto scalare, che a partire da una coppia di vettori produce uno scalare;
  • il prodotto di Kronecker, che a partire da una coppia di matrici produce una matrice;
  • la classica moltiplicazione di matrici righe per colonne.

Definizione

Dati due vettori di dimensioni m × 1 {\displaystyle m\times 1} e n × 1 {\displaystyle n\times 1} rispettivamente

u = [ u 1 u 2 u m ] , v = [ v 1 v 2 v n ] , {\displaystyle \mathbf {u} ={\begin{bmatrix}u_{1}\\u_{2}\\\vdots \\u_{m}\end{bmatrix}},\quad \mathbf {v} ={\begin{bmatrix}v_{1}\\v_{2}\\\vdots \\v_{n}\end{bmatrix}},}

il loro prodotto esterno, denotato u v , {\displaystyle \mathbf {u} \otimes \mathbf {v} ,} è definito come una matrice A {\displaystyle \mathbf {A} } con forma m × n {\displaystyle m\times n} e il prodotto esterno è ottenuto moltiplicando ogni elemento di u {\displaystyle \mathbf {u} } con ogni elemento di v {\displaystyle \mathbf {v} } :[2]

u v = A = [ u 1 v 1 u 1 v 2 u 1 v n u 2 v 1 u 2 v 2 u 2 v n u m v 1 u m v 2 u m v n ] . {\displaystyle \mathbf {u} \otimes \mathbf {v} =\mathbf {A} ={\begin{bmatrix}u_{1}v_{1}&u_{1}v_{2}&\dots &u_{1}v_{n}\\u_{2}v_{1}&u_{2}v_{2}&\dots &u_{2}v_{n}\\\vdots &\vdots &\ddots &\vdots \\u_{m}v_{1}&u_{m}v_{2}&\dots &u_{m}v_{n}\end{bmatrix}}.}

Alternativamente nella notazione con indici:

( u v ) i j = u i v j . {\displaystyle (\mathbf {u} \otimes \mathbf {v} )_{ij}=u_{i}v_{j}.}

Sia {\displaystyle \cdot } il prodotto scalare, allora per ogni vettore w {\displaystyle \mathbf {w} } di dimensioni n × 1 {\displaystyle n\times 1} si ha

( u v ) w = ( v w ) u , {\displaystyle (\mathbf {u} \otimes \mathbf {v} )\mathbf {w} =(\mathbf {v} \cdot \mathbf {w} )\mathbf {u} ,}

e per ogni vettore x {\displaystyle \mathbf {x} } di dimensioni 1 × m {\displaystyle 1\times m} si ha

x ( u v ) = ( x u ) v T . {\displaystyle \mathbf {x} (\mathbf {u} \otimes \mathbf {v} )=(\mathbf {x} \cdot \mathbf {u} )\mathbf {v} ^{\operatorname {T} }.}

Se u {\displaystyle \mathbf {u} } e v {\displaystyle \mathbf {v} } sono vettori con stesse dimensioni, allora det ( u v ) = 0. {\displaystyle \det(\mathbf {u} \otimes \mathbf {v} )=0.}

Il prodotto esterno u v {\displaystyle \mathbf {u} \otimes \mathbf {v} } è equivalente a una moltiplicazione matriciale u v T , {\displaystyle \mathbf {u} \mathbf {v} ^{\operatorname {T} },} purché u {\displaystyle \mathbf {u} } è rappresentato come a m × 1 {\displaystyle m\times 1} vettore colonna e v {\displaystyle \mathbf {v} } come un n × 1 {\displaystyle n\times 1} vettore colonna (che rende v T {\displaystyle \mathbf {v} ^{\operatorname {T} }} un vettore riga).[3][4] Ad esempio, se m = 4 {\displaystyle m=4} e n = 3 , {\displaystyle n=3,} allora[5]

u v = u v T = [ u 1 u 2 u 3 u 4 ] [ v 1 v 2 v 3 ] = [ u 1 v 1 u 1 v 2 u 1 v 3 u 2 v 1 u 2 v 2 u 2 v 3 u 3 v 1 u 3 v 2 u 3 v 3 u 4 v 1 u 4 v 2 u 4 v 3 ] . {\displaystyle \mathbf {u} \otimes \mathbf {v} =\mathbf {u} \mathbf {v} ^{\operatorname {T} }={\begin{bmatrix}u_{1}\\u_{2}\\u_{3}\\u_{4}\end{bmatrix}}{\begin{bmatrix}v_{1}&v_{2}&v_{3}\end{bmatrix}}={\begin{bmatrix}u_{1}v_{1}&u_{1}v_{2}&u_{1}v_{3}\\u_{2}v_{1}&u_{2}v_{2}&u_{2}v_{3}\\u_{3}v_{1}&u_{3}v_{2}&u_{3}v_{3}\\u_{4}v_{1}&u_{4}v_{2}&u_{4}v_{3}\end{bmatrix}}.}

Per vettori a elementi complessi, è spesso utile prendere la trasposta coniugata di v , {\displaystyle \mathbf {v} ,} indicato v {\displaystyle \mathbf {v} ^{\dagger }} o ( v T ) {\displaystyle \left(\mathbf {v} ^{\operatorname {T} }\right)^{*}} :

u v = u v = u ( v T ) . {\displaystyle \mathbf {u} \otimes \mathbf {v} =\mathbf {u} \mathbf {v} ^{\dagger }=\mathbf {u} \left(\mathbf {v} ^{\operatorname {T} }\right)^{*}.}

Confronto con il prodotto scalare euclideo

Se m = n , {\displaystyle m=n,} allora si può prendere il prodotto matriciale u T v {\displaystyle \mathbf {u} ^{\textsf {T}}\mathbf {v} } ottenendo uno scalare (o matrice 1 × 1 {\displaystyle 1\times 1} ). Questo è il prodotto scalare standard per gli spazi vettoriali euclidei.[4] Il prodotto scalare è la traccia del prodotto esterno.[6] A differenza del prodotto scalare, il prodotto esterno non è commutativo.

La moltiplicazione di un vettore w {\displaystyle \mathbf {w} } per una matrice u v {\displaystyle \mathbf {u} \otimes \mathbf {v} } può essere scritta in termini di prodotto scalare, usando la relazione ( u v ) w = u v , w {\displaystyle \left(\mathbf {u} \otimes \mathbf {v} \right)\mathbf {w} =\mathbf {u} \left\langle \mathbf {v} ,\mathbf {w} \right\rangle } .

Prodotto esterno di tensori

Dati due tensori u , v {\displaystyle \mathbf {u} ,\mathbf {v} } con dimensioni ( k 1 , k 2 , , k m ) {\displaystyle (k_{1},k_{2},\dots ,k_{m})} e ( l 1 , l 2 , , l n ) {\displaystyle (l_{1},l_{2},\dots ,l_{n})} , il loro prodotto esterno u v {\displaystyle \mathbf {u} \otimes \mathbf {v} } è un tensore con dimensioni ( k 1 , k 2 , , k m , l 1 , l 2 , , l n ) {\displaystyle (k_{1},k_{2},\dots ,k_{m},l_{1},l_{2},\dots ,l_{n})} ed elementi

( u v ) i 1 , i 2 , i m , j 1 , j 2 , , j n = u i 1 , i 2 , , i m v j 1 , j 2 , , j n . {\displaystyle (\mathbf {u} \otimes \mathbf {v} )_{i_{1},i_{2},\dots i_{m},j_{1},j_{2},\dots ,j_{n}}=u_{i_{1},i_{2},\dots ,i_{m}}v_{j_{1},j_{2},\dots ,j_{n}}.}

Ad esempio, se A {\displaystyle \mathbf {A} } ha dimensioni ( 3 , 5 , 7 ) {\displaystyle (3,5,7)} e B {\displaystyle \mathbf {B} } ha dimensioni ( 10 , 100 ) , {\displaystyle (10,100),} il loro prodotto esterno C {\displaystyle \mathbf {C} } ha dimensioni ( 3 , 5 , 7 , 10 , 100 ) . {\displaystyle (3,5,7,10,100).} Se A {\displaystyle \mathbf {A} } ha una componente A 2 , 2 , 4 = 11 {\displaystyle \mathbf {A} _{2,2,4}=11} e B {\displaystyle \mathbf {B} } ha una componente B 8 , 88 = 13 , {\displaystyle \mathbf {B} _{8,88}=13,} allora la componente di C {\displaystyle \mathbf {C} } formato dal prodotto esterno è C 2 , 2 , 4 , 8 , 88 = 143. {\displaystyle \mathbf {C} _{2,2,4,8,88}=143.}

Collegamento con il prodotto Kronecker

Il prodotto esterno e il prodotto di Kronecker sono strettamente correlati; infatti lo stesso simbolo è comunemente usato per denotare entrambe le operazioni.

u Kron v = [ 4 5 8 10 12 15 ] , u outer v = [ 4 5 8 10 12 15 ] . {\displaystyle \mathbf {u} \otimes _{\text{Kron}}\mathbf {v} ={\begin{bmatrix}4\\5\\8\\10\\12\\15\end{bmatrix}},\qquad \mathbf {u} \otimes _{\text{outer}}\mathbf {v} ={\begin{bmatrix}4&5\\8&10\\12&15\end{bmatrix}}.}

Nel caso dei vettori colonna, il prodotto di Kronecker può essere visto come una forma di vettorializzazione del prodotto esterno. In particolare, per due vettori colonna u {\displaystyle \mathbf {u} } e v {\displaystyle \mathbf {v} } , possiamo scrivere:

u Kron v = vec ( v outer u ) . {\displaystyle \mathbf {u} \otimes _{\text{Kron}}\mathbf {v} =\operatorname {vec} (\mathbf {v} \otimes _{\text{outer}}\mathbf {u} ).}

Notare che l'ordine dei vettori è invertito nella parte destra dell'uguaglianza.

Un'altra identità simile che evidenzia ulteriormente la somiglianza tra le operazioni è

u Kron v T = u v T = u outer v , {\displaystyle \mathbf {u} \otimes _{\text{Kron}}\mathbf {v} ^{\operatorname {T} }=\mathbf {u} \mathbf {v} ^{\operatorname {T} }=\mathbf {u} \otimes _{\text{outer}}\mathbf {v} ,}

dove non è necessario invertire l'ordine dei vettori. L'espressione centrale usa la moltiplicazione matriciale, dove i vettori sono considerati come matrici colonna/riga.

Proprietà

Il prodotto esterno dei vettori soddisfa le seguenti proprietà:

( u v ) T = ( v u ) ; {\displaystyle (\mathbf {u} \otimes \mathbf {v} )^{\operatorname {T} }=(\mathbf {v} \otimes \mathbf {u} );}
( v + w ) u = v u + w u ; {\displaystyle (\mathbf {v} +\mathbf {w} )\otimes \mathbf {u} =\mathbf {v} \otimes \mathbf {u} +\mathbf {w} \otimes \mathbf {u} ;}
u ( v + w ) = u v + u w ; {\displaystyle \mathbf {u} \otimes (\mathbf {v} +\mathbf {w} )=\mathbf {u} \otimes \mathbf {v} +\mathbf {u} \otimes \mathbf {w} ;}
c ( v u ) = ( c v ) u = v ( c u ) ; {\displaystyle c(\mathbf {v} \otimes \mathbf {u} )=(c\mathbf {v} )\otimes \mathbf {u} =\mathbf {v} \otimes (c\mathbf {u} );}
( u v ) w = u ( v w ) . {\displaystyle (\mathbf {u} \otimes \mathbf {v} )\otimes \mathbf {w} =\mathbf {u} \otimes (\mathbf {v} \otimes \mathbf {w} ).}

Rango di un prodotto esterno

Se u {\displaystyle \mathbf {u} } e v {\displaystyle \mathbf {v} } sono entrambi diversi da zero, la matrice del prodotto esterno u v T {\displaystyle \mathbf {u} \mathbf {v} ^{\operatorname {T} }} ha sempre rango 1. Infatti le colonne del prodotto esterno sono tutte proporzionali alla prima colonna, quindi sono tutte linearmente dipendenti da quella colonna e quindi la matrice è di rango 1.

Nei linguaggi di programmazione

In alcuni linguaggi di programmazione, data una funzione a due argomenti f (o un operatore binario), il prodotto esterno di f e due array unidimensionali A e B è un array bidimensionale C tale che C[i, j] = f(A[i], B[j]). Questo è rappresentato sintatticamente in vari modi: in APL, come operatore binario infisso ∘.f; in J, come l'avverbio postfisso f/; in R, come funzione outer(A, B, f) o lo speciale %o% ;[7] in Mathematica, come Outer[f, A, B]. In MATLAB, la funzione kron(A, B) viene utilizzato per questo prodotto. Questi spesso si generalizzano in argomenti multidimensionali e più di due argomenti.

Nella libreria Python NumPy, il prodotto esterno può essere calcolato con la funzione np.outer().[8] Al contrario, np.kron risulta in un flat array. Il prodotto esterno di array multidimensionali può essere calcolato utilizzando np.multiply.outer .

Note

  1. ^ In questo contesto, "prodotto esterno" è il calco dell'inglese outer product. Questo prodotto non va confuso con il prodotto wedge, chiamato anche "prodotto esterno" (in inglese exterior product).
  2. ^ R. G. Lerner e G. L. Trigg, Encyclopaedia of Physics, 2ndª ed., VHC, 1991, ISBN 0-89573-752-3.
  3. ^ S. Lipschutz e M. Lipson, Linear Algebra, collana Schaum’s Outlines, 4thª ed., McGraw-Hill, 2009, ISBN 978-0-07-154352-1.
  4. ^ a b inf.ed.ac.uk, http://www.inf.ed.ac.uk/teaching/courses/cfcs1/lectures/cfcs_l10.pdf Titolo mancante per url url (aiuto). URL consultato il September 6, 2020.
  5. ^ James M. Ortega (1987) Matrix Theory: A Second Course, page 7, Plenum Press ISBN 0-306-42433-9
  6. ^ Robert F. Stengel, Optimal Control and Estimation, New York, Dover Publications, 1994, p. 26, ISBN 0-486-68200-5.
  7. ^ rdocumentation.org, https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/outer Titolo mancante per url url (aiuto). URL consultato il 7 settembre 2020.
  8. ^ numpy.org, https://numpy.org/doc/stable/reference/generated/numpy.outer.html Titolo mancante per url url (aiuto). URL consultato il 7 settembre 2020.
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica