矩阵乘法的几何意义与逆矩阵——"撤销"变换的数学
若 A 是 m×n 矩阵,B 是 n×p 矩阵,则乘积 AB 是 m×p 矩阵,其第 i 行第 j 列元素为 A 的第 i 行与 B 的第 j 列的点积:
若 A 代表变换 T_A,B 代表变换 T_B,则 AB 代表"先进行 T_B,再进行 T_A"的复合变换。
矩阵乘法的定义并非任意规定,而是为了恰好对应线性变换的复合。如果定义其他乘法方式,就无法保证"矩阵乘积 = 变换复合"这一核心性质。行乘列的规则是几何直观对代数形式的"强制要求"。
一般情况下,AB ≠ BA。这在几何上是显然的:先旋转再缩放,与先缩放再旋转,通常得到不同的结果。
虽然不满足交换律,但矩阵乘法满足以下性质:
手算 2×2 矩阵乘法:
对于更大的矩阵,可以采用"行×列"逐元素计算,或使用分块矩阵技巧。
方阵 A 的逆矩阵 A⁻¹ 是满足以下条件的矩阵:
其中 I 是单位矩阵。逆矩阵的存在意味着变换 A 是"可逆的"——可以通过另一个变换"撤销"它的效果。
如果 A 将空间旋转了 30°,那么 A⁻¹ 就将空间旋转 -30°。如果 A 将 x 方向拉伸 2 倍,A⁻¹ 就将 x 方向压缩 1/2 倍。逆矩阵就是原变换的"时间倒流"。
以下命题等价:
注意分母 ad - bc = det(A),所以当 det(A) = 0 时逆矩阵不存在。
解密(逆矩阵解码):在简单的 Hill 密码中,明文被编码为数字矩阵,通过与密钥矩阵相乘加密。解密方用密钥矩阵的逆矩阵恢复明文。虽然现代密码学使用更复杂的方案,但逆运算的思想仍是核心。
结构力学(柔度矩阵求逆):在结构分析中,刚度矩阵 K 描述力与位移的关系 F = Kx。柔度矩阵是 K 的逆:x = K⁻¹F。工程师通过求逆矩阵,从已知载荷计算结构变形。
电路分析(阻抗矩阵):多端口网络的电压-电流关系可用阻抗矩阵 Z 描述 V = ZI。导纳矩阵 Y = Z⁻¹ 则描述电流-电压关系 I = YV。阻抗与导纳互为逆矩阵。
马尔可夫链转移矩阵:在随机过程中,转移矩阵的幂描述多步演化。虽然转移矩阵通常不可逆,但其特征分解(涉及广义逆)用于分析稳态分布和收敛速度。
初等矩阵是对单位矩阵进行一次初等行变换得到的矩阵。三种初等行变换对应三种初等矩阵:
求逆矩阵的标准方法——高斯-约当消元法:
每一步初等行变换都等价于左乘一个初等矩阵。假设经过一系列初等变换 E₁, E₂, ..., Eₖ 将 A 化为 I,则 Eₖ···E₂E₁A = I,所以 A⁻¹ = Eₖ···E₂E₁。这些初等矩阵同时作用于 I,就得到了 A⁻¹。
以 2×2 矩阵为例,用增广矩阵法验证公式:
通过行变换消去左下和右上元素,最终左侧化为 I,右侧即为 A⁻¹。
LU 分解将一个矩阵 A 分解为一个下三角矩阵 L(Lower triangular)和一个上三角矩阵 U(Upper triangular)的乘积:
其中 L 的对角线元素为 1,U 是上三角矩阵。
LU 分解是高斯消元法的矩阵形式。消元过程本质上就是将 A 化为上三角矩阵 U,同时记录消元步骤对应的下三角矩阵 L。
当需要多次求解 Ax = b(不同 b)时,LU 分解只需做一次(O(n³)),之后每次求解只需两次回代(O(n²))。这在有限元分析、优化算法等需要反复求解的领域中极大提高了效率。
注意:并非所有矩阵都有 LU 分解。当消元过程中需要行交换时,需要引入置换矩阵 P,得到 PA = LU(带选主元的 LU 分解)。
计算 AB,其中 A = [ 1 2 ],B = [ 5 6 ]
[ 3 4 ] [ 7 8 ]
A 的第 1 行 · B 的第 1 列 = 1×5 + 2×7 = 5 + 14 = 19
A 的第 1 行 · B 的第 2 列 = 1×6 + 2×8 = 6 + 16 = 22
A 的第 2 行 · B 的第 1 列 = 3×5 + 4×7 = 15 + 28 = 43
A 的第 2 行 · B 的第 2 列 = 3×6 + 4×8 = 18 + 32 = 50
求 A = [ 4 7 ] 的逆矩阵。
[ 2 6 ]
det(A) = 4×6 - 7×2 = 24 - 14 = 10
A⁻¹ = (1/10) [ 6 -7 ] = [ 0.6 -0.7 ]
[ -2 4 ] [ -0.2 0.4 ]
[ 4 7 | 1 0 ] --(R₁/4)--> [ 1 1.75 | 0.25 0 ]
[ 2 6 | 0 1 ] [ 2 6 | 0 1 ]
--(R₂-2R₁)--> [ 1 1.75 | 0.25 0 ]
[ 0 2.5 | -0.5 1 ]
--(R₂/2.5)--> [ 1 1.75 | 0.25 0 ]
[ 0 1 | -0.2 0.4 ]
--(R₁-1.75R₂)--> [ 1 0 | 0.6 -0.7 ]
[ 0 1 | -0.2 0.4 ]
解方程 AX = B,其中 A = [ 2 1 ],B = [ 5 3 ]
[ 1 3 ] [ 4 7 ]
det(A) = 2×3 - 1×1 = 5
A⁻¹ = (1/5) [ 3 -1 ] = [ 0.6 -0.2 ]
[ -1 2 ] [ -0.2 0.4 ]
X = [ 0.6 -0.2 ] [ 5 3 ] = [ 0.6×5-0.2×4 0.6×3-0.2×7 ]
[ -0.2 0.4 ] [ 4 7 ] [ -0.2×5+0.4×4 -0.2×3+0.4×7 ]
= [ 3-0.8 1.8-1.4 ] = [ 2.2 0.4 ]
[ -1+1.6 -0.6+2.8 ] [ 0.6 2.2 ]
AX = [ 2 1 ] [ 2.2 0.4 ] = [ 4.4+0.6 0.8+2.2 ] = [ 5 3 ] = B ✓
[ 1 3 ] [ 0.6 2.2 ] [ 2.2+1.8 0.4+6.6 ] [ 4 7 ]
对 A = [ 2 1 1 ] 进行 LU 分解。
[ 4 3 3 ]
[ 8 7 9 ]
消去第 2 行第 1 列:R₂ - 2R₁(乘数 l₂₁ = 2)
消去第 3 行第 1 列:R₃ - 4R₁(乘数 l₃₁ = 4)
得到:[ 2 1 1 ]
[ 0 1 1 ]
[ 0 3 5 ]
消去第 3 行第 2 列:R₃ - 3R₂(乘数 l₃₂ = 3)
U = [ 2 1 1 ]
[ 0 1 1 ]
[ 0 0 2 ]
L 的对角线为 1,下方元素为消元乘数:
L = [ 1 0 0 ]
[ 2 1 0 ]
[ 4 3 1 ]
直接计算 LU 可验证等于原矩阵 A。
以下 MATLAB 代码演示矩阵乘法、求逆和 LU 分解。