线性代数的本质

向量

向量可以看作是一个有方向的箭头,或者一个列表,其中用数字填充。但是实质上,我们关心的是向量的两种运算,分别是向量加法和向量数乘。可以说,向量加法和向量数乘贯穿线性代数始终。 \[ 向量加法:\overrightarrow{A} + \overrightarrow{B} \\ 向量数乘:\lambda\overrightarrow{A} \] 在坐标系中描述一个向量依赖于坐标系所选择的基向量,这样向量坐标则表示了我们如何根据这组基向量,通过缩放和相加(向量数乘和向量加法)来得到对应向量。

一组向量的所有可能的线性组合,被称为这组向量所张成的空间。张成的空间的实际含义是,如果给定一组基向量,仅通过向量数乘和向量加法进行计算,能够得到的向量的集合是什么。

如果一组向量是线性相关的,则说明其中至少存在一个向量对这组向量所能张成的空间(维度)是没有贡献的,即我们可以移除其中一个向量而不减少张成的空间。否则这组向量则是线性无关的。

一组向量线性无关的严格定义如下,下面的式子当前仅当 a = b = c = 0 的时候成立: \[ a\overrightarrow{v} + b\overrightarrow{w} + c\overrightarrow{u} = 0 \]

矩阵与线性变换

首先考虑线性变换。变换本质上是函数的另一种说法,它接收一个输入input,得到一个输出output。在线性代数的情况下,我们考虑的是接收一个向量,并且输出另一个向量的变换。

考虑向量是空间中的一个箭头,变换则将向量的位置从初始位置改变到后来的位置。而空间中充满了向量,变换则可以看作是操纵空间的一种手段。线性变换则是变换中的一种特殊情况,直观地说,线性变换在变换前后,原点保持固定,并且保持网格线平行且等距分布。

那么我们该如何用数值来描述一个线性变换呢,具体的来说,我们需要完成下面过程的数值描述: \[ \begin{bmatrix} x_{in}\\ y_{in} \end{bmatrix} \rightarrow ??? \rightarrow \begin{bmatrix} x_{out}\\ y_{out} \end{bmatrix} \] 实际上,我们只需要记录基向量变换后的位置,就可以描述其他所有向量的变换。一个向量 A 是基向量 {X...} 的一个线性组合,在发生线性变换之后,基向量变成了变换后的基向量 {X1...} ,而变换后的向量 A1 仍然是变换后基向量 {X1...} 的相同的线性组合。

我们记录了基向量变换后的位置,就能够通过对应的计算得到任意向量在经过相同变换后对应的位置。

这也就是说,一个线性变换可以通过一组数字来确定,这组数字就是基向量在变换之后的坐标。如果我们将这些坐标以列向量的形式纵向进行排列,则可以得到一个矩阵的形式。这样一个矩阵就可以用来描述一个线性变换。而对比函数的写法,我们将这个变换放在左边,将输入放在右边,得到的就是矩阵乘法。通过一次矩阵乘法,我们可以将输入的变换前向量的坐标转换为变换后向量的坐标。

总结来说,线性变换是操作空间的一种手段。它保持网格线平行且等距分布,并且保持原点不动。而这种变换只需要几个数字就能够描述清楚,这些数字就是变换后基向量的坐标,以这些坐标为列的矩阵为我们提供了一种描述线性变换的语言。而矩阵向量乘法就是计算线性变换作用于给定向量的一种途径。每当我们看到一个矩阵的时候,都可以将它解读为对空间的一种变换

而两个矩阵的乘积就可以看作是两个线性变换的相继作用。这里需要注意作用的发生顺序是从右往左的。如果在这个含义下理解矩阵乘积,那么很多性质都能够直接得到。

首先,矩阵乘法不满足交换律,即AB和BA是不同的。如果我们将矩阵看作是线性变换的作用,这是显而易见的,AB表示对空间先作用B变换再作用A变换,而BA表示对空间先作用A变换再作用B变换,二者并不相同。此外,矩阵乘法满足结合律,即 (AB)C = A(BC)。实际上这两者都是ABC,即对空间按照顺序进行C、B、A变换。

行列式

我们将矩阵看作是对空间进行线性变换,即压缩或者拉伸。一个很好的衡量方式是,测量变换究竟对空间有多少拉伸或者挤压,或者说测量空间被改变的比例,这就是行列式的意义。在二维空间中,则对应面积被改变了多少;在三维空间中,则对应体积被改变了多少。

如果行列式的值为负,则表示空间的定向被改变了。在二维空间中,感觉上就像是将平面翻转了。在三维空间中,则是从满足右手定则变为不满足。

如果行列式为0,则表示对应的线性变换将整个空间进行了降维,例如将二维的平面压缩为一条直线或者一个点。因此,只需要检测一个矩阵的行列式是否为0,就可以判断该矩阵代表的线性变换是否将空间压缩到一个更小的维度上。而如果行列式的值为0,也代表了这个矩阵的列必然线性相关。这是因为对应的变换进行了降维,对应的基向量中必然存在向量对维度没有贡献,则线性相关。

线性方程组

线性方程组的形式与矩阵乘法的形式非常类似,我们可以将线性方程组表示为矩阵乘法的形式。

如果考虑矩阵与线性变换的对应关系,我们实际上是在考虑这样一个问题:矩阵A表示一个线性变换,我们需要求解一个向量x,使得它在进行变换后与v重合。

矩阵A表示一个线性变换,那么就可能出现降维的情况,即按照A的行列式是否为0进行划分。

  • 如果A的行列式不为0,则有且只有一个x在变换之后能够与v重合
  • 如果A的行列式为0,则表示变换进行了降维,如果v在原来的维度空间中,那么就无解,而如果v恰好在降维后的空间中,则存在解

如果A的行列式不为0,我们可以通过逆变换来找到对应的x。这个逆变换也是一个变换,实际上就对应了A的逆矩阵。逆矩阵有如下的性质: \[ A^{-1}A = E \] 其中这个E表示单位矩阵。实际上它也可以对应一个线性变换,恒等变换。它表示什么也不做。考虑它的含义,我们首先进行A变换,然后进行A的逆变换,实际效果也等同于什么都不做。

一旦我们找到了A的逆,我们就可以用于求解上面的线性方程组。而如果A的行列式为0,则A不存在逆变换。因为一个变换是无法增加维度的

对于一个矩阵,对应一个线性变换,会有一个新的术语来描述,秩。秩代表了进行变换后空间的维度。如果进行变换后变成了一条直线,则秩为1;如果进行变换后变成了一个平面,则秩为2。一个矩阵对应的秩不能超过它本身代表的基向量的维度,即矩阵的列数。因为变换只能降维而不能升维。而如果矩阵代表的变换没有进行维度压缩,即行列式不为0,则我们称它是满秩的。

一个矩阵代表的变换形成的空间,我们称其为列空间。列空间的含义实际上就是以矩阵的所有列作为基向量,它能够张成的空间。矩阵的列告诉我们变换后基向量的位置,这些变换后的基向量张成的空间就是所有可能的变换结果。因此,更精确的秩的定义是列空间的维数

零向量一定会被包含在列空间中,因为线性变换必须保证原点位置不变。对于一个满秩变换来说,唯一能够在变换后落在原点上的就是原点本身。但是对一个非满秩的变换来说,它将空间压缩到一个更低的维度上,也就是说有一系列向量在变换后成为零向量。这些向量的集合被称为矩阵的零空间或者核。对线性方程组来说,零空间就是 Ax = 0的所有可能的解的集合,只有当A的行列式为0时,这个矩阵才有非零解。

上面的讨论的线性变换基本上都是方阵,而对于非方阵来说,我们同样可以将其看作一个线性变换。它的输入和输出处在不同的维度空间当中,完成的是跨维度的变换。如果一个非方阵是\(a\times b\)的,表示一个从b维空间到a维空间的线性变换。

例如输入是二维空间中的一条直线,而输出是三维空间中的一个面,则该变换对应的矩阵应该是一个 3 \(\times\) 2 的矩阵,它表示列空间有两个基向量,但是这两个基向量都存在于三维空间中。不过这个矩阵仍然是满秩的,因为列空间的维度与输入空间的维度相同,列空间是一个面,维度是2,输入空间是二维空间,维度也是2。

点积

两个向量之间的点积得到的是一个标量。点积(dot product)的标准计算方法如下,即对应位置上的值相乘再全部相加。 \[ \overrightarrow{a} \cdot \overrightarrow{b} = \sum_{i=1}^{n}a_ib_i = a_1b_1 + a_2b_2 + ...+a_nb_n \] 点积的几何解释则是一个向量向另一个向量上投影,然后计算投影和另一个向量长度的乘积: \[ \overrightarrow{a} \cdot \overrightarrow{b} = \left \| \overrightarrow{a} \right \| \times \left \| \overrightarrow{b} \right \| \times \cos{\theta} \] 我们首先考虑从多维空间到一维空间(数轴)的线性变换。在这里,直观地来说,线性变换需要满足:如果你有一系列等距分布于一条直线上的点,应用线性变换之后,这些点会等距分布于输出空间中,也就是数轴上。这类变换对应的矩阵会是一个1 \(\times\) n 的矩阵,n表示输入空间的维度,输入空间的每个基向量在进行变换后都对应数轴上的一个数。利用矩阵进行坐标转换计算(矩阵乘法),每个n维输入空间的向量都会对应到数轴上的一个数。

实际上,这类特殊的矩阵乘法就与点积类似。因此,一个n维向量和一个1 \(\times\) n 的矩阵就有了联系(躺下和立起)。在任何时候,如果看到了一个线性变换,它的输入空间是n维空间,输出空间是一维的空间,无论它是如何定义的,在n维空间中会存在一个向量v与之相关。在这个意义下,进行变换和与向量v做点积是相同的,变换的方法就是向v上投影。

这种对偶性可以描述为:

  • 一个向量的对偶是由它定义的线性变换
  • 一个从多维空间到一维空间的线性变换的对偶是多维空间中的某个特定向量

叉积

如果我们有两个向量v和w,那么它们的叉积得到的结果也是一个向量,这个向量的大小是v和w对应得到的平行四边形的面积,而方向满足右手定则,从前扫向后面,即如果是v \(\times\) w,则是从v方向扫向w的方向。

平行四边形的面积可以通过行列式来计算。在前面我们提到行列式表示一个变换对空间的改变程度。如果计算v \(\times\) w,我们可以将第一个向量作为矩阵的第一列,将第二个向量作为矩阵的第二列,然后计算行列式。行列式的符号表示定向发生改变,也能够对应到叉积的符号。

而如果是三维向量的叉积计算,也能够通过行列式来进行:

基变换

如果我们在一个坐标系中表示一个向量,我们可以得到对应的坐标,它表示我们如何通过基向量经过缩放和相加得到对应的向量。这组基向量实际上可以看作是封装于坐标系中的隐含假设。基向量的不同导致坐标的不同。在标准坐标系中,基向量是向量i和j,但是同样可以存在另一个坐标系,它的基向量是其他的向量。

在不同坐标系中进行转化,通常需要经过基变换的过程。我们可以通过线性变换来完成这一过程。假设现在有两个坐标系,一个是标准坐标系,另一个是新坐标系,它们的基向量并不相同。

新坐标系中的基向量可以在标准坐标系中进行表示,从而得到一个矩阵。它所代表的变换就能够将标准坐标系转换为新坐标系。

考虑一个相同的变换,它完成的几何含义是相同的,但是在不同坐标系中对应的矩阵表示一般不同。通常情况下我们习惯于使用标准坐标系,下面的过程完成的是我们如何借助标准坐标系来对新坐标系中的向量变化进行计算。即新坐标系中的向量\(v\),经过一个变换,得到新向量\(v^{'}\)

首先我们需要将新坐标系中的向量\(v\)转换为标准坐标系中的表示,这需要我们知道新坐标系中的基向量在标准坐标系中的表示,基向量构成的矩阵记为A。这样Av就是以标准坐标系的语言来描述向量\(v\)。之后在标准坐标系中描述变换M,得到在标准坐标系中经过变换后的向量为MA\(v\)。之后还需要将标准坐标系转换为新坐标系,因此需要实行A的逆变换,所以整个过程就是下面的式子: \[ A^{-1}MA\overrightarrow{v} = \overrightarrow{v^{'}} \] 总结来说,表达式\(A^{-1}MA\)暗示着一种数学上的转移作用。中间的矩阵M代表一种你所见的变换,而外侧的两个矩阵代表着转移作用,也就是视角上的转化。矩阵乘积仍然代表着同一个变换,只不过是从其他视角来看待的。

特征向量与特征值

考虑空间中的某个线性变换,它可以使用一个矩阵来表示。我们关注它对一个向量的作用,并考虑这个向量张成的空间,即一条直线。在变换的前后,大部分向量都会离开它所张成的空间。而某些特殊的向量在变换前后仍然处在它所张成的空间,意味着矩阵对它的作用仅仅是拉伸或者压缩而已,相当于一个标量。这类特殊的向量就是矩阵的特征向量,而拉伸或者压缩的比例则是对应的特征值

特征向量满足如下性质,其中的\(\lambda\)就是对应的特征值: \[ A\overrightarrow{v} = \lambda\ \overrightarrow{v} \] 我们可以通过将矩阵的列看作变换后的基向量来理解线性变换。但是理解线性变换的关键往往应该较少依赖于特定的坐标系,更好的方法是求出它的特征向量和特征值。

特征向量的计算可以从上面的性质出发: \[ \begin{aligned} A\overrightarrow{v} &= \lambda\ \overrightarrow{v} \\ (A - \lambda E) \overrightarrow{v} &= 0 \end{aligned} \] 这样我们需要求解这个新矩阵,使得它与向量\(v\)的乘积为0。如果向量\(v\)为零向量,这个等式恒成立,对我们来说并没有太大意义,我们需要的是一个非零解\(v\)。从前面秩的相关说明中我们可以知道,当且仅当这个新矩阵代表的变换将空间压缩到更低的维度时,才会存在一个非零向量使得上式成立。即对应新矩阵的行列式为0。当然根据计算结果,特征向量可能不存在,也可能存在多个。 \[ det(A - \lambda E) = 0 \] 如果对于一个变换M,我们能够找到对应的特征向量,并且这些特征向量能够构成一组基向量,那么我们就可以考虑下面的性质: \[ A^{-1}MA = B \] 其中A是特征向量在标准坐标系下的表示,B是一个对角矩阵,对角线上的元素分别为对应的特征值。前面我们说到,一个形如\(A^{-1}MA\)的变换实际上是一种转移作用,它表示在以特征向量为基向量的坐标系下观察变换M。这里的B也是在新坐标系下观察得到的结果。又考虑到特征向量的性质,这种变换只会拉伸或者收缩特征向量,因此得到的是一个对角矩阵。这组向量既是特征向量,也是基向量,我们称这组向量为特征基

抽象向量空间

函数是一种同样具有向量性质的东西。从某种意义上来看,函数实际上只是另一种向量。我们说在考虑向量的时候,我们的核心关注点在于向量的加法和数乘,而函数也能满足相应的性质: \[ (f + g)(x) = f(x) + g(x)\\ (\lambda f)(x) = \lambda f(x) \] 因此,之前我们以箭头或者是列表考虑的向量所得到的所有概念,应该都能够被推广到函数当中来。举例来说,函数的变换接收一个函数,输出一个新的函数,一个常见的例子就是导数。

线性的严格定义是抽象的,它需要满足可加性和成比例性,一种常见的描述方法是“线性变换保持向量加法运算和数乘运算”。普适意味着抽象,抽象带来了普适。因此我们完全可以将其应用到函数上。考虑导数的话,求导实际上也是一个线性运算。如果用矩阵来描述求导,考虑多项式,可以有如下的结果:

这里求导算子对应的矩阵实际上可以通过对基函数进行求导得来。我们依次对所有的基函数进行求导,得到的结果作为列向量,就构成了对应的矩阵。

乍一看,函数求导和矩阵运算毫无关联,但是实际上它们非常接近。实际上,我们前面提到的很多概念,在函数中都有直接的类比。

线性代数中的概念 应用于函数时的别名
线性变换 线性算子
点积 内积
特征向量 特征函数
... ...

如果我们重新考虑什么是向量,实际上,只要你处理的对象集具有合理的数乘和相加概念,都能够被看成向量,前面提到的相关概念应该都能适用。

在进行理论研究时我们的考虑通常是抽象的,但是抽象的理论应该具有普适性。而为了让这些抽象的理论能够应用到具体的某个对象上,则需要某种媒介,这里的媒介就是公理。在向量的角度来看,就是向量加法和数乘的规则:

  1. 向量加法满足结合律
  2. 向量加法满足交换律
  3. 向量加法的单位元存在
  4. 每个向量的加法逆元均存在
  5. 标量乘法与标量的域乘法相容
  6. 标量乘法的单位元存在
  7. 标量乘法对向量加法满足分配律
  8. 标量乘法对域加法满足分配律

在线性代数的现代理论中,如果要让所有已经建立好的理论和概念适用于一个向量空间,那么它必须满足八条公理。向量的形式本身并不重要,它可以是任何东西,只需要向量相加和数乘的概念遵守以上规则即可。

参考资料

  1. 【线性代数的本质】合集-转载于3Blue1Brown官方双语

线性代数的本质
http://example.com/2023/08/16/线性代数的本质/
作者
EverNorif
发布于
2023年8月16日
许可协议