zoukankan      html  css  js  c++  java
  • 从线性组合的角度理解三维运算

    从线性组合的角度理解三维运算

    一、矩阵的向量化

    利用分块矩阵概念,矩阵(A=(a_{ij})_{m imes n})可以按行划分为一组行向量

    [A=egin{pmatrix} alpha_1 \ alpha_2 \ vdots \ alpha_m \ end{pmatrix} ]

    其中

    [alpha_i=(a_{i1},a_{i2},cdots,a_{in}),iin[1,2,cdots,m] ]

    或,按列划分为一组列向量(A=(eta_1,eta_2,cdots,eta_n)),其中

    [eta_j=egin{pmatrix}a_{1j}\a_{2j}\vdots\a_{mj}end{pmatrix},jin[1,2,cdots,n] ]

    因此,矩阵(A)可以看成是有序向量组((alpha_1,alpha_2,cdots,alpha_m)^T)((eta_1,eta_2,cdots,eta_n))

    二、向量的线性组合

    假设数域(F)上的线性空间(V_m)上的一组基为((alpha_1,alpha_2,cdots,alpha_m)),则(V)上任一向量(alpha)可以表示为这组基的线性组合:

    [alpha=k_1alpha_1+k_2alpha_2+cdots+k_malpha_m ]

    三、矩阵乘法的向量式

    同样利用分块矩阵概念,矩阵(A=(a_{ij})_{m imes n},B=(b_{ij})_{n imes s})的乘法可以表示为:

    [AB=egin{pmatrix} alpha_1 \ alpha_2 \ vdots \ alpha_m \ end{pmatrix}B=egin{pmatrix} alpha_1B \ alpha_2B \ vdots \ alpha_mB \ end{pmatrix}=egin{pmatrix} displaystylesum_{j=1}^na_{1j}gamma_j \ displaystylesum_{j=1}^na_{2j}gamma_j \ vdots \ displaystylesum_{j=1}^na_{mj}gamma_j \ end{pmatrix} ]

    其中,按行划分,(B=(gamma_1,gamma_2,cdots,gamma_n)^T)(AB)可以看成:(AB)的第(i)行向量是(B)行向量组的线性组合,系数为(A)的第(i)(alpha_i)

    [AB=A( heta_1, heta_2,cdots, heta_s)=(A heta_1,A heta_2,cdots,A heta_s)=egin{pmatrix} displaystylesum_{i=1}^neta_1b_{i1} & displaystylesum_{i=1}^neta_2b_{i2} & cdots & displaystylesum_{i=1}^neta_ib_{is} end{pmatrix} ]

    其中,按列划分,(B=( heta_1, heta_2,cdots, heta_s))(AB)可以看成:(AB)的第(j)列向量是(A)列向量组((eta_1,eta_2,cdots,eta_n))的线性组合,系数为(B)的第(j)( heta_j)

    因此,矩阵乘法可以理解为:

    • (AB)(B)行向量组的线性组合;
    • (AB)也是(A)列向量组的线性组合。

    四、线性组合在三维计算中的应用

    在三维计算中,我们常看到坐标左乘矩阵,或者坐标右乘矩阵

    1. 坐标左乘矩阵

    矩阵乘法与向量节,(AB)的第(i)行向量是(B)行向量组的线性组合,系数为(A)的第(i)(alpha_i)。这时,(R^n)上的坐标可以表示为行向量(v=(c_1,c_2,cdots,c_n)),矩阵看成是一组行向量(A=(alpha_1,alpha_2,cdots,alpha_n)^T),坐标左乘为

    [vA=vcdot A = (c_1,c_2,cdots,c_n)cdot (alpha_1,alpha_2,cdots,alpha_n) = sum_{i=1}^nc_ialpha_i ]

    2. 坐标右乘矩阵

    矩阵乘法与向量节,(AB)的第(j)列向量是(A)列向量组的线性组合,系数为(B)的第(j)( heta_i)。这时,(R^n)上的坐标可以表示为列向量(v^T=(c_1,c_2,cdots,c_n)),矩阵看成是一组列向量(A=(eta_1,eta_2,cdots,eta_n )),坐标右乘为

    [Av^T=Acdot v = (eta_1,eta_2,cdots,eta_n)cdot(c_1,c_2,cdots,c_n) = sum_{i=1}^nc_ieta_i ]

    3. 使用线性组合的方式来表示点与矩阵乘法

    这里,在空间坐标系下,只讨论方阵。

    由以上坐标左乘矩阵坐标右乘矩阵讨论可以看出,我们在三维计算中使用的坐标与方阵乘法,无论左乘还是右乘,都是点坐标分量与向量组的线性组合关系,左乘和右乘只是约定了向量的书写方式(行或列)。

    从而,方阵可以看成是有序向量组(A=(alpha_1,alpha_2,cdots,alpha_n)),其中(alpha_i)可以为行或列向量,我们可以定义方阵与点坐标的乘法为

    [vcdot A = Acdot 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_ialpha_i ]

    这样,点与方阵不论左乘还是右乘,形式都是一样的。

    其中,上述运算满足与方阵乘法的结合律:

    [(vcdot A)B=(sum_{i=1}^nc_ialpha_i)B=sum_{i=1}^nc_ialpha_iB=sum_{i=1}^nc_i(AB)_i=vcdot (AB) ]

    不过,由于方阵间乘法与矩阵的行列模式相关,一般的(AB eq BA),所以需要注意方阵行列模式选择的一致性。

    [(A cdot v)B=(sum_{i=1}^nc_ieta_i)B eq sum_{i=1}^nc_ieta_iB ]

    其中((eta_i)_{n imes 1}B_{n imes n})无法相乘,列模式下应为:

    [B(A cdot v)=B((eta_1,eta_2,cdots,eta_n)cdot (c_1,c_2,cdots,c_n))=B(sum_{i=1}^nc_ieta_i)=sum_{i=1}^nc_i(Beta_i)=sum_{i=1}^nc_i(BA)_i ]

    所以,需要注意左乘与右乘的选择,它关系到方阵的运算结果。

    4. 几何解析

    1. 一组基就是一个空间坐标系,每一个基向量就是一个坐标轴向量;
    2. 点坐标就是在该坐标系下各坐标分量;

    假设有两个空间坐标系(两组基)(M_1, M_2),点(v)在各自坐标系下的坐标为(v_1,v_2),有

    行向量模式

    [v_1M_1 = v_2M_2 ]

    [v_1 = v_2M_2M_1^{-1} ]

    [v_1M_1M_2^{-1} = v_2 ]

    其中:

    • (M_2M_1^{-1})是点(v)在空间坐标系2点坐标(v_2)到空间坐标系1点坐标(v_1)的过渡矩阵。
    • (M_1M_2^{-1})是点(v)在空间坐标系1点坐标(v_1)到空间坐标系2点坐标(v_2)的过渡矩阵。
    列向量模式

    [M_1 v_1 = M_2 v_2 ]

    [v_1 = M_1^{-1}M_2 v_2 ]

    [M_2^{-1}M_1 v_1 = v_2 ]

    其中:

    • (M_1^{-1}M_2)是点(v)在空间坐标系2点坐标(v_2)到空间坐标系1点坐标(v_1)的过渡矩阵。
    • (M_2^{-1}M_1)是点(v)在空间坐标系1点坐标(v_1)到空间坐标系2点坐标(v_2)的过渡矩阵。
    行列模式之间为转置关系

    [(v_rM_r)^T=M_cv_c ]

    其中:

    [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) ]

    五、结语

    点坐标与矩阵的乘法从线性组合的角度看,就是:

    1. 矩阵是一组基;
    2. 点坐标是点在这组基上的组合系数;

    在三维空间中,可以进一步理解为:

    1. 一组基就是一个局部空间坐标系,每一个基就是坐标轴向量;
    2. 点坐标就是各坐标轴的分量;
    3. 坐标与矩阵相乘是坐标轴向量的线性组合。

    使用向量(基,坐标轴向量)来认识矩阵,把握了空间的本质,坐标是各分量在基上的度量,它反映了相对于基向量的线性相关度

  • 相关阅读:
    qt install (1)
    learning rewind func
    learning strrchr func
    learning memchr func
    git lfs setpu(4)
    大端与小端
    git branch/meger step(3)
    git log/show/HEAD step(2)
    调用外部EXE文件
    获取计算机上的所有进程
  • 原文地址:https://www.cnblogs.com/yaoyu126/p/12901225.html
Copyright © 2011-2022 走看看