张量积的定义为:给定两个有限维的向量空间(finite dimensional vector space) 和 ,其中, 为向量空间 的基(basis), 为向量空间 的基,则我们可以将 定义为 个 的线性组合,即
.
同时,双线性映射(bilinear map,如果仅仅关注张量积的计算,则不必深究这个概念)被定义为
其中, ,对于任意取自向量空间 和 下的向量,我们都可以用相应的基进行线性组合来表示出来,若 为向量 线性组合的系数, 为向量 线性组合的系数,则满足 。另外, 表示两个向量空间的Cartesian积(维基链接:Cartesian product)。
为了便于理解,这里举一个简单的例子(来源:Calculate the tensor product of two vectors)。
已知 下的一组标准基为 , , 下的一组标准基为 , , 。给定向量 ,向量 ,则向量 的张量积为
其中, 是 的基,张量积与外积的计算结果完全相同。
-
import numpy as np
-
x = np.array([[1], [1]])
-
y = np.array([[1], [-2], [1]])
-
np.kron(x, y.T)
-
np.outer(x, y)
对于任意向量 , ,它们的张量积 有时被称为外积,如果 是 的基,且 , 是标准基,则外积可以写成如下形式:
其中, 是矩阵 第 行、第 列的元素。
对于向量而言,张量积和外积是等价的。