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
[modifica | modifica wikitesto]Dati due vettori di dimensioni e rispettivamente
il loro prodotto esterno, denotato è definito come una matrice con forma e il prodotto esterno è ottenuto moltiplicando ogni elemento di con ogni elemento di :[2]
Alternativamente nella notazione con indici:
Sia il prodotto scalare, allora per ogni vettore di dimensioni si ha
e per ogni vettore di dimensioni si ha
Se e sono vettori con stesse dimensioni, allora
Il prodotto esterno è equivalente a una moltiplicazione matriciale purché è rappresentato come a vettore colonna e come un vettore colonna (che rende un vettore riga).[3][4] Ad esempio, se e allora[5]
Per vettori a elementi complessi, è spesso utile prendere la trasposta coniugata di indicato o :
Confronto con il prodotto scalare euclideo
[modifica | modifica wikitesto]Se allora si può prendere il prodotto matriciale ottenendo uno scalare (o matrice ). 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 per una matrice può essere scritta in termini di prodotto scalare, usando la relazione .
Prodotto esterno di tensori
[modifica | modifica wikitesto]Dati due tensori con dimensioni e , il loro prodotto esterno è un tensore con dimensioni ed elementi
Ad esempio, se ha dimensioni e ha dimensioni il loro prodotto esterno ha dimensioni Se ha una componente e ha una componente allora la componente di formato dal prodotto esterno è
Collegamento con il prodotto Kronecker
[modifica | modifica wikitesto]Il prodotto esterno e il prodotto di Kronecker sono strettamente correlati; infatti lo stesso simbolo è comunemente usato per denotare entrambe le operazioni.
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 e , possiamo scrivere:
Notare che l'ordine dei vettori è invertito nella parte destra dell'uguaglianza.
Un'altra identità simile che evidenzia ulteriormente la somiglianza tra le operazioni è
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à
[modifica | modifica wikitesto]Il prodotto esterno dei vettori soddisfa le seguenti proprietà:
Rango di un prodotto esterno
[modifica | modifica wikitesto]Se e sono entrambi diversi da zero, la matrice del prodotto esterno 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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- ^ 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).
- ^ R. G. Lerner e G. L. Trigg, Encyclopaedia of Physics, 2ndª ed., VHC, 1991, ISBN 0-89573-752-3.
- ^ S. Lipschutz e M. Lipson, Linear Algebra, collana Schaum’s Outlines, 4thª ed., McGraw-Hill, 2009, ISBN 978-0-07-154352-1.
- ^ a b inf.ed.ac.uk, http://www.inf.ed.ac.uk/teaching/courses/cfcs1/lectures/cfcs_l10.pdf . URL consultato il September 6, 2020.
- ^ James M. Ortega (1987) Matrix Theory: A Second Course, page 7, Plenum Press ISBN 0-306-42433-9
- ^ Robert F. Stengel, Optimal Control and Estimation, New York, Dover Publications, 1994, p. 26, ISBN 0-486-68200-5.
- ^ rdocumentation.org, https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/outer . URL consultato il 7 settembre 2020.
- ^ numpy.org, https://numpy.org/doc/stable/reference/generated/numpy.outer.html . URL consultato il 7 settembre 2020.