矩阵乘法与线性变换复合的联系
前情回顾
上个课程讲解了线性变换以及如何用矩阵描述他们,这值得我们回顾一下,因为它太重要了。
严格来说线性变换是将向量作为输入和输出的一类函数
[
x
0
y
0
]
→
L
(
v
⃗
)
→
[
x
o
u
t
p
u
t
y
o
u
t
p
u
t
]
\left[ \begin{matrix} x_0\\ y_0\\ \end{matrix} \right] \rightarrow L(\vec{v}) \rightarrow \left[ \begin{matrix} x_{output}\\ y_{output} \end{matrix} \right]
[x0y0]→L(v)→[xoutputyoutput]
但在上节课程中还说过可以将线性变化看作对空间的挤压伸展
他们保持网格线平行且等距分布,并且原点保持不变
关键的一点是线性变换由它对空间的基向量的作用完全决定
在二维空间里,基向量就是
i
^
,
j
^
\widehat{i}, \widehat{j}
i
,j
这是因为任意的向量都可以表示为基向量的线性组合
v
⃗
=
[
x
y
]
=
x
∗
i
^
+
y
∗
j
^
\vec{v}=\left[ \begin{matrix} x\\ y\\ \end{matrix} \right]= x*\widehat{i}+y*\widehat{j}
v=[xy]=x∗i
+y∗j
在线性变换后我们有一个绝妙的结论
v
⃗
t
r
a
n
s
f
o
r
m
e
d
=
x
∗
i
^
t
r
a
n
s
f
o
r
m
e
d
+
y
∗
j
^
t
r
a
n
s
f
o
r
m
e
d
\vec{v}_{transformed}=x*\widehat{i}_{transformed}+y*\widehat{j}_{transformed}
vtransformed=x∗i
transformed+y∗j
transformed
习惯上我们把它俩走位矩阵的一个列
并且将两列分别与x和y相乘后加和的结果定义为矩阵向量乘积
这样矩阵代表着一个特定的线性变换
而矩阵与向量相乘就是把这个线性变换作用于那个向量
变换复合
如果你想描述一个变换接着一个变换
例如先逆时针转90度在进行一次剪切
从头到尾的作用是另一种线性变换
它与单纯的旋转和剪切明显不同这个变换被称为前两者的复合变换
我们同样可以追踪基向量,并用矩阵完全描述这个变换
在这个例子里最终的变化矩阵为
[
1
−
1
1
0
]
\left[ \begin{matrix} 1 & -1\\ 1 & 0\\ \end{matrix} \right]
[11−10]
这个矩阵捕捉到了整体的线性变换效应,但它是单个的作用不是一个连续的作用
那么如何描述这一个连续的变化呢你有两个方法
- 第一种
[ 1 1 0 1 ] ( [ 0 − 1 1 0 ] [ x y ] ) \left[ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} \right]( \left[ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} \right] \left[ \begin{matrix} x\\ y\\ \end{matrix} \right] ) [1011]([01−10][xy])
在数值上看它是先旋转后剪切当然无论如何都要和
[ 1 − 1 1 0 ] [ x y ] \left[ \begin{matrix} 1 & -1\\ 1 & 0\\ \end{matrix} \right] \left[ \begin{matrix} x\\ y\\ \end{matrix} \right] [11−10][xy]
相等
其实看成
[ 1 − 1 1 0 ] = [ 1 1 0 1 ] [ 0 − 1 1 0 ] \left[ \begin{matrix} 1 & -1\\ 1 & 0\\ \end{matrix} \right]= \left[ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} \right] \left[ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} \right] [11−10]=[1011][01−10]
也很合理
我们可以展示一下它怎么算的,但是太容易迷失在数字里了,时刻记得,两个矩阵相乘由几何意义就是线性变换的相继作用
而且这个相继的乘积要从右往左读,这起源于函数的形式
f ( g ( x ) ) f(g(x)) f(g(x))
举一个例子
[ 1 − 2 1 0 ] = M 1 ; [ 0 2 1 0 ] = M 2 \left[ \begin{matrix} 1 & -2\\ 1 & 0\\ \end{matrix} \right] =M1; \left[ \begin{matrix} 0 & 2\\ 1 & 0\\ \end{matrix} \right] =M2 [11−20]=M1;[0120]=M2
M 2 ∗ M 1 = [ 1 ∗ 0 + 1 ∗ 2 − 2 ∗ 0 + 0 ∗ 2 1 ∗ 1 + 0 ∗ 1 − 2 ∗ 1 + 0 ∗ 0 ] M2*M1= \left[ \begin{matrix} 1*0+1*2 & -2*0+0*2\\ 1*1+0*1 & -2*1+0*0\\ \end{matrix} \right] M2∗M1=[1∗0+1∗21∗1+0∗1−2∗0+0∗2−2∗1+0∗0]
实际上还是在寻找 i ^ 和 j ^ 的去向 实际上还是在寻找\widehat{i}和\widehat{j}的去向 实际上还是在寻找i 和j 的去向
这一方式在其余的矩阵当中是有普适性的
同样的显而易见,这样的乘法是不满足交换律的。不同的变换顺序映射着不同的结果但它明显是符合结合律的
同样的我更希望能从几何来理解它所以我截取了两张不同顺序变换的图像
先剪切后旋转先旋转后剪切那么结合律的证明是显而易见的,数值的计算只会让人疑惑