从线性组合的角度理解三维运算
一、矩阵的向量化
利用分块矩阵概念,矩阵
A
=
(
a
i
j
)
m
×
n
A=(a_{ij})_{m\times n}
A=(aij)m×n可以按行划分为一组行向量
A
=
(
α
1
α
2
⋮
α
m
)
A=\begin{pmatrix} \alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_m \\ \end{pmatrix}
A=⎝⎜⎜⎜⎛α1α2⋮αm⎠⎟⎟⎟⎞
其中
α
i
=
(
a
i
1
,
a
i
2
,
⋯
,
a
i
n
)
,
i
∈
[
1
,
2
,
⋯
,
m
]
\alpha_i=(a_{i1},a_{i2},\cdots,a_{in}),i\in[1,2,\cdots,m]
αi=(ai1,ai2,⋯,ain),i∈[1,2,⋯,m]
或,按列划分为一组列向量
A
=
(
β
1
,
β
2
,
⋯
,
β
n
)
A=(\beta_1,\beta_2,\cdots,\beta_n)
A=(β1,β2,⋯,βn),其中
β j = ( a 1 j a 2 j ⋮ a m j ) , j ∈ [ 1 , 2 , ⋯ , n ] \beta_j=\begin{pmatrix}a_{1j}\\a_{2j}\\\vdots\\a_{mj}\end{pmatrix},j\in[1,2,\cdots,n] βj=⎝⎜⎜⎜⎛a1ja2j⋮amj⎠⎟⎟⎟⎞,j∈[1,2,⋯,n]
因此,矩阵 A A A可以看成是有序向量组 ( α 1 , α 2 , ⋯ , α m ) T (\alpha_1,\alpha_2,\cdots,\alpha_m)^T (α1,α2,⋯,αm)T或 ( β 1 , β 2 , ⋯ , β n ) (\beta_1,\beta_2,\cdots,\beta_n) (β1,β2,⋯,βn)。
二、向量的线性组合
假设数域
F
F
F上的线性空间
V
m
V_m
Vm上的一组基为
(
α
1
,
α
2
,
⋯
,
α
m
)
(\alpha_1,\alpha_2,\cdots,\alpha_m)
(α1,α2,⋯,αm),则
V
V
V上任一向量
α
\alpha
α可以表示为这组基的线性组合:
α
=
k
1
α
1
+
k
2
α
2
+
⋯
+
k
m
α
m
\alpha=k_1\alpha_1+k_2\alpha_2+\cdots+k_m\alpha_m
α=k1α1+k2α2+⋯+kmαm
三、矩阵乘法的向量式
同样利用分块矩阵概念,矩阵
A
=
(
a
i
j
)
m
×
n
,
B
=
(
b
i
j
)
n
×
s
A=(a_{ij})_{m\times n},B=(b_{ij})_{n\times s}
A=(aij)m×n,B=(bij)n×s的乘法可以表示为:
A
B
=
(
α
1
α
2
⋮
α
m
)
B
=
(
α
1
B
α
2
B
⋮
α
m
B
)
=
(
∑
j
=
1
n
a
1
j
γ
j
∑
j
=
1
n
a
2
j
γ
j
⋮
∑
j
=
1
n
a
m
j
γ
j
)
AB=\begin{pmatrix} \alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_m \\ \end{pmatrix}B=\begin{pmatrix} \alpha_1B \\ \alpha_2B \\ \vdots \\ \alpha_mB \\ \end{pmatrix}=\begin{pmatrix} \displaystyle\sum_{j=1}^na_{1j}\gamma_j \\ \displaystyle\sum_{j=1}^na_{2j}\gamma_j \\ \vdots \\ \displaystyle\sum_{j=1}^na_{mj}\gamma_j \\ \end{pmatrix}
AB=⎝⎜⎜⎜⎛α1α2⋮αm⎠⎟⎟⎟⎞B=⎝⎜⎜⎜⎛α1Bα2B⋮αmB⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛j=1∑na1jγjj=1∑na2jγj⋮j=1∑namjγj⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞
其中,按行划分,
B
=
(
γ
1
,
γ
2
,
⋯
,
γ
n
)
T
B=(\gamma_1,\gamma_2,\cdots,\gamma_n)^T
B=(γ1,γ2,⋯,γn)T,
A
B
AB
AB可以看成:
A
B
AB
AB的第
i
i
i行向量是
B
B
B行向量组的线性组合,系数为
A
A
A的第
i
i
i行
α
i
\alpha_i
αi。
或
A
B
=
A
(
θ
1
,
θ
2
,
⋯
,
θ
s
)
=
(
A
θ
1
,
A
θ
2
,
⋯
,
A
θ
s
)
=
(
∑
i
=
1
n
β
1
b
i
1
∑
i
=
1
n
β
2
b
i
2
⋯
∑
i
=
1
n
β
i
b
i
s
)
AB=A(\theta_1,\theta_2,\cdots,\theta_s)=(A\theta_1,A\theta_2,\cdots,A\theta_s)=\begin{pmatrix} \displaystyle\sum_{i=1}^n\beta_1b_{i1} & \displaystyle\sum_{i=1}^n\beta_2b_{i2} & \cdots & \displaystyle\sum_{i=1}^n\beta_ib_{is} \end{pmatrix}
AB=A(θ1,θ2,⋯,θs)=(Aθ1,Aθ2,⋯,Aθs)=(i=1∑nβ1bi1i=1∑nβ2bi2⋯i=1∑nβibis)
其中,按列划分,
B
=
(
θ
1
,
θ
2
,
⋯
,
θ
s
)
B=(\theta_1,\theta_2,\cdots,\theta_s)
B=(θ1,θ2,⋯,θs),
A
B
AB
AB可以看成:
A
B
AB
AB的第
j
j
j列向量是
A
A
A列向量组
(
β
1
,
β
2
,
⋯
,
β
n
)
(\beta_1,\beta_2,\cdots,\beta_n)
(β1,β2,⋯,βn)的线性组合,系数为
B
B
B的第
j
j
j列
θ
j
\theta_j
θj。
因此,矩阵乘法可以理解为:
- A B AB AB是 B B B行向量组的线性组合;
- A B AB AB也是 A A A列向量组的线性组合。
四、线性组合在三维计算中的应用
在三维计算中,我们常看到坐标左乘矩阵,或者坐标右乘矩阵:
1. 坐标左乘矩阵
由矩阵乘法与向量节,
A
B
AB
AB的第
i
i
i行向量是
B
B
B行向量组的线性组合,系数为
A
A
A的第
i
i
i行
α
i
\alpha_i
αi。这时,
R
n
R^n
Rn上的坐标可以表示为行向量
v
=
(
c
1
,
c
2
,
⋯
,
c
n
)
v=(c_1,c_2,\cdots,c_n)
v=(c1,c2,⋯,cn),矩阵看成是一组行向量
A
=
(
α
1
,
α
2
,
⋯
,
α
n
)
T
A=(\alpha_1,\alpha_2,\cdots,\alpha_n)^T
A=(α1,α2,⋯,αn)T,坐标左乘为
v
A
=
v
⋅
A
=
(
c
1
,
c
2
,
⋯
,
c
n
)
⋅
(
α
1
,
α
2
,
⋯
,
α
n
)
=
∑
i
=
1
n
c
i
α
i
vA=v\cdot A = (c_1,c_2,\cdots,c_n)\cdot (\alpha_1,\alpha_2,\cdots,\alpha_n) = \sum_{i=1}^nc_i\alpha_i
vA=v⋅A=(c1,c2,⋯,cn)⋅(α1,α2,⋯,αn)=i=1∑nciαi
2. 坐标右乘矩阵
由矩阵乘法与向量节,
A
B
AB
AB的第
j
j
j列向量是
A
A
A列向量组的线性组合,系数为
B
B
B的第
j
j
j列
θ
i
\theta_i
θi。这时,
R
n
R^n
Rn上的坐标可以表示为列向量
v
T
=
(
c
1
,
c
2
,
⋯
,
c
n
)
v^T=(c_1,c_2,\cdots,c_n)
vT=(c1,c2,⋯,cn),矩阵看成是一组列向量
A
=
(
β
1
,
β
2
,
⋯
,
β
n
)
A=(\beta_1,\beta_2,\cdots,\beta_n )
A=(β1,β2,⋯,βn),坐标右乘为
A
v
T
=
A
⋅
v
=
(
β
1
,
β
2
,
⋯
,
β
n
)
⋅
(
c
1
,
c
2
,
⋯
,
c
n
)
=
∑
i
=
1
n
c
i
β
i
Av^T=A\cdot v = (\beta_1,\beta_2,\cdots,\beta_n)\cdot(c_1,c_2,\cdots,c_n) = \sum_{i=1}^nc_i\beta_i
AvT=A⋅v=(β1,β2,⋯,βn)⋅(c1,c2,⋯,cn)=i=1∑nciβi
3. 使用线性组合的方式来表示点与矩阵乘法
这里,在空间坐标系下,只讨论方阵。
由以上坐标左乘矩阵与坐标右乘矩阵讨论可以看出,我们在三维计算中使用的坐标与方阵乘法,无论左乘还是右乘,都是点坐标分量与向量组的线性组合关系,左乘和右乘只是约定了向量的书写方式(行或列)。
从而,方阵可以看成是有序向量组
A
=
(
α
1
,
α
2
,
⋯
,
α
n
)
A=(\alpha_1,\alpha_2,\cdots,\alpha_n)
A=(α1,α2,⋯,αn),其中
α
i
\alpha_i
αi可以为行或列向量,我们可以定义方阵与点坐标的乘法为
v
⋅
A
=
A
⋅
v
=
(
c
1
,
c
2
,
⋯
,
c
n
)
⋅
(
α
1
,
α
2
,
⋯
,
α
n
)
=
(
α
1
,
α
2
,
⋯
,
α
n
)
⋅
(
c
1
,
c
2
,
⋯
,
c
n
)
=
∑
i
=
1
n
c
i
α
i
v\cdot A = A\cdot v = (c_1,c_2,\cdots,c_n)\cdot (\alpha_1,\alpha_2,\cdots,\alpha_n)= (\alpha_1,\alpha_2,\cdots,\alpha_n)\cdot (c_1,c_2,\cdots,c_n) = \sum_{i=1}^nc_i\alpha_i
v⋅A=A⋅v=(c1,c2,⋯,cn)⋅(α1,α2,⋯,αn)=(α1,α2,⋯,αn)⋅(c1,c2,⋯,cn)=i=1∑nciαi
这样,点与方阵不论左乘还是右乘,形式都是一样的。
其中,上述运算满足与方阵乘法的结合律:
(
v
⋅
A
)
B
=
(
∑
i
=
1
n
c
i
α
i
)
B
=
∑
i
=
1
n
c
i
α
i
B
=
∑
i
=
1
n
c
i
(
A
B
)
i
=
v
⋅
(
A
B
)
(v\cdot A)B=(\sum_{i=1}^nc_i\alpha_i)B=\sum_{i=1}^nc_i\alpha_iB=\sum_{i=1}^nc_i(AB)_i=v\cdot (AB)
(v⋅A)B=(i=1∑nciαi)B=i=1∑nciαiB=i=1∑nci(AB)i=v⋅(AB)
不过,由于方阵间乘法与矩阵的行列模式相关,一般的
A
B
≠
B
A
AB\neq BA
AB=BA,所以需要注意方阵行列模式选择的一致性。
(
A
⋅
v
)
B
=
(
∑
i
=
1
n
c
i
β
i
)
B
≠
∑
i
=
1
n
c
i
β
i
B
(A \cdot v)B=(\sum_{i=1}^nc_i\beta_i)B\neq \sum_{i=1}^nc_i\beta_iB
(A⋅v)B=(i=1∑nciβi)B=i=1∑nciβiB
其中
(
β
i
)
n
×
1
B
n
×
n
(\beta_i)_{n\times 1}B_{n\times n}
(βi)n×1Bn×n无法相乘,列模式下应为:
B
(
A
⋅
v
)
=
B
(
(
β
1
,
β
2
,
⋯
,
β
n
)
⋅
(
c
1
,
c
2
,
⋯
,
c
n
)
)
=
B
(
∑
i
=
1
n
c
i
β
i
)
=
∑
i
=
1
n
c
i
(
B
β
i
)
=
∑
i
=
1
n
c
i
(
B
A
)
i
B(A \cdot v)=B((\beta_1,\beta_2,\cdots,\beta_n)\cdot (c_1,c_2,\cdots,c_n))=B(\sum_{i=1}^nc_i\beta_i)=\sum_{i=1}^nc_i(B\beta_i)=\sum_{i=1}^nc_i(BA)_i
B(A⋅v)=B((β1,β2,⋯,βn)⋅(c1,c2,⋯,cn))=B(i=1∑nciβi)=i=1∑nci(Bβi)=i=1∑nci(BA)i
所以,需要注意左乘与右乘的选择,它关系到方阵的运算结果。
4. 几何解析
- 一组基就是一个空间坐标系,每一个基向量就是一个坐标轴向量;
- 点坐标就是在该坐标系下各坐标分量;
假设有两个空间坐标系(两组基) M 1 , M 2 M_1, M_2 M1,M2,点 v v v在各自坐标系下的坐标为 v 1 , v 2 v_1,v_2 v1,v2,有
行向量模式
v 1 M 1 = v 2 M 2 v_1M_1 = v_2M_2 v1M1=v2M2
v 1 = v 2 M 2 M 1 − 1 v_1 = v_2M_2M_1^{-1} v1=v2M2M1−1
v 1 M 1 M 2 − 1 = v 2 v_1M_1M_2^{-1} = v_2 v1M1M2−1=v2
其中:
- M 2 M 1 − 1 M_2M_1^{-1} M2M1−1是点 v v v在空间坐标系2点坐标 v 2 v_2 v2到空间坐标系1点坐标 v 1 v_1 v1的过渡矩阵。
- M 1 M 2 − 1 M_1M_2^{-1} M1M2−1是点 v v v在空间坐标系1点坐标 v 1 v_1 v1到空间坐标系2点坐标 v 2 v_2 v2的过渡矩阵。
列向量模式
M 1 v 1 = M 2 v 2 M_1 v_1 = M_2 v_2 M1v1=M2v2
v 1 = M 1 − 1 M 2 v 2 v_1 = M_1^{-1}M_2 v_2 v1=M1−1M2v2
M 2 − 1 M 1 v 1 = v 2 M_2^{-1}M_1 v_1 = v_2 M2−1M1v1=v2
其中:
- M 1 − 1 M 2 M_1^{-1}M_2 M1−1M2是点 v v v在空间坐标系2点坐标 v 2 v_2 v2到空间坐标系1点坐标 v 1 v_1 v1的过渡矩阵。
- M 2 − 1 M 1 M_2^{-1}M_1 M2−1M1是点 v v v在空间坐标系1点坐标 v 1 v_1 v1到空间坐标系2点坐标 v 2 v_2 v2的过渡矩阵。
行列模式之间为转置关系
( v r M r ) T = M c v c (v_rM_r)^T=M_cv_c (vrMr)T=Mcvc
其中:
v
c
=
(
v
r
)
T
,
M
c
=
(
M
r
)
T
=
(
α
1
,
α
2
,
⋯
,
α
n
)
T
=
(
α
1
T
,
α
2
T
,
⋯
,
α
n
T
)
v_c=(v_r)^T,M_c=(M_r)^T=(\alpha_1,\alpha_2,\cdots,\alpha_n)^T=(\alpha_1^T,\alpha_2^T,\cdots,\alpha_n^T)
vc=(vr)T,Mc=(Mr)T=(α1,α2,⋯,αn)T=(α1T,α2T,⋯,αnT)
五、结语
点坐标与矩阵的乘法从线性组合的角度看,就是:
- 矩阵是一组基;
- 点坐标是点在这组基上的组合系数;
在三维空间中,可以进一步理解为:
- 一组基就是一个局部空间坐标系,每一个基就是坐标轴向量;
- 点坐标就是各坐标轴的分量;
- 坐标与矩阵相乘是坐标轴向量的线性组合。
使用向量(基,坐标轴向量)来认识矩阵,把握了空间的本质,坐标是各分量在基上的度量,它反映了相对于基向量的线性相关度。