在线性代数的世界里,向量和矩阵是两个最基础却又最强大的概念。它们不仅是数学工具,更是理解多维空间和复杂变换的钥匙。
向量可以看作是一组有序的数字,用来表示空间中的一个点或一个方向。根据数字的排列方式,向量分为两种:
行向量:数字横向排列,如 $$\begin{bmatrix} 1 & 2 & 3 \end{bmatrix}$$
列向量:数字纵向排列,如 $$\begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}$$
从数学本质上看,这两者表示的是同一个向量,只是书写形式不同。但在实际应用中,它们会影响到后续运算的规则和便利性。
在数学、物理和计算机科学等领域,列向量远比行向量常见。这并非偶然,主要基于以下几点:
第一,与矩阵乘法的自然配合。 矩阵乘法要求左侧矩阵的列数等于右侧矩阵的行数。当我们想用一个矩阵 $A$ 去变换一个向量 $\mathbf{v}$ 时,通常写成 $A\mathbf{v}$。如果 $\mathbf{v}$ 是列向量,乘法形式非常直观:矩阵在左,向量在右。如果 $\mathbf{v}$ 是行向量,就不得不写成 $\mathbf{v}^T A$ 或把矩阵转置,显得别扭。
第二,符合线性变换的书写习惯。 在线性代数中,我们习惯把线性变换写作 $\mathbf{y} = A\mathbf{x}$,其中 $\mathbf{x}$ 和 $\mathbf{y}$ 都是列向量。这种形式简洁清晰,所有主流教科书和软件(如 MATLAB)都采用这种约定。
第三,列向量更利于表示多维数据。 在数据科学中,一个包含 $n$ 个特征的数据样本通常写成一个列向量,每一行代表一个特征。当多个样本组成数据集时,按列堆叠形成矩阵,每一列是一个样本,这种结构便于批量处理。
正因为这些原因,本书后续内容中如无特别说明,所说的“向量”均指列向量。
矩阵是一组数字按照行和列排列成的矩形阵列。一个 $m \times n$ 的矩阵有 $m$ 行、$n$ 列,比如:
$$ A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} $$
矩阵可以看作是由多个列向量并排组成的,也可以看作是由多个行向量堆叠而成的。
矩阵最核心的作用是表示线性变换,也就是把一个空间中的向量映射到另一个空间。
想象二维平面上的所有点。如果我们用一个 $2 \times 2$ 的矩阵去乘每一个点的坐标向量,整个平面就会发生旋转、缩放、剪切、反射等变化。矩阵就是这个变换的“操作手册”。
更形式化地说,一个 $m \times n$ 矩阵定义了一个从 $\mathbb{R}^n$ 到 $\mathbb{R}^m$ 的映射:
$$ \mathbf{y} = A\mathbf{x} $$
其中 $\mathbf{x} \in \mathbb{R}^n$,$\mathbf{y} \in \mathbb{R}^m$。这里的 $A$ 就像一台机器,把 $n$ 维空间中的向量加工成 $m$ 维空间中的新向量。
当我们说一个矩阵表示线性变换时,实际上它记录了在给定基底下,每个基向量被映射到了哪里。矩阵的第一列就是原空间第一个基向量变换后的新坐标,第二列是第二个基向量的映射结果,以此类推。这一理解方式非常有助于直观把握矩阵的几何意义。
假设我们有一个二维平面,使用标准基:
现在考虑一个线性变换:把平面沿 $x$ 方向拉伸 2 倍,沿 $y$ 方向拉伸 3 倍。这个变换可以用矩阵 $A$ 表示:
$$ A = \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix} $$
按照“矩阵是基变换的记录”这个说法:
所以这个矩阵完整地“记录”了:原来的两个基向量分别被映射到了哪里。
再看任意一个向量,比如 $\mathbf{v} = (1, 1)$。它在标准基下是:
$$ \mathbf{v} = 1 \cdot \mathbf{e}_1 + 1 \cdot \mathbf{e}_2 $$
经过变换后,组合规则不变,还是“各取 1 倍”,但基向量换成了变换后的新位置:
$$ A\mathbf{v} = 1 \cdot (2, 0) + 1 \cdot (0, 3) = (2, 3) $$
结果 $(2, 3)$ 正好就是 $(1, 1)$ 被拉伸后的位置:$x$ 分量从 1 变成 2,$y$ 分量从 1 变成 3。
这就是“矩阵是基变换的记录”的含义:矩阵的每一列告诉你,对应的那个基向量被映射到了哪里;知道了所有基向量的去向,整个线性变换就完全确定了。
一个向量空间里有无穷多个向量,但我们不需要一个个去描述它们。只要选定一组“基本向量”,让空间里每一个向量都能由这组基本向量唯一地组合出来,这组基本向量就叫基底(也叫基)。
以二维平面为例,最常用的基底是:
$$ \mathbf{e}_1 = (1, 0), \quad \mathbf{e}_2 = (0, 1) $$
平面上任意一个向量,比如 $(3, 5)$,都能写成:
$$ (3, 5) = 3\mathbf{e}_1 + 5\mathbf{e}_2 $$
而且这种写法是唯一的。所以 ${\mathbf{e}_1, \mathbf{e}_2}$ 就是二维平面的一个基底,叫做标准基底。
“给定基底”就是说:我们在描述向量和线性变换时,先约定好用哪一组基向量作为参照标准。
这里要分清两件事:
举个例子。平面上有一个箭头,从原点指向右上方。在标准基底下,它的坐标是 $(3, 5)$,意思是“3 个 $\mathbf{e}_1$ 加 5 个 $\mathbf{e}_2$”。
但如果我们换一组基底,比如:
$$ \mathbf{b}_1 = (1, 1), \quad \mathbf{b}_2 = (-1, 1) $$
那么同一个箭头,用这组新基底来表示,坐标就变成了别的数字(这个例子里是 $(4, 1)$)。箭头没变,变的是“用哪组基去量它”。
矩阵是线性变换的记录,但记录的前提是先有参照系。矩阵的每一列写的是“某个基向量变换后到了哪里”,可如果不说清楚是哪组基向量,这个记录就没有意义。
同一个线性变换,在不同的基底下,写出来的矩阵是不同的。比如“沿 $x$ 方向拉伸 2 倍”这个变换:
所以“给定基底”就是在说:我们是在某一组约定的基向量下,来描述向量和变换的。 离开这组基,坐标和矩阵都无从谈起。
一句话总结: 基底是描述向量空间的一套“参照标尺”;“给定基底”就是先约定好用哪套标尺,然后在这个约定下写出向量的坐标和变换的矩阵。同一个东西,换一套标尺,坐标和矩阵都会变,但它本身没变。
在大多数入门教材和日常计算中,如果不特别说明,默认就是标准基底(也叫自然基底)。
在 $\mathbb{R}^n$ 中,标准基底是:
$$ \mathbf{e}_1 = (1, 0, \ldots, 0), \quad \mathbf{e}_2 = (0, 1, \ldots, 0), \quad \ldots, \quad \mathbf{e}_n = (0, 0, \ldots, 1) $$
比如二维平面里,默认就是:
$$ \mathbf{e}_1 = (1, 0), \quad \mathbf{e}_2 = (0, 1) $$
所以我们平时写一个向量 $(3, 5)$,不加说明时,指的就是“3 个 $\mathbf{e}_1$ 加 5 个 $\mathbf{e}_2$”。
但“默认标准基底”是有前提的。标准基底之所以叫“标准”,是因为它依赖于我们事先选好了一组坐标轴。严格来说,向量空间本身并不自带基底,标准基底也是人为选定的一组基,只不过它最自然、最常用。
所以更准确的说法是:在 $\mathbb{R}^n$ 中,如果没有特别说明,默认使用标准基底。
给定一个 $m \times n$ 的矩阵 $A$ 和一个 $n$ 维列向量 $\mathbf{x}$,它们的乘积 $A\mathbf{x}$ 是一个 $m$ 维列向量。计算方法如下:
将矩阵 $A$ 的每一行与向量 $\mathbf{x}$ 进行点积,结果作为新向量的对应分量:
$$ A\mathbf{x} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n \\ \vdots \\ a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n \end{bmatrix} $$
也可以用列向量的线性组合来理解:把矩阵 $A$ 的每一列当作一个向量,乘法的结果就是这些列向量分别乘以 $x_1, x_2, \ldots, x_n$ 后相加:
$$ A\mathbf{x} = x_1 \begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{bmatrix} + x_2 \begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{m2} \end{bmatrix} + \cdots + x_n \begin{bmatrix} a_{1n} \\ a_{2n} \\ \vdots \\ a_{mn} \end{bmatrix} $$
这两种视角在计算上是等价的,但后一种更清晰地揭示了矩阵乘法的几何本质。
接续上面“列向量线性组合”的思路,就能自然地理解这个作用。
矩阵 $A$ 的每一列,对应的是原空间基向量变换后在目标空间中的位置。向量 $\mathbf{x} = (x_1, x_2, \ldots, x_n)^T$ 本身表示“将各基向量分别缩放 $x_i$ 倍然后组合起来”。变换后,这个组合规则不变,但所使用的基向量已经变成了 $A$ 的各列。因此,$A\mathbf{x}$ 就是原向量在新基下的坐标表示,也就是被映射到了新空间。
举个直观例子: 考虑二维空间中的矩阵 $ A = \begin{bmatrix} 2 & 0 \\ 0 & 1 \end{bmatrix} $ 和一个向量 $\mathbf{x} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}$。 $A$ 的第一列 $(2, 0)^T$ 是原 $x$ 轴基向量被拉长到 2 倍的结果,第二列 $(0, 1)^T$ 保持不变。 $\mathbf{x}$ 原本表示 $x$ 轴基向量的 1 倍加上 $y$ 轴基向量的 1 倍。 经过 $A$ 变换后,变成了:$1 \cdot (2, 0)^T + 1 \cdot (0, 1)^T = (2, 1)^T$。 可见,向量在 $x$ 方向被拉伸了 2 倍,完成了空间的映射。
有些读者对这句话不太明白:变换后,这个组合规则不变,但所使用的基向量已经变成了 $A$ 的各列。在此,我特意给大家补充一下。这句话是理解矩阵乘法几何意义的关键。我来拆解一下。
一个向量 $\mathbf{x} = (x_1, x_2, \ldots, x_n)^T$ 在标准坐标系下,本质上是在说:
取第一个基向量 $\mathbf{e}_1$,缩放 $x_1$ 倍;取第二个基向量 $\mathbf{e}_2$,缩放 $x_2$ 倍;……然后把它们加起来。
也就是:
$$ \mathbf{x} = x_1 \mathbf{e}_1 + x_2 \mathbf{e}_2 + \cdots + x_n \mathbf{e}_n $$
这里的“组合规则”就是系数 $(x_1, x_2, \ldots, x_n)$——每个基向量用多少倍。
矩阵 $A$ 的每一列,可以看成是原来的标准基向量经过变换后落到的新位置:
$$ \mathbf{e}_1 \mapsto \begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{bmatrix}, \quad \mathbf{e}_2 \mapsto \begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{m2} \end{bmatrix}, \quad \ldots $$
原来向量 $\mathbf{x}$ 说:“用 $x_1$ 倍 $\mathbf{e}_1$,$x_2$ 倍 $\mathbf{e}_2$……组合起来。”
变换之后,系数没变(还是 $x_1, x_2, \ldots$),但被组合的对象换了——不再是 $\mathbf{e}_1, \mathbf{e}_2, \ldots$,而是 $A$ 的各列。
所以结果就是:
$$ A\mathbf{x} = x_1(\text{A 的第 1 列}) + x_2(\text{A 的第 2 列}) + \cdots + x_n(\text{A 的第 } n \text{ 列}) $$
设
$$ A = \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix}, \quad \mathbf{x} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} $$
结果 $A\mathbf{x} = (2,3)^T$,正好就是把 $(1,1)$ 按新基映射过去的位置。
“组合规则不变” = 系数 $x_i$ 还是那些系数; “基向量变成 $A$ 的各列” = 原来拿标准基去拼,现在拿变换后的基去拼。
所以 $A\mathbf{x}$ 就是:用同样的配方,把原料换掉之后做出来的新向量。这就是矩阵把向量映射到新空间的含义。
掌握了矩阵和向量的乘法后,自然会想:如果先用矩阵 $B$ 变换一个向量,再用矩阵 $A$ 变换结果,会怎样?这就引出了矩阵乘法,它本质上是线性变换的复合。
设 $B$ 是一个 $p \times n$ 的矩阵,$A$ 是一个 $m \times p$ 的矩阵。先施加 $B$ 的变换再施加 $A$ 的变换,最终效果相当于用一个矩阵 $C = AB$ 直接作用在向量上:
$$ A(B\mathbf{x}) = (AB)\mathbf{x} = C\mathbf{x} $$
矩阵乘法的计算规则是:$C$ 的第 $i$ 行第 $j$ 列元素等于 $A$ 的第 $i$ 行与 $B$ 的第 $j$ 列的点积。更几何化的理解是:$AB$ 的每一列,就是 $A$ 对 $B$ 的每一列分别进行变换后的结果。
这一性质非常强大,意味着无论多复杂的线性变换序列,都可以压缩成一个矩阵。例如,在计算机图形学中,物体的平移、旋转、缩放等操作可以各自用矩阵表示,将它们相乘得到一个综合变换矩阵,然后一次性对所有顶点进行变换,效率极高。
向量是我们描述空间位置和方向的工具,列向量因其与矩阵乘法的自然配合而成为主流选择。矩阵则是空间变换的载体,它通过每一列记录基向量的“去往何方”,从而定义了整个空间的映射规则。矩阵与向量的乘法,表面是数字的运算,实质是将向量从旧基底表示转换为新基底表示的过程。在这个意义上,每做一次矩阵乘法,我们都见证了一次空间的变形与重生。
评论专区
评论加载中...登录后即可发表评论