Tensor product
From Wikipedia, the free encyclopedia
In mathematics, the tensor product, denoted by , may be applied in different contexts to vectors, matrices, tensors, vector spaces, algebras, topological vector spaces, and modules. In each case the significance of the symbol is the same: the most general bilinear operation.
A representative case is the Kronecker product of any two rectangular arrays, considered as matrices.
Example:
Resultant rank = 2, resultant dimension = 4×3 = 12.
Here rank denotes the number of requisite indices, while dimension counts the number of degrees of freedom in the resulting array.
A dyadic product is the special case of the tensor product between two vectors of the same dimension.
[edit] Tensor product of two tensors
There is a general formula for the product of two (or more) tensors, as
- .
We are assuming here orthogonal tensors, with no distinction of covariant and contravariant indices, for simplicity.
What does the general formula mean? It means that if a pair of tensors are juxtaposed (placed side-by-side) then they combine by mere aggregation to form a new tensor which can be subsequently called the tensor product of the pair of juxtaposed tensors. The number of independent components multiplies
The parameters introduced above work out like this:
[edit] Example
Let U be a tensor of type (1,1) with components Uαβ, and let V be a tensor of type (1,0) with components Vγ. Then
and
- .
The tensor product inherits all the indices of its factors.
See also: Classical treatment of tensors
[edit] Kronecker product of two matrices
Main article: Kronecker product.
With matrices this operation is usually called the Kronecker product, a term used to make clear that the result has a particular block structure imposed upon it, in which each element of the first matrix is replaced by the second matrix, scaled by that element. For matrices U and V this is:
- .
[edit] Tensor product of multilinear maps
Given multilinear maps f(x1,...xk) and g(x1,...xm) their tensor product is the multilinear function
[edit] Tensor product of vector spaces
The tensor product of two vector spaces V and W over a field K has a formal definition by the method of generators and relations. The equivalence class under these relations (given below) of (v,w) is called a tensor and is denoted by . By construction, one can prove several identities between tensors and form an algebra of tensors.
To construct , take a vector space over K with basis and apply (factor out the subspace generated by) the following multilinear relations:
where v,vi,w,wi are vectors from the appropriate spaces, and c is from the underlying field K.
We can then derive the identity
- ,
the zero in .
The resulting tensor product is itself a vector space, which can be verified by directly checking the vector space axioms. Given bases {vi} and {wi} for V and W respectively, the tensors of the form forms a basis for . The dimension of the tensor product therefore is the product of dimensions of the original spaces; for instance will have dimension mn.
[edit] Universal property of tensor product
The tensor product may be understood as a universal property. The space of all bilinear maps from to a field K is naturally isomorphic to the space of all linear maps from to K. This is built into the construction; has all and only the relations that are necessary to ensure that a homomorphism from to K will be linear.
More precisely, given vector spaces V and W over a field K, and elements and , one considers algebraic sums over ordered pairs
∑ | ai(vi,wi) |
i |
for which only a finite number of the scalars are non-zero. (The restriction to finite sums is important, especially in the case of V and W being infinite-dimensional topological vector spaces.) Such sums belong to the vector space whose basis vectors are the ordered pairs belonging to the cartesian product . Let be the subspace consisting of all of the vectors that may be written as
- (v1 + v2,w) − (v1,w) − (v2,w)
or
- (v,w1 + w2) − (v,w1) − (v,w2)
or
- (av,w) − a(v,w)
or
- (v,aw) − a(v,w)
for a scalar . The tensor product space is then defined as the quotient space
The linearity of tensors in then follows directly from the definition of the quotient space. The uniqueness of the quotient is what gives the tensor product its universal property.
[edit] Tensor product of Hilbert spaces
- Further information: Positive definite kernel#Direct sum and tensor product
The tensor product of two Hilbert spaces is another Hilbert space, which is defined as described below.
[edit] Definition
Let H1 and H2 be two Hilbert spaces with inner products and , respectively. Construct the tensor product of H1 and H2 as vector spaces as explained above. We can turn this vector space tensor product into an inner product space by defining
and extending by linearity. Finally, take the completion under this inner product. The result is the tensor product of H1 and H2 as Hilbert spaces.
[edit] Properties
If H1 and H2 have orthonormal bases {φk} and {ψl}, respectively, then {φk ⊗ ψl} is an orthonormal basis for H1 ⊗ H2.
[edit] Examples and applications
The following examples show how tensor products arise naturally.
Given two measure spaces X and Y, with measures μ and ν respectively, one may look at L2(X × Y), the space of functions on X × Y that are square integrable with respect to the product measure μ × ν. If f is a square integrable function on X, and g is a square integrable function on Y, then we can define a function h on X × Y by h(x,y) = f(x) g(y). The definition of the product measure ensures that all functions of this form are square integrable, so this defines a bilinear mapping L2(X) × L2(Y) → L2(X × Y). Linear combinations of functions of the form f(x) g(y) are also in L2(X × Y). It turns out that the set of linear combinations is in fact dense in L2(X × Y), if L2(X) and L2(Y) are separable. This shows that L2(X) ⊗ L2(Y) is isomorphic to L2(X × Y), and it also explains why we need to take the completion in the construction of the Hilbert space tensor product.
Similarly, we can show that L2(X; H), denoting the space of square integrable functions X → H, is isomorphic to L2(X) ⊗ H if this space is separable. The isomorphism maps f(x) ⊗ φ ∈ L2(X) ⊗ H to f(x)φ ∈ L2(X; H). We can combine this with the previous example and conclude that L2(X) ⊗ L2(Y) and L2(X × Y) are both isomorphic to L2(X; L2(Y)).
Tensor products of Hilbert spaces arise often in quantum mechanics. If some particle is described by the Hilbert space H1, and another particle is described by H2, then the system consisting of both particles is described by the tensor product of H1 and H2. For example, the state space of a quantum harmonic oscillator is L2(R), so the state space of two oscillators is L2(R) ⊗ L2(R), which is isomorphic to L2(R2). Therefore, the two-particle system is described by wave functions of the form φ(x1, x2). A more intricate example is provided by the Fock spaces, which describe a variable number of particles.
[edit] Relation with the dual space
Note that the space (the dual space of , containing all linear functionals on that space) corresponds naturally to the space of all bilinear functionals on . In other words, every bilinear functional is a functional on the tensor product, and vice versa.
Whenever V and W are finite dimensional, there is a natural isomorphism between and , whereas for vector spaces of arbitrary dimension we only have an inclusion . So, the tensors of the linear functionals are bilinear functionals. This gives us a new way to look at the space of bilinear functionals, as a tensor product itself.
[edit] Types of tensors, e.g., alternating
Linear subspaces of the bilinear operators (or in general, multilinear operators) determine natural quotient spaces of the tensor space, which are frequently useful. See wedge product for the first major example. Another would be the treatment of algebraic forms as symmetric tensors.
[edit] Over more general rings
See tensor product of modules over a ring
[edit] Tensor product for computer programmers
[edit] Array programming languages
Array programming languages may have this pattern built in. For example, in APL the tensor product is expressed as (for example or ). In J the tensor product is the dyadic form of */ (for example a */ b or a */ b */ c).
Note that J's treatment also allows the representation of some tensor fields (as a and b may be functions instead of constants -- the result is then a derived function, and if a and b are differentiable, then a*/b is differentiable).
However, these kinds of notation are not universally present in array languages. Other array languages may require explicit treatment of indices (for example, Matlab), and/or may not support higher-order functions such as the Jacobian derivative (for example, Fortran/APL).