向量空间(vector space)

在维基百科关于 向量空间 的介绍中,并未提及构成向量空间的「向量」的具体形态,即它未必是我们通常理解的3维或者 n 维的实数空间,只是提及对加法和数乘封闭。

这里引入一个新的向量空间,比如:all 3×3 matrices. 也即矩阵也是一种向量(将 Rn 的概念延伸至 Rn×n ),只不过需要要求矩阵满足加法和数乘(乘法和向量空间没有关系),显然满足,即两个 3×3 的矩阵相加仍然是 3×3 的矩阵,一个 3×3 的矩阵和一个数(scalar)相乘也仍旧是 3×3 的矩阵。此时,我们单独考察 3×3 的向量空间或称作矩阵空间对数乘封闭这一性质,进而可以得到一种升级版的线性组合(linear combination),此时因为轴(axis)的关系,对应的编程实现便不再是np.dot,而应是np.tensordot,关于numpy下的多维数组的轴的讨论,请参阅numpy中多维数组的轴(axis)。

>>> np.random.seed(123)
>>> X = np.random.randint(0, 6, [3, 2, 2])
>>> X
array([[[5, 2], [4, 2]],

       [[1, 3], [2, 3]],

       [[1, 1], [0, 1]]])

>>> np.tensordot(X, [1, 1, 1], axes=([0], [0]))
array([[7, 6], [6, 6]])
                        # 我们可将[1, 1, 1]替换为任一长度为3的数组
                        # 数学含义即为矩阵空间的线性组合
# 等价于
>>> np.sum(X, axis=0)
array([[7, 6], [6, 6]])

矩阵空间其相关的子空间的维数

这里顺便澄清一下维数的定义,

定义:线性空间 V 中线性无关向量所含向量的最大个数称为 V 的维数(dimension)。

我们考察如下的矩阵空间( 3×3 M )的一个子空间(subspace),如所有 3×3 的对角矩阵(diagonal matrices,仍然保持对加法和数乘的封闭),它的维数是多少?

并非3*3==9,而是3,极大线性无关组所含向量的个数嘛,比如如下的一组线性无关组:

1,0,0,0,0,0,000,1,0,0,0,3,0,000,0,0,0,0,0,0,007.

再比如对称矩阵的维数为6,上三角矩阵的维数也为6。

对不同的子空间取并( SU ) 还是取和( S+U

为什么我们对两个子空间的并集(union)不感兴趣,比如对称矩阵构成的子空间( S )与上三角矩阵构成的子空间( U ),而它们的交集构成对角矩阵( SU=D )。是因为此时 SU 构成的子空间不再是线性空间。

此时将 SU 约束为 S+U (direct sum,any element of S +(向量加法) any element of U =all 3*3 matrices)

这里又引申出另外一条重要的公式,维数公式:
定理(维数公式):如果 V1,V2 是数域 K 上的线性空间 V 的两个子空间,那么有如下的公式:

dimV1+dimV2=dim(V1+V2)+dim(V1V2)

也即 dim(V1+V2)=dimV1+dimV2dim(V1V2)

你可能感兴趣的:(向量空间(vector space))