最近学完了3Blue1Brown讲的《The essence of linear algebra》这个系列的视频,收获颇丰,特此记录下自己学到的知识。
视频链接为:The essence of linear algebra
十分建议各位朋友去学习。这门课程不涉及理论计算,只涉及对线性代数理论体系的理解,因此,本文也将不涉及计算,只用于帮助大家更好的理解线性代数之中的内容,概念与概念之间的关系是什么,为什么会引入这个概念,这个概念的含义是什么。下面正式进入内容。
向量
线性代数,包含两个信息,一个是线性,一个是代数。首先来看代数,在代数中,我们最常见的形式就是二维直角坐标系,在这里引入一个十分重要的概念——向量(Vector),这是代数的基础。关于向量我们并不陌生,指的是一条有向线段。而如果需要将一个向量转换为另一个向量,则需要进行向量的运算。其中,最为核心的两个运算为加法和数乘。这两个运算虽然简单,但确是线性代数运算的核心,其他运算都是建立在加法和数乘之上的。关于向量的加法运算和数乘运算,想必大家都知道如何进行,这里就不多做介绍了,但我希望大家建立起对加法和数乘的认识。
在二维直角坐标系中,一个向量可以表示为(x,y),其x为横坐标,y为纵坐标。考虑另一种表达方式,即$\vec{u}=x\vec{i}+y\vec{j}$,其中$\vec{i}$,$\vec{j}$为基向量(basis vector)。基向量是一个十分重要的概念,当有了基向量的概念之后,我们的关注点可以不用放在坐标系上,而是可以放在基向量上。一组基向量可以通过加法和数乘运算,得到其他向量,所有能得到的向量可以组成一个空间,例如前面的$\vec{i}$,$\vec{j}$就构成了我们常用的二维直角坐标系。
线性无关
基向量并不局限于二维平面直角坐标系中的$\vec{i}$,$\vec{j}$,而是有无数种情况。考虑二维情况,加入给定一组基向量$\begin{bmatrix} 0\\1 \end{bmatrix}$和$\begin{bmatrix} 1\\2 \end{bmatrix}$,我们很容易可以想到,这组基向量也可以表示二维空间中的所有向量。而如果给定的基向量为$\begin{bmatrix} 0\\1 \end{bmatrix}$和$\begin{bmatrix} 0\\2 \end{bmatrix}$,那么可以发现这两个向量在同一条直线上,当我们对他们进行加法和数乘运算后,得到的向量依旧位于这条直线上,即这组基向量组成的空间为这条直线,即一维空间。观察这组基向量,可以发现其中一个基向量可以通过另外一个基向量的数乘运算来表示。这里给出线性相关的概念,当一个向量可以用其他向量的加法和数乘运算来表示,则称这个向量与其他向量线性相关(linearly dependent)。如果不能,则称为线性无关(linearly independent)。这时,可以得出,当基向量线性无关时,组成的空间维度与基向量的个数相同。
线性变换
一组基向量构成一个空间,那么如何从一个空间变换到另一个基向量组成的空间呢?这就是线性代数中最核心的概念之一——线性变换(linear transformation)。首先我们需要知道何谓线性。线性中核心运算为加法和数乘,线性变换中的线性其实就是指这个变换过程只涉及加法和数乘运算。可以总结为两个条件:
- 线性
- 原点位置保持不变
第二个也很好理解,原点位置发生改变,则说明在运算的过程中,加上了一个常数,而这个常数并不是由向量加法和数乘运算得到的,因此,不是线性变换。线性变换一个很直观的表现就是,假设原空间中,有一组等间距的点,这些点位于同一条直线上,那么经过线性变换后,这些点将仍旧等间距的排列在同一直线上。
那么应该如何用数学语言来描述线性变换呢?
矩阵
考虑下面这种情况,基向量从我们熟悉的基向量$\vec{i}$,$\vec{j}$变为$\begin{bmatrix} 0\\1 \end{bmatrix}$和$\begin{bmatrix} 1\\2 \end{bmatrix}$,假如原空间有一个向量$\begin{bmatrix} -1\\1 \end{bmatrix}$,在经过变换后,这个向量就需要乘以新的基向量,即:
$$
-1*\vec{i_{new}}+1*\vec{j_{new}}=-1*\begin{bmatrix} 0\\1 \end{bmatrix}+1*\begin{bmatrix} 1\\2 \end{bmatrix}=\begin{bmatrix} 1\\1 \end{bmatrix}
$$

对任意一个向量,就可以得到:
$$
x*\vec{i_{new}}+y*\vec{j_{new}}=x*\begin{bmatrix} 0\\1 \end{bmatrix}+y*\begin{bmatrix} 1\\2 \end{bmatrix}=\begin{bmatrix} 0x+1y\\1x+2y \end{bmatrix}
$$
此时,我们可以写成一个2*2的矩阵来描述这个过程,即:
$$
\begin{bmatrix} 0&1\\1&2 \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=\begin{bmatrix} 0x+1y\\1x+2y \end{bmatrix}
$$
其中这个矩阵的第一列为经过变换后,$\vec{i}$变换后的位置,第二列为$\vec{j}$变换后的位置。这样,我们就用一个矩阵来描述了一个线性变换,而这也是矩阵的含义。更准确的描述是,矩阵存储着描述线性变换的信息。换个角度说,矩阵表示了对空间的一种操控,将一个空间变换为了另一个空间。
再看上面那个式子,总共有三项,第一项为矩阵,存储着线性变换的信息,第二项为变换前的向量,等式右边为变换后的向量。这个形式是不是很熟悉,没错,就是我们常见的函数。函数的表达式可以写成$f(x)=b$,而其中的$f$表示将x映射为b的规则,映射也是一种变换,那么可以说$f$存储着这种变换的信息,与矩阵几乎一样,这个形式的顺序也是一样的。在这个系列的最后,你将会对这个有着更深入的理解。这个顺序其实也符合我们描述的顺序,即将一个变换作用于一个向量,得到一个新的向量。
矩阵乘法
函数里面有复合函数,将多次映射,那么线性变换里面肯定也可以进行多次的线性变换。线性变换的信息存储在矩阵里,因此,多次的线性变换其实就是将多个矩阵作用在向量上。我们知道,函数的作用顺序是从内向外,类比过来,矩阵的作用顺序就是从右向左。比如说:
$$
\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}
\left ( \begin{bmatrix}0 & 1\\1 & 2 \end{bmatrix}
\begin{bmatrix} x_{in}\\y_{in} \end{bmatrix} \right)
=\begin{bmatrix}
x_{out}\\
y_{out} \end{bmatrix}
$$
上式就描述了先进行$\begin{bmatrix}0 & 1\\1 & 2 \end{bmatrix}$,再进行$\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}$。将括号去掉,向量前的部分就是两个矩阵的乘法,这就是矩阵乘法的含义。矩阵乘法就是表示进行多次线性变换,是多个线性变换的组合。
在这里,我们看一个学矩阵乘法时的一个性质,那就是结合律,即$(AB)C=A(BC)$。在学习的时候,证明结合律的过程是十分繁琐的,而如果我们使用上面学到的矩阵的含义来看待这个问题,会发现这是一个十分显而易见的结论。对于$(AB)C$,按照从右往左的顺序,是先对空间进行C变换,然后进行B变换,然后A变换,同样的,对于$A(BC)$,也是这样的作用顺序,因此,结合律是显而易见的。是不是觉得过于简单了呢,实际上就是这么的简单。
2022.11.22更新
当明白矩阵的含义后,就会发现许多问题变得十分的直观。比如说如果想知道一个向量旋转$\alpha$后,落到了什么位置。旋转操作也是一种线性变换,根据几何知识,我们可以很容易的写出其基向量旋转后的位置,即$\begin{bmatrix} cos\alpha \\ sin\alpha \end{bmatrix}$,$\begin{bmatrix} -sin\alpha \\ cos\alpha \end{bmatrix}$,从而得到矩阵:$M=\begin{bmatrix} cos\alpha & -sin\alpha \\ sin\alpha & cos\alpha \end{bmatrix}$。然后对于任意一个向量$\vec{v}$,就可以得到变换后的向量:$M\vec{v}$。
一定要理解矩阵和线性变换的含义呀!
好的呀雨老师,会好好理解含义本质的!