线性变换与矩阵
矩阵不只是一个数表。放在线性代数里,它更像一个函数:输入一个向量,输出另一个向量。前面几章我们常写 Ax=b,这里把目光从“求哪个 x 会变成 b”转到“矩阵 A 会把整个空间怎样移动、拉伸、压扁或翻转”。
![信息图展示矩阵 A 像函数一样工作:输入向量 x=[2,1]^T 经过矩阵 A 变换机器后,输出向量 Ax=[1,3]^T,并配有二维箭头和坐标网格。](https://media.edu-free.com/uploads/matrix_as_function_linear_transformation_a8a9fa49a8.png)
矩阵可以看作一种函数,把输入向量变换为新的输出向量。
本章的核心问题很朴素:给一个变换 T,怎样判断它能不能由矩阵表示?如果可以,矩阵从哪里来?等这两件事清楚以后,旋转、缩放、剪切、投影、反射和复合都会变成同一套语言。
这一章默认讨论从 Rn 到 Rm 的变换。输入向量有 n 个坐标,输出向量有 m 个坐标,对应的矩阵就有 m 行 n 列。
把矩阵看成函数
一个普通函数可以把数送到数,例如 f(t)=2t+1。矩阵也可以定义函数,只是它的输入和输出是向量。给定矩阵
A=[21−13]
我们可以定义
T(x)=Ax
如果
x=[x1x2]
那么
T(x)=[2x1−x2x1+3x2]
这就是一个从平面到平面的函数。每个输入点或箭头都会被送到一个新位置。不同的是,矩阵函数有很强的结构:它会保留向量加法和数乘。
线性的两个条件
变换 T 是线性的,意思是它对加法和数乘都诚实:
T(u+v)=T(u)+T(v)
T(cu)=cT(u)
第一条说“先合成再变换”和“先分别变换再合成”得到同一个结果。第二条说“先把向量拉长 c 倍再变换”和“先变换再拉长 c 倍”得到同一个结果。
这两个条件合在一起,也可以写成一个更常用的版本:
T(cu+dv)=cT(u)+dT(v)
它说明线性变换会保留线性组合。前面几章反复出现的“列向量线性组合”,在这里变成了“变换可以穿过线性组合”。
线性变换一定把零向量送到零向量。因为 T(0)=T(0+0)=T(0)+T(0),两边减去 T(0) 得到 T(0)=0。所以平移不是线性变换;它会把原点移走。
例题:判断一个变换是否线性
判断下面两个变换是否线性:
T(x,y)=(2x−y, x+3y)
S(x,y)=(x+1, y)
先看 T。它的每个输出坐标都是输入坐标 x,y 的一次齐次组合,没有常数项,也没有 x2、xy、sinx 这类非线性成分。
T(x,y)=[21−13][xy]因此 T 是线性变换。
再看 S。它会把零向量送到 (1,0):
S(0,0)=(1,0)线性变换必须把零向量送到零向量,所以 S 不是线性变换。
从几何上看,S 是向右平移一个单位。平移会保持图形形状,但它不保持原点,因此不能只用普通矩阵乘法表示。
标准矩阵从基向量来
线性变换最省力的地方在于:只要知道它怎样处理一组基向量,就知道它怎样处理所有向量。
在 R2 中,标准基向量是
e1=[10],e2=[01]
任意向量都可以写成
x=[x1x2]=x1e1+x2e2
如果 T 是线性的,那么
T(x)=T(x1e1+x2e2)=x1T(e1)+x2T(e2)
这句话非常关键:T(e1) 和 T(e2) 就是输出空间里的两根新方向,x1 和 x2 只是沿这两根方向取线性组合。

标准矩阵的第一列是 T(e1),第二列是 T(e2)。
列就是基向量的去向
假设
T(e1)=[ac],T(e2)=[bd]
那么 T 的标准矩阵是
A=[acbd]
注意列的顺序:第一列放 T(e1),第二列放 T(e2)。于是
Ax=[acbd][x1x2]=x1[ac]+x2[bd]
这正是
x1T(e1)+x2T(e2)
例题:从基向量去向写矩阵
一个线性变换 T:R2→R2 满足
T(e1)=[31],T(e2)=[−24]
求 T 的标准矩阵,并计算 T(5,−1)。
先把 T(e1) 放进第一列,把 T(e2) 放进第二列:
A=[31−24]把输入向量写成列向量并相乘:
T(5,−1)=[31−24][5−1]计算两个输出坐标:
[3⋅5+(−2)(−1)1⋅5+4(−1)]=[171]所以 T(5,−1)=(17,1)。
从公式写标准矩阵
如果题目直接给出
T(x,y)=(x+2y, 3x−y)
也可以通过基向量求矩阵:
T(e1)=T(1,0)=(1,3)
T(e2)=T(0,1)=(2,−1)
所以
A=[132−1]
很多初学者会把输出的两个表达式当作两列,写成
[123−1]
这其实把行和列混了。检查方法很简单:第一列必须等于把 (1,0) 代入后的输出。
常见几何变换
二维线性变换可以用网格来理解。想象整个平面印在一张橡皮膜上,线性变换会把原点固定住,把直线变成直线,把平行线仍变成平行线。它可以旋转、拉伸、压缩、剪切、压扁到一条线,也可以翻到另一侧。

旋转与缩放都会保持原点不动,并把直线变换为直线。
旋转
绕原点逆时针旋转角度 θ 的矩阵是
Rθ=[cosθsinθ−sinθcosθ]
这个矩阵可以从基向量的去向看出来。e1=(1,0) 旋转后落到单位圆上的
(cosθ, sinθ)
e2=(0,1) 旋转后落到
(−sinθ, cosθ)
把这两个向量作为列,就得到旋转矩阵。
当 θ=90∘ 时,
R90∘=[01−10]
它把 (x,y) 变成
(−y,x)
缩放
沿坐标轴缩放的矩阵最直接:
D=[sx00sy]
它把
(x,y)
变成
(sxx, syy)
如果 sx=2、sy=21,图形会在水平方向拉长,在竖直方向压扁。若 sx 或 sy 为负,对应方向还会发生翻转。
剪切
剪切像是把一叠纸的上边向右推。水平剪切常写成
Hk=[10k1]
于是
Hk[xy]=[x+kyy]
点的高度 y 不变,但 x 坐标会按高度多移动 ky。高度越高,水平移动越多。

水平剪切矩阵 [10k1] 将单位正方形剪切为平行四边形,高度不变,面积可能保持不变。
投影
投影会丢掉某个方向的信息。投影到 x 轴的矩阵是
Px=[1000]
它把
(x,y)
变成
(x,0)
所有竖直方向的信息都被压成 0。这个变换是线性的,但它不可逆,因为很多不同的点会落到同一个点。例如 (2,1) 和 (2,−3) 都会变成 (2,0)。
反射
关于 x 轴反射的矩阵是
Fx=[100−1]
它把
(x,y)
变成
(x,−y)
关于直线 y=x 反射时,两个坐标互换:
Fy=x=[0110]
因为
Fy=x(x,y)=(y,x)

投影会丢掉垂直分量,反射则保留到直线的距离并翻到另一侧。
遇到二维几何变换时,先问 e1 去了哪里、e2 去了哪里。把两个答案按列排好,矩阵通常就出来了。背矩阵不如会重建矩阵。
线性变换的形状特征
线性变换不一定保持长度、角度或面积。旋转会保持长度和角度,剪切会改变角度,缩放会改变长度,投影甚至会把整个平面压到一条线上。但线性变换都有几条共同特征。
原点保持不动
如果 T 是线性的,那么
T(0)=0
这让线性变换和仿射变换区分开来。仿射变换可以写成
x↦Ax+b
当 b=0 时,它包含平移,不再是线性变换。
直线和网格的变化
过原点的直线在变换后仍会落在过原点的直线上,除非被压成零向量。平行网格线仍会保持平行。这是因为直线上的点可以写成
tv
线性变换后变成
T(tv)=tT(v)
它仍然沿着一个固定方向移动。
零空间描述被压扁的方向
若某个非零向量 v 满足
Av=0
那么 v 所在的方向被矩阵压成零。前一章的零空间在这里有了几何解释:它是所有被变换压到原点的输入方向。
例如投影到 x 轴的矩阵
Px=[1000]
满足
Px[01]=[00]
所以竖直方向属于它的零空间。
变换复合就是矩阵乘法
如果先做变换 A,再做变换 B,输入 x 会经历
x⟼Ax⟼B(Ax)
也就是
B(Ax)=(BA)x
所以复合变换的矩阵是 BA。右边的矩阵先作用,左边的矩阵后作用。

顺序改变,结果可能改变:矩阵乘积 BAx 与 ABx 通常表示不同的变换复合。
顺序通常不能交换
设
A=[01−10]
表示逆时针旋转 90∘,设
B=[1011]
表示水平剪切。
先旋转再剪切,对应矩阵是
BA=[1011][01−10]=[11−10]
先剪切再旋转,对应矩阵是
AB=[01−10][1011]=[01−11]
两个结果不同,因此这两个变换的顺序不能交换。
写复合矩阵时,最常见的错误是把顺序写反。“先 A 后 B”对应 BA,不是 AB。可以用一个测试向量检查:让 x 先乘右边的矩阵,再乘左边的矩阵。
例题:计算复合变换
给定
A=[2001],B=[1011]
A 表示水平方向放大 2 倍,B 表示水平剪切。求“先缩放,再剪切”的矩阵,并计算输入 (1,3) 的输出。
先确定顺序。“先缩放,再剪切”意味着 x 先乘 A,再乘 B,所以复合矩阵是 BA。
计算矩阵乘法:
BA=[1011][2001]=[2011]再作用到输入向量:
[2011][13]=[53]输出是 (5,3)。
真实场景中的变换语言
线性变换的价值不在于图形好看,而在于它把“同时改变多个坐标”的问题压成了矩阵运算。
图像和图形
二维图形里的旋转、缩放、剪切、反射都可以由矩阵控制。一个图标、图片上的一块区域或三维模型的顶点,本质上都是许多坐标点。对所有点施加同一个矩阵,图形就整体变换。
平移需要额外处理,因为普通线性矩阵会固定原点。在计算机图形中,常把二维点扩展成三维齐次坐标,用更大的矩阵同时处理旋转、缩放和平移。这个技巧会在线性代数后续课程或图形学课程中继续出现。
机器人和坐标系
机器人手臂要知道“相机坐标”“关节坐标”“工具坐标”之间怎样转换。旋转矩阵负责改变方向,复合矩阵负责把多个关节的动作串起来。顺序不能写错,因为先转肩部再转手腕,与先转手腕再转肩部不是同一个姿态。
数据投影
投影把高维数据压到低维空间。二维投影到一条线只是最简单版本;在数据分析里,我们常把很多变量投影到少数几个方向上,保留主要变化,丢掉次要变化。后面学习正交投影、最小二乘和奇异值分解时,会反复用到这个想法。
小结
矩阵可以看作向量函数。线性变换的判断标准是保留加法和数乘;它一定把零向量送到零向量。对 R2 中的线性变换,只要知道 e1 和 e2 的去向,就能写出标准矩阵。
常见变换的矩阵不是孤立公式。旋转矩阵、缩放矩阵、剪切矩阵、投影矩阵和反射矩阵都可以通过“基向量去了哪里”重建。两个变换连续发生时,复合矩阵由矩阵乘法给出;先 A 后 B 对应 BA。
练习
基础练习
- 判断下列变换是否线性:
T1(x,y)=(x−y, 2x+3y)
T2(x,y)=(x, y+2)
T3(x,y)=(xy, y)
T1 是线性的,因为它可以写成矩阵乘法:
[12−13][xy]T2 不是线性的,因为 T2(0,0)=(0,2),零向量没有被送到零向量。T3 也不是线性的,因为输出里有乘积项 xy,不保持线性组合。
- 已知线性变换 T:R2→R2 满足
T(e1)=[2−1],T(e2)=[53]
写出标准矩阵,并求 T(4,2)。
标准矩阵为
A=[2−153]所以
T(4,2)=[2−153][42]=[182]
- 写出关于 y 轴反射的矩阵,并说明它把 (x,y) 变成什么。
关于 y 轴反射时,横坐标变号,纵坐标不变:
(x,y)↦(−x,y)因此矩阵是
[−1001]
综合练习
- 设
A=[01−10],B=[3001]
分别计算 BA 和 AB,并用一句话解释它们的几何顺序。
计算得
BA=[3001][01−10]=[01−30]AB=[01−10][3001]=[03−10]BA 表示先旋转 90∘,再做水平方向 3 倍缩放;AB 表示先做水平方向 3 倍缩放,再旋转 90∘。两者通常不同。
- 一个变换把所有点投影到直线 y=x 上。猜想它是否可逆,并说明理由。
它不可逆。投影会把平面上的许多不同点压到同一条直线上。例如点 (2,0) 和 (1,1) 在投影后可能落到同一个点。输出无法恢复唯一输入,所以没有逆变换。
- 给出一个不是线性变换但会把直线变成直线的例子,并解释它为什么不线性。
平移就是例子,例如
S(x,y)=(x+3, y−1)它会把直线变成平行直线,但
S(0,0)=(3,−1)零向量没有被送到零向量,所以它不是线性变换。