矩阵是线性变换的表示——理解变换的几何意义
在线性代数中,矩阵不仅仅是数字排列成的表格。它的真正意义是线性变换的表示。一个 m×n 矩阵 A 定义了一个从 Rⁿ 到 Rᵐ 的映射:输入向量 x,输出向量 Ax。
变换 T 是线性的,如果满足两个条件:
这两个条件可以合并为:T(au + bv) = a·T(u) + b·T(v)。
矩阵 A 作用于向量 x 的结果 Ax,就是将 x 经过 A 所代表的线性变换后的像。理解这一点,矩阵乘法就不再是死板的"行乘列",而是几何变换的代数实现。
计算机图形学(旋转缩放):3D 游戏中的每一个物体运动——旋转、平移、缩放——都可以用 4×4 变换矩阵表示。GPU 每秒执行数十亿次矩阵-向量乘法,实时渲染出逼真的三维世界。
机器人运动学(变换矩阵):机器人手臂各关节的位置和姿态用齐次变换矩阵描述。通过矩阵乘法串联各关节的变换,可以计算末端执行器在空间的精确位置和方向。
图像处理(卷积核):图像模糊、锐化、边缘检测等操作本质上是小矩阵(卷积核)在图像上的滑动变换。卷积神经网络通过可学习的卷积核自动提取图像特征。
电路网络(导纳矩阵):在电路分析中,节点电压与注入电流之间的关系由导纳矩阵 Y 描述:I = YV。矩阵的结构反映了电路的拓扑连接方式。
所有线性变换都可以由几种基本变换组合而成。理解这些基本变换,是理解任意矩阵几何意义的关键。
在 R² 中,将向量逆时针旋转角度 θ 的矩阵为:
旋转矩阵保持向量长度不变(正交矩阵),且 det(R) = 1。
沿 x 轴缩放 a 倍、沿 y 轴缩放 b 倍的矩阵:
当 a = b 时,是均匀缩放;当 a ≠ b 时,是各向异性缩放(拉伸或压缩)。
x 方向剪切(y 坐标不变,x 坐标按 y 的比例偏移):
剪切变换保持面积不变(det(H) = 1),但改变形状。
将向量投影到 x 轴上的矩阵:
投影是"降维"操作,将二维向量压缩到一维直线上。
多个线性变换依次作用,等价于一个复合变换。复合变换的矩阵是各变换矩阵的乘积。
若先进行变换 B,再进行变换 A,则复合变换的矩阵为 AB。
注意:矩阵乘法不满足交换律,即 AB ≠ BA(一般情况下)。变换的顺序至关重要!
设 R 是旋转 90° 的矩阵,S 是沿 x 轴缩放 2 倍的矩阵。
这两个复合变换通常不同,因为旋转和缩放会相互影响。
矩阵乘法 AB 的几何意义是"先应用 B,再应用 A"。理解这一点,矩阵乘法的许多性质就变得直观了:为什么 (AB)C = A(BC)(结合律)?因为变换的串联顺序本来就是结合的。为什么 AB ≠ BA(不交换)?因为"先旋转再剪切"和"先剪切再旋转"通常得到不同的结果。
方阵 A 的行列式(Determinant)det(A) 是一个标量,它揭示了变换 A 对空间"体积"的影响程度。
ad - bc 的绝对值就是以 (a,c) 和 (b,d) 为邻边的平行四边形的面积。
这是三个 2×2 子行列式的交替和,其绝对值表示平行六面体的体积。
求将 R² 中向量逆时针旋转 60° 的旋转矩阵,并计算它作用于向量 (1, 0) 和 (0, 1) 的结果。
cos(60°) = 1/2,sin(60°) = √3/2
R = [ 1/2 -√3/2 ]
[ √3/2 1/2 ]
R·(1,0) = (1/2, √3/2) —— 单位向量旋转到 60° 方向
R·(0,1) = (-√3/2, 1/2) —— 原 y 轴方向旋转到 150° 方向
两个结果向量的长度仍为 1(旋转保持长度)。
两向量之间的夹角仍为 90°(旋转保持角度)。
设 A 是旋转 45° 的矩阵,B 是沿 x 轴缩放 2 倍的矩阵。求 AB 和 BA,并说明它们的几何意义。
A = [ √2/2 -√2/2 ]
[ √2/2 √2/2 ]
B = [ 2 0 ]
[ 0 1 ]
AB = [ √2/2 -√2/2 ] [ 2 0 ] = [ √2 -√2/2 ]
[ √2/2 √2/2 ] [ 0 1 ] [ √2 √2/2 ]
BA = [ 2 0 ] [ √2/2 -√2/2 ] = [ √2 -√2 ]
[ 0 1 ] [ √2/2 √2/2 ] [ √2/2 √2/2]
计算以下矩阵的行列式,并解释几何意义:
(a) A = [ 2 0 ] (b) B = [ 1 2 ]
[ 0 3 ] [ 2 4 ]
det(A) = 2×3 - 0×0 = 6
几何意义:A 将面积放大 6 倍(x 方向放大 2 倍,y 方向放大 3 倍,2×3=6)。
det(A) > 0,保持定向。
det(B) = 1×4 - 2×2 = 0
几何意义:B 将二维空间"压扁"到一条直线上(因为第二列是第一列的 2 倍,两列线性相关)。
变换后面积为 0,所以 det(B) = 0。
设 H = [ 1 2 ],求 H 作用于单位正方形四个顶点 (0,0), (1,0), (0,1), (1,1) 的结果,并计算面积变化。
[ 0 1 ]
H·(0,0) = (0, 0)
H·(1,0) = (1, 0)
H·(0,1) = (2, 1)
H·(1,1) = (3, 1)
原单位正方形变为平行四边形,顶点为 (0,0), (1,0), (3,1), (2,1)。
底边长度仍为 1,高仍为 1,所以面积仍为 1。
det(H) = 1×1 - 2×0 = 1
行列式为 1,验证了面积不变。
以下 MATLAB 代码演示如何定义变换矩阵、应用变换并可视化旋转效果。