Skip to content

线性变换与矩阵乘法

在前面的章节中,我们指出矩阵 XRm×n 乘一个向量 vRn×1,可以看作是将 v 作为系数对矩阵 X的列向量进行线性组合,得到一个新的 m 维向量。在本章,我们尝试从线性变换的角度重新理解这个过程。

线性变换的定义

VW 是两个线性空间,如果存在一个映射 T:VW,使得对于任意的 x,yV 和任意的常数 α,都有

  1. 可加性:T(x+y)=T(x)+T(y)

  2. 齐次性:T(αx)=αT(x)

那么我们称映射 T 是一个线性映射

如果,一个线性映射是从一个线性空间到它自身的映射,即 T:VV ,那么我们称这个线性映射是一个线性变换

对于一组基 XRn×n,定义如下的变换

T(v)=Xv,

可以验证,变换 T 是一个线性变换:

  1. 如果 vRn×1,那么 T(v)=XvRn×1
  2. 可加性: T(v1+v2)=X(v1+v2)=Xv1+Xv2=T(v1)+T(v2)
  3. 齐次性: T(αv)=Xαv=αXv=αT(v)

二维线性变换

在这一小节,我们尝试以二维线性变换为例,从几何的角度来感受一下线性变换。根据上文的定义,我们知道一个二维的线性变换可以用一个 2×2的矩阵来表示

X=[x11x12x21x22].

这个矩阵可以将一个二维向量 v=[v1v2]T 变换为另一个二维向量

v=Xv=[x11v1+x12v2x21v1+x22v2].

于此同时,我们对于二维平面上的一些常见操作,比如旋转,缩放等等,都比较熟悉,那么这些操作如何用矩阵来表示呢?

  1. 缩放

    X=[s100s2].

    可以发现,变换后的向量分别在两个方向上被缩放了 s1,s2

    v=Xv=[s1v1s2v2].
  2. 反射

    X=[1001].

    此时,变换后的向量在第一个轴上被反转了

    v=Xv=[v1v2].
  3. 旋转

    X=[cosθsinθsinθcosθ].

    该矩阵相当将向量以原点为中心旋转了 θ

    v=Xv=[cosθv1sinθv2sinθv1+cosθv2].
  4. 剪切

    X=[10.501].

    此时,变换后的向量为

    v=Xv=[v1+0.5v2v2].
(a)
(b)
(c)
(d)
常见的线性变换 (a) 缩放 (b) 反射 (c) 旋转 (d) 剪切

线性变换的组合

两个乃至多个线性变换的组合依旧是一个线性变换吗?这里我们简单证明一下,设有两个线性变换 T1,T2 , 那么这两个线性变换的组合记作 T=T1T2, 该变换满足

Tv=(T1T2)v=T2(T1(v)),

即线性变换的组合构成的新的变换 T 等价于先进行线性变换 T1 然后再进行线性变换 T2。可以验证

  1. 如果 vRn×1,那么 T2(T1(v))Rn×1
  2. 可加性: T(v1+v2)=T2(T1(v1+v2))=T2(T1(v1)+T1(v2))=T2(T1(v1))+T2(T1(v2))=T(v1)+T(v2)
  3. 齐次性: T(αv)=T2(T1(αv))=T2(αT1(v))=αT2(T1(v))=αT(v)

因此,T=T1T2 也是一个线性变换。设 T1,T2对应的变换矩阵分别为 A,BRN×N,那么 T 对应的矩阵该有什么表达呢?

注意到,对于线性变换 T 我们有

T(v)=T2(T1(v))=B(Av).

Aij,Bij 为矩阵 AB 的第 i 行,第 j 列元素,则有如下等式

(Av)k=i=1NAkivi,(1)(B(Av))k=j=1NBkj(Av)j=j=1nBkji=1NAjivi=i=1N(j=1NBkjAji)vi.

T 对应的矩阵为 C,则有

T(v)=Cv,

变换后向量的第 k 个元素有如下表达式

(2)(Cv)k=i=1NCkivi,

对比式 (1) 和式 (2) 可知,变换矩阵 C 中的元素有如下表达式

Cki=j=1NBkjAji.

为了表达美观,我们可以将对应的变量进行替换,得到如下表达式

(3)Cij=k=1NBikAkj.

我们将式 (3) 中的运算称作矩阵乘法,记作 C=BA

实际上,矩阵乘法可以这样计算,如 C=BA,那么矩阵 C 的第 i,j 个元素 Cij,为矩阵 B 的第 i 行行向量 和矩阵 A 的第 j 列列向量的内积。

此外,上文的推导都是基于方阵的(也就是行和列具有相同长度的矩阵)。对于一般的矩阵,同样可以使用矩阵乘法来计算,设有矩阵 ARM×N,BRN×L,那么这两个矩阵的乘积为

C=ABRM×L.

可以看到,如果两个矩阵能够进行矩阵乘法,那么第一个矩阵的每一行都和第二个矩阵的每一列都有相同的长度。正是这样,矩阵乘法并不满足交换率,显然 AB 能够计算并不代表 BA 也能进行矩阵乘法。

小结

  1. 线性变换可以用矩阵表示
  2. 常见的线性变换就几何意义来说,有缩放、反射、旋转、剪切
  3. 线性变换的组合可以用矩阵乘法表示

Released under the MIT License.