在前两章中,我们建立了向量和向量空间的概念。如果说向量是空间中的"居民",那么矩阵就是改变这个空间的"魔法"。今天我们要揭开矩阵的真面目:矩阵不是一堆数字排成的表格,而是一种对空间的变换方式。这个视角的转变,将彻底改变你对线性代数的理解。
从数字表格到空间变换:一次认知革命
打开任何一本传统的线性代数教材,矩阵通常是这样被介绍的:
$$
A =$$ "这是一个
这种介绍虽然正确,却像是只告诉你汽车有四个轮子和一个方向盘,却不告诉你汽车是用来代步的。你可能学会了矩阵乘法的计算规则,却完全不理解为什么要这样定义,为什么矩阵乘法不满足交换律,为什么
现在,让我告诉你矩阵的真正含义。
矩阵是一个函数
矩阵

你可以把矩阵想象成一台"向量加工机器":把原料向量放进去,出来的是加工后的向量。
生活类比:复印机的缩放功能
想象一台复印机,它有一个"缩放"旋钮。当你设置为 150%时,复印出来的文件比原件大 1.5 倍;设置为 50%时,复印件缩小一半。这个缩放功能就是一种"变换"——它把原图像变成新图像。
矩阵做的事情类似,只不过更加丰富:它不仅能缩放,还能旋转、剪切、反射,甚至把三维物体"压扁"成二维图像(投影)。
不是所有变换都叫"线性变换"
矩阵代表的不是任意变换,而是一类特殊的变换——线性变换。
一个变换
条件一:加法保持性 $$
T( + ) = T() + T() $$
条件二:数乘保持性 $$
T(c) = cT() $$
这两个条件可以合并成一个更简洁的形式: $$
T(a + b) = aT() + bT() $$
几何上的理解
线性变换有三个显著的几何特征:
- 原点不动:
。无论如何变换,原点永远在原点。 - 直线还是直线:变换前的直线,变换后仍然是直线(不会弯曲)。
- 平行线保持平行:两条平行线变换后仍然平行,间距可能变化但比例保持。

生活类比:拉伸橡皮膜
想象一块画着网格的橡皮膜钉在原点。你可以拉伸它、旋转它、倾斜它,但不能把它撕裂或折叠。这样的变换就是线性变换:网格线仍然是直的,平行的线仍然平行,原点仍然在原地。
反例:哪些不是线性变换?
- 平移:
。平移会移动原点,所以不是线性变换。 - 弯曲:把直线变成曲线的变换不是线性的。
- 投影到曲面:比如把平面投影到球面。
矩阵的列:基向量的"目的地"
现在来看最关键的洞察:矩阵的列告诉我们基向量去了哪里。
标准基向量的命运决定一切
在二维空间中,标准基向量是:
任何向量
现在,如果我们知道线性变换
利用线性变换的性质: $$
T() = T(x_1 + y_2) = xT(_1) + yT(_2) = x_1' + y_2' $$
太神奇了!只要知道基向量的去向,就能算出任意向量的去向!
矩阵的列就是变换后的基向量
假设:
那么变换
$$
矩阵的第一列是

实例计算
假设变换后: -
$$
现在计算
- 3
= = $$
这正是线性组合的体现:新向量 = 2 倍的(新
Q:为什么不是"行"而是"列"?
这是一个历史和约定的问题。之所以用列来存放变换后的基向量,是为了让矩阵乘向量的运算自然地表示为"线性组合"。如果向量写成列向量,那么
常见线性变换的矩阵表示
现在让我们来看几类最常见的线性变换,以及它们对应的矩阵。
旋转( Rotation)
问题:逆时针旋转
推导:追踪基向量的去向。
因此,旋转矩阵为: $$
R() =$$ 
特例:
- 旋转
: - 旋转
: - 旋转
(或 ): 生活案例:游戏角色转向
在 2D
游戏中,当玩家按下方向键让角色转身时,程序需要旋转角色的朝向向量。如果角色原本面向
$$
R(90 °)$$
角色现在面向上方。
缩放( Scaling)
问题:沿
推导: -
$$ 
特例:
- 均匀缩放
倍: - 沿
轴拉伸 2 倍: - 沿
轴压缩到一半: 生活案例:图片缩放
当你在图片编辑软件中调整图片大小时,软件实际上在对每个像素的坐标应用缩放变换。如果你把一张
剪切( Shear)
剪切变换是一种"倾斜"变换,它保持一个方向不变,但沿另一个方向"推"。
水平剪切(沿
这个变换保持
垂直剪切(沿
生活案例:斜体字
当文字处理软件把正体字变成斜体时,使用的就是剪切变换。字母的底部保持不动,顶部向右倾斜。如果斜体角度是
案例:风中的草
想象一片草地,草原本垂直向上生长。当风从右边吹来,草会向左倾斜,但根部(地面)不动。这就是剪切变换的效果:离地面越高的点,水平位移越大。
反射( Reflection)
关于
关于原点反射(相当于旋转
关于直线
这个矩阵交换

关于任意直线
通过推导(先旋转使直线与
生活案例:镜子中的自己
当你照镜子时,你看到的像是原物体关于镜面的反射。如果镜子是垂直的(沿
投影( Projection)
投影到
$$
这把所有向量"压扁"到
投影到
$$
**投影到直线$ y = x
$$
生活案例:影子
中午太阳在正上方时,你的影子就是你投影到地面(
变换矩阵总结表
| 变换类型 | 矩阵 | 效果 |
|---|---|---|
| 旋转 |
逆时针旋转 |
|
| 缩放 | 沿坐标轴缩放 | |
| 水平剪切 | 水平方向倾斜 | |
| 关于 |
上下翻转 | |
| 关于 |
左右翻转 | |
| 投影到 |
压扁到 |
矩阵乘法:变换的复合
连续变换的问题
假设我们要对一个向量
先应用
结论:先
为什么是 而不是 ?
这是因为我们把向量写成列向量,矩阵乘向量是从右边乘的。
记忆口诀:矩阵乘法,从右往左读。
矩阵乘法的几何意义
矩阵
也就是说:复合变换
实例:先旋转再缩放
设旋转
$$
沿
$$
先旋转再缩放(
$$
先缩放再旋转(
$$
几何解释:
- 先旋转再缩放:正方形先转
,变成菱形姿态,然后沿 轴拉伸。 - 先缩放再旋转:正方形先沿
轴拉伸成长方形,然后整个长方形转 。
最终形状不同!
矩阵乘法的结合律
虽然矩阵乘法不满足交换律,但它满足结合律:
几何解释:无论你怎么分组,最终执行的变换序列是一样的。
形式证明:
对于任意向量
由于这对所有
结合律的实用意义:
当你需要对大量向量(比如一百万个像素点)应用同一系列变换时,可以先把所有变换矩阵乘起来得到一个总矩阵,然后用这个总矩阵一次性变换所有向量。这比逐个应用变换快得多。
例如:在 3D 游戏中,一个物体可能需要: 1.
缩放(
与其对每个顶点分别应用三次变换,不如先算出
图像变换实战案例
让我们用 Python 来实际操作图像变换。
案例一:旋转一张图片
1 | import numpy as np |
关键点:在图像变换中,我们通常使用"逆向映射"——对于输出图像的每个像素,计算它在原图中对应的位置,然后取该位置的颜色。这避免了正向映射可能导致的空洞。
案例二:实时 2D 游戏变换
1 | import numpy as np |
案例三:图像剪切效果
1 | def shear_image(image, shear_x=0, shear_y=0): |
三维空间中的变换
以上讨论的都是二维变换,但同样的思想可以推广到三维(以及更高维)。
三维旋转矩阵
绕
$$
绕
$$
绕
$$
三维缩放矩阵
$$
S(s_x, s_y, s_z) =$$
投影到平面
正交投影到
$$
透视投影(用于 3D 图形渲染)更加复杂,涉及齐次坐标和非线性变换,这里不详细展开。
逆矩阵:撤销变换
什么是逆矩阵?
如果矩阵
A^{-1}A = AA^{-1} = I $$
其中
例子: - 旋转
什么时候矩阵有逆?
不是所有变换都能撤销。
例子:投影到
可逆的条件:
变换可逆
矩阵的逆的公式
对于
$$
其中
线性变换的核( Kernel)与像( Image)
核:被变换到原点的向量集合
变换
例子:投影到
像:所有输出向量的集合
变换
例子:投影到
秩-零化度定理
这告诉我们:如果一个变换"压扁"了一些维度(核不只有零向量),那么它的像的维度就会相应减少。
常见问题解答
Q1:平移是线性变换吗?
不是。平移
Q2:为什么矩阵乘法要这样定义?
矩阵乘法的定义正是为了让"矩阵的乘积"对应"变换的复合"。如果
Q3:旋转矩阵为什么这么特殊?
旋转矩阵保持长度和角度不变(是正交变换),而且行列式为
1(保持方向,不反射)。这类矩阵构成
Q4:实际应用中,变换是怎么组合的?
在游戏引擎或图形软件中,通常的顺序是:缩放 → 旋转 →
平移。这被称为"TRS"顺序( Transform = Translate × Rotate ×
Scale)。注意因为矩阵从右往左作用,所以在矩阵乘法中是先写
练习题
基础题
第 1 题:矩阵
第 2 题:写出关于
第 3 题:计算旋转矩阵
第 4 题:矩阵
第 5 题:证明恒等变换
进阶题
第 6 题:找一个
第 7 题:证明旋转矩阵
第 8 题:证明如果
第 9 题:设
第 10 题:证明:如果矩阵
第 11 题:设
证明题
第 12 题:证明矩阵乘法满足结合律
第 13 题:证明如果
第 14
题:证明两个线性变换的复合仍是线性变换。即,如果
第 15 题:证明旋转矩阵
编程题
第 16 题:用 Python 编写一个函数,输入一个
第 17 题:实现一个动画,展示向量
第 18 题:编写一个图像旋转函数,支持任意角度旋转,并使用双线性插值来避免锯齿。
第 19 题:实现一个简单的 2D 粒子系统,每个粒子有位置、速度、旋转角度、大小。使用矩阵变换来更新和渲染粒子。
第 20 题:实现一个交互式程序,让用户通过滑块调整旋转角度、缩放因子、剪切系数,实时显示一张图片的变换效果。
思考题
第 21 题:为什么计算机图形学中要使用
第 22 题:在机器学习中,神经网络的每一层都可以看作一个线性变换(矩阵乘法)加上一个非线性激活函数。为什么需要非线性激活函数?如果没有它,多层神经网络会怎样?
第 23 题:卫星图像通常需要经过几何校正才能使用。这个校正过程涉及到哪些类型的变换?为什么简单的线性变换可能不够?
本章总结
本章我们揭示了矩阵的真正面目:矩阵是线性变换的表示。
核心概念: 1. 矩阵
为什么这个视角重要: - 它解释了矩阵乘法规则的来源 - 它让我们能够"看到"矩阵做了什么 - 它是计算机图形学、物理学、机器学习等领域的基础
下一章预告:《行列式的秘密》——我们将看到行列式如何测量变换对面积/体积的影响,以及它为什么能判断矩阵是否可逆。
本文是《线性代数的本质与应用》系列的第 3 章。
- 本文标题:线性代数(三)矩阵作为线性变换
- 本文作者:Chen Kai
- 创建时间:2019-01-15 10:45:00
- 本文链接:https://www.chenk.top/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%EF%BC%88%E4%B8%89%EF%BC%89%E7%9F%A9%E9%98%B5%E4%BD%9C%E4%B8%BA%E7%BA%BF%E6%80%A7%E5%8F%98%E6%8D%A2/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!