【3D数学】03 - 线性变换

1. 线性变换

线性变换不等同于矩阵,矩阵只是某种线性变换的一种显示的数学表达方式,而且某种确定的线性变换在不同的坐标系中,描述该线性变换的矩阵也不相同。

实际上,如果不在 源空间(source)目标空间(target) 中选取一组基的话,一个抽象的线性变换理论上是没有矩阵的。

当然,平时常常会默认以 单位空间 I \bold{I} I 作为基来进行表示。

2. 对向量的线性变换

空间变换.webp

设图中绿色向量为基向量 i ^ = [ 1 0 ] \hat{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} i^=[10] ,红色向量为基向量 j ^ = [ 0 1 ] \hat{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} j^=[01]

在经过某种线性变换 T \bold{T} T 之后,跟踪 i ^ \hat{i} i^ j ^ \hat{j} j^ 的变化,可以发现变化为了 i ′ ^ = [ 3 1 ] \hat{i'} = \begin{bmatrix} 3 \\ 1 \end{bmatrix} i^=[31] j ′ ^ = [ 1 2 ] \hat{j'} = \begin{bmatrix} 1 \\ 2 \end{bmatrix} j^=[12]

而原空间中向量 r ⃗ = [ − 1 2 ] \vec{r} = \begin{bmatrix} -1 \\ 2 \end{bmatrix} r =[12] 跟着空间发生的线性变化一同发生了变化,其中的分量没有发生改变,在新坐标系 [ 3 1 1 2 ] \begin{bmatrix} \begin{array}{c:c} 3 & 1 \\ 1 & 2 \end{array} \end{bmatrix} [3112] 中依然为 r 1 ⃗ = [ − 1 2 ] \vec{r_1} = \begin{bmatrix} -1 \\ 2 \end{bmatrix} r1 =[12]

然而该向量实际上已经变化为 r ′ ⃗ = [ − 1 3 ] \vec{r'} = \begin{bmatrix} -1 \\ 3 \end{bmatrix} r =[13] .

即发生了如下的线性变换:

r ⃗ ↦ T r ′ ⃗ \vec{r} \xmapsto[]{\bold{T}} \vec{r'} r T r

计算式如下:

r ′ ⃗ = [ 3 1 1 2 ] [ − 1 2 ] = [ − 1 3 ] \vec{r'} = \begin{bmatrix} \begin{array}{c:c} 3 & 1 \\ 1 & 2 \end{array} \end{bmatrix} \begin{bmatrix} -1 \\ 2 \end{bmatrix} = \begin{bmatrix} -1 \\ 3 \end{bmatrix} r =[3112][12]=[13]

3. 对向量空间的线性变换

就像在张量中的示例一样,我们可以通过一组基向量来观察该空间发生了怎样的线性变换,同时可以获得一个 变换矩阵

但是,正如前面提到的,矩阵不等价于线性变换,矩阵只是某种线性变换的一种显示的数学表达方式,他是基于某个坐标系的,就像描述小方格的变化的前提是需要有一个小方格,脱离了这个观察基准就没法构建。

[ 1 0 0 1 ] ↦ T [ 3 1 1 2 ] \begin{bmatrix} \begin{array}{c:c} 1 & 0 \\ 0 & 1 \end{array} \end{bmatrix} \xmapsto[]{\bold{T}} \begin{bmatrix} \begin{array}{c:c} 3 & 1 \\ 1 & 2 \end{array} \end{bmatrix} [1001]T [3112]

显然,其中:

T = [ 3 1 1 2 ] \bold{T} = \begin{bmatrix} \begin{array}{c:c} 3 & 1 \\ 1 & 2 \end{array} \end{bmatrix} T=[3112]

3.1 线性变换矩阵的快速构建

巧妙利用以下性质:

首先,不妨将 源空间 设置为 单位空间

I = [ 1 0 0 0 1 0 0 0 1 ] \bold{I} = \begin{bmatrix} \begin{array}{c:c:c} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \end{bmatrix} I=100010001

经过期望的变换后,其生成的 目的空间矩阵 在数学上跟 变换矩阵 是同一个矩阵:
M 1 I = F \bold{M_1 I} = \bold{F} M1I=F
显然,其中:
M 1 = F \bold{M_1} = \bold{F} M1=F

那么可以使用以下方法,去根据某个期望的变换,快速构建出对应的变换矩阵:

  • 不妨跟踪 单位空间 I \bold{I} I 的三个标准基向量,计算其在经过某个 期望的变换 后所得的新的三个基向量;
  • 这三个新的基向量组成的向量空间即为 目的空间矩阵 F \bold{F} F
  • 此时, 由于 目的空间矩阵 F \bold{F} F 即是 变换矩阵 M 1 \bold{M_1} M1 ,那么其中的每一列,都能解释为 单位空间 I \bold{I} I 的三个标准基向量在变换后对应的基向量;
  • 由于 源空间 设置的是 单位空间 I \bold{I} I ,这一过程是非常简单的;
  • 用变换后的三个基向量组成一个 目的空间矩阵 F \bold{F} F ,那么即可获得对应的 变换矩阵 M 1 \bold{M_1} M1

NOTE:

  • 要严格同时注意基向量的长度和方向 不可随意变化,其中方向包含了类旋转变换的相关信息,长度包含了类缩放变换的相关信息,(该处提到的旋转和缩放不是严格意义上的旋转和缩放)。
    换言之,不可随意对目的空间的基向量进行标准化,因为这样虽然方向没有变化,但是长度发生了改变。
     
  • 虽然该处是在用向量表示坐标轴,而坐标轴本身的长度信息又是无意义的,理论上确实可以对描述坐标轴的向量进行单位化(即长度可以随意变化,同时不会影响其对向量空间的表示),但是该处构建线性变换矩阵时,实际上不是对坐标轴变换,而是对三条 基向量 进行变换,是需要保存其中的长度信息的。

3.2 线性变换的逆变换

// TODO

3.3 物体变换与坐标系变换

  • 物体变换:坐标系不变,对物体本身进行变换;即对组成物体的各个元素(点,线)使用矩阵进行变换
    r ′ ⃗ = M r ⃗ \vec{r'} = \bold{M}\vec{r} r =Mr
  • 坐标系变换:物体不变,对坐标系进行变换;此时物体虽然没有进行变换,但是由于对其进行线性表示的坐标系变换了,所以其分量也会跟着发生变化,这时可以求出某向量
    r 1 ⃗ = F 1 T r ⃗ \vec{r_1} = \bold{F_1^{T}} \vec{r} r1 =F1Tr

3.4 逆变换与坐标轴变换的区别

// TODO

4. 特征

4.1 基变换和相似

已知对于某个确定的线性变换 T \bold{T} T ,某个线性变换矩阵,是依赖于其所在的坐标系,坐标系变化时,对应的变换矩阵也会跟着变化,换句话说,前后两种变换矩阵,仅仅只是坐标系不同。

  • 在基向量组 M a = ( v 1 ⃗ v 2 ⃗ v 3 ⃗ ) \bold{M_a} = \begin{pmatrix} \vec{v_1} &\vec{v_2} &\vec{v_3} \end{pmatrix} Ma=(v1 v2 v3 ) ,对应的变换矩阵为 A \bold{A} A
  • 在基向量组 M b = ( w 1 ⃗ w 2 ⃗ w 3 ⃗ ) \bold{M_b} = \begin{pmatrix} \vec{w_1} &\vec{w_2} &\vec{w_3} \end{pmatrix} Mb=(w1 w2 w3 ) ,对应的变换矩阵为 B \bold{B} B

那么我们可以说, A \bold{A} A B \bold{B} B 这两个变换矩阵是相似的,即 A ∼ B \bold{A} \sim \bold{B} AB ,教材中经常会给出形如这样的一个等式:

B = M − 1 A M \bold{B} = \bold{M^{-1}}\bold{A}\bold{M} B=M1AM

其中的 M \bold{M} M 就是 基变换矩阵

甚至,我们可以基于线性变换矩阵 T \bold{T} T 写出这样的等式:

A = M a − 1 T M a B = M b − 1 T M b \begin{aligned} &\bold{A} = \bold{M_a^{-1}}\bold{T}\bold{M_a} \\[1.5ex] &\bold{B} = \bold{M_b^{-1}}\bold{T}\bold{M_b} \end{aligned} A=Ma1TMaB=Mb1TMb

当然,这其中是存在传递性的, A \bold{A} A B \bold{B} B 依然相似:
B = ( M b − 1 M a ) A ( M a − 1 M b ) \bold{B} = (\bold{M_b^{-1}}\bold{M_a})\bold{A}(\bold{M_a^{-1}}\bold{M_b}) B=(Mb1Ma)A(Ma1Mb)

几何意义

  • A = M a − 1 T M a \bold{A} = \bold{M_a^{-1}}\bold{T}\bold{M_a} A=Ma1TMa 为例,将变换 A \bold{A} A 作用于某个向量 r a ⃗ \vec{r_a} ra
  • 其中向量 r a ⃗ \vec{r_a} ra 是向量 r ⃗ \vec{r} r 在向量空间 M a \bold{M_a} Ma 中的线性表示:
  • 那么下面对等式 r a ′ ⃗ = M a − 1 T M a r a ⃗ \vec{r_a'} = \bold{M_a^{-1}}\bold{T}\bold{M_a} \vec{r_a} ra =Ma1TMara 进行分析:

r a ⃗ ↦ M a r ⃗ ↦ T r ′ ⃗ ↦ M a − 1 r a ′ ⃗ \vec{r_a} \xmapsto[]{\bold{M_a}} \vec{r} \xmapsto[]{\bold{T}} \vec{r'} \xmapsto[]{\bold{M_a^{-1}}} \vec{r_a'} ra Ma r T r Ma1 ra

当然,这一过程等价于:
r a ⃗ ↦ A r a ′ ⃗ \vec{r_a} \xmapsto[]{\bold{A}} \vec{r_a'} ra A ra

4.2 特征向量和特征值

行列式.webp

对于某个线性变换 A \bold{A} A 来说,会存在若干个向量,当向量空间在进行 A \bold{A} A 变换时,会沿着这些向量的方向进行缩放的操作,那么,这些向量就称为变换矩阵 A \bold{A} A特征向量 v i ⃗ \vec{v_i} vi ,其缩放的数值即为 特征值 λ i \lambda_i λi ,显然,也就有以下等式:
A v i ⃗ = λ i v i ⃗ \bold{A} \vec{v_i} = \lambda_i \vec{v_i} Avi =λivi

同时也有以下说法

  • 向量 v i ⃗ \vec{v_i} vi 通过 A \bold{A} A 的变换,幅值变化了 λ i \lambda_i λi 倍,方向未发生变化;
  • 存在向量 v i ⃗ \vec{v_i} vi ,其在坐标系 A \bold{A} A 中的投影,方向和 v i ⃗ \vec{v_i} vi 相同,幅值变化了 λ i \lambda_i λi 倍。

几何意义
姑且设以下条件:

  • 线性变换 A \bold{A} A 的特征向量为 v 1 ⃗ \vec{v_1} v1 v 2 ⃗ \vec{v_2} v2 v 3 ⃗ \vec{v_3} v3
  • 将这组特征向量构成一个矩阵 Q = ( v 1 ⃗ v 2 ⃗ v 3 ⃗ ) \bold{Q} = \begin{pmatrix} \vec{v_1} &\vec{v_2} &\vec{v_3} \end{pmatrix} Q=(v1 v2 v3 )
  • 将这组特征值构成一个对角矩阵:
    Λ = [ λ 1 0 0 0 λ 2 0 0 0 λ 3 ] \bold{\Lambda} = \begin{bmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ 0 & 0 & \lambda_3 \\ \end{bmatrix} Λ=λ1000λ2000λ3
  • 设某个向量 r ⃗ \vec{r} r 在向量空间 Q \bold{Q} Q 构成的坐标系中的线性表示为 r q ⃗ \vec{r_q} rq

下面是对于等式 A r ⃗ = Q Λ Q − 1 r ⃗ \bold{A}\vec{r} = \bold{Q} \bold{\Lambda} \bold{Q^{-1}} \vec{r} Ar =QΛQ1r 的分析:
r ⃗ ↦ Q − 1 r q ⃗ ↦ Λ r q ′ ⃗ ↦ Q r ′ ⃗ \vec{r} \xmapsto[]{\bold{Q^{-1}}} \vec{r_q} \xmapsto[]{\bold{\Lambda}} \vec{r_q'} \xmapsto[]{\bold{Q}} \vec{r'} r Q1 rq Λ rq Q r

同时,我们知道线性变换 A \bold{A} A 的行列式即是向量空间在经过该变换后“体积”缩放的数值,同时,特征值不同的特征向量之间是 线性无关 的,那么很容易得到这个“体积”缩放的数值即为空间沿着各个特征向量方向缩放数值的总乘积,即特征值的总乘积:

det ⁡ ( A ) = λ 1 λ 2 λ 3 \bold{\det(A)} = \lambda_1\lambda_2\lambda_3 det(A)=λ1λ2λ3

5. 使用复数表示线性变换

5.1 乘法群中的线性变换

可知,正如可以用某个实数 a a a 表示一个轴,复数 w = a + b i w = a + bi w=a+bi 可以表示一个二维平面。

四元数的可视化.gif

设图中的变换为 T \bold{T} T ,可知发生了如下映射:

( z = 1 + 0 i ) ↦ T ( z ′ = 2 + 3 i ) (z = 1 + 0i) \xmapsto{\bold{T}} (z' = 2 + 3i) (z=1+0i)T (z=2+3i)

正如在矩阵变换中,我们倾向于将矩阵乘法单位元,即 单位矩阵 [ 1 0 0 1 ] \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} [1001] 作为变换的 源矩阵 ,来对变换进行描述,这样 目的矩阵 即为 变换矩阵 ,非常方便。

这里我们也不妨将复数运算的乘法单位元,即复数 z = 1 + 0 i z = 1 + 0i z=1+0i 作为 源复数 来对变换进行描述,显然,经过变换后,映射出的 目的复数 z ′ = 2 + 3 i z' = 2 + 3i z=2+3i ,那么该变换用复数描述的话即为 ( 2 + 3 i ) (2 + 3i) (2+3i) .

( z = 1 + 0 i ) ↦ T = ( 2 + 3 i ) ( z ′ = 2 + 3 i ) (z = 1 + 0i) \xmapsto{\bold{T} = (2 + 3i)} (z' = 2 + 3i) (z=1+0i)T=(2+3i) (z=2+3i)

用算术表示:

z ′ = T ⋅ z = ( 2 + 3 i ) ( 1 + 0 i ) = 2 + 3 i z' = T \cdot z = (2 + 3i)(1 + 0i) = 2 + 3i z=Tz=(2+3i)(1+0i)=2+3i

那么对于处在该空间的任意的某个复数,这里取 w = 1 − 1 i w = 1 - 1i w=11i ,经变换后为 w ′ = 5 + 1 i w' = 5 + 1i w=5+1i ,即:

( w = 1 − 1 i ) ↦ T = ( 2 + 3 i ) ( w ′ = 5 + 1 i ) (w = 1 - 1i) \xmapsto{\bold{T} = (2 + 3i)} (w' = 5 + 1i) (w=11i)T=(2+3i) (w=5+1i)

用算术表示:

w ′ = T ⋅ w = ( 2 + 3 i ) ( 1 − 1 i ) = 5 + 1 i w' = T \cdot w = (2 + 3i)(1 - 1i) = 5 + 1i w=Tw=(2+3i)(11i)=5+1i

NOTE :复数运算满足乘法的分配律,其中 i 2 = − 1 i^2 = -1 i2=1

5.2 复数的几何意义

一个复数变换 t = a + b i t = a + bi t=a+bi ,可以看做是 缩放变换旋转变换 的一种复合变换。
 

  • 缩放变换 :缩放变换中进行缩放的系数为 a 2 + b 2 \sqrt{a^2 + b^2} a2+b2
     
  • 旋转变换 :旋转变换中进行旋转的角度为 arctan ⁡ b a \arctan{\cfrac{b}{a}} arctanab

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值