3d数学 7 矩阵

Posted yaoyu126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3d数学 7 矩阵相关的知识,希望对你有一定的参考价值。

7.1 矩阵-数学定义

在线性代数中, 矩阵就是以形式组织的矩形数字块。矩阵是向量的数组。

7.1.1 矩阵的维度和记法

矩阵的维度被定义为它包含了多少行和多少列。一个(r imes c)矩阵有r行, c列。下面是一个(4 imes 3)矩阵的例子:
(egin{bmatrix} 4 & 0 & 12 \ -5 & 4 & 3 \ 12 & -4/3 & -1 \ 1/2 & 18 & 0 \ end{bmatrix})

黑色大写字母表示矩阵,如:MAR。需要引用矩阵的分量时,采用下标法,常用对应的斜体小写字母。如下(3 imes 3)矩阵所示:
(egin{bmatrix} m_{11} & m_{12} & m_{13} \ m_{21} & m_{22} & m_{23} \ m_{31} & m_{32} & m_{33} \ end{bmatrix})

7.1.2 方阵

行数和列数相同的矩阵称为方阵
方阵的对角线元素就是方阵中行号和列号相同的元素。

对角矩阵

所有非对角线元素都是0,如:
(egin{bmatrix} 3 & 0 & 0 \ 0 & -5 & 0 \ 0 & 0 & 2 \ end{bmatrix})

单位矩阵

(n)维单位矩阵记作(I_n),是(n imes n)矩阵,对角线元素都为1,其他元素为0。如,(3 imes 3)单位矩阵:
(I_3 = egin{bmatrix} 1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 1 \ end{bmatrix})

7.1.3 向量做为矩阵使用

矩阵的行数和列数可以是任意正整数,当然也包括1。一个(n)维向量能被当作(1 imes n)矩阵或(n imes 1)矩阵。(1 imes n)矩阵称为行向量(n imes 1)矩阵称为列向量。如:
(egin{bmatrix}1 & 2 & 3end{bmatrix} egin{bmatrix} 1\ 2\ 3end{bmatrix})

7.1.4 转置

一个(r imes c)矩阵(M)(M)的转置记作(M^T),是一个(c imes r)矩阵((M_{ij}^T = M_{ji})),即沿着矩阵的对角线翻折。
(egin{bmatrix} 1 & 2 & 3 \ 4 & 5 & 6 \ 7 & 8 & 9 \ 10 & 11 & 12 \ end{bmatrix}^T = egin{bmatrix} 1 & 4 & 7 & 10\ 2 & 5 & 8 & 11\ 3 & 6 & 9 & 12 \ end{bmatrix})

行列向量之间的转换

(egin{bmatrix}x & y & zend{bmatrix}^T = egin{bmatrix} x\ y\ zend{bmatrix}) (egin{bmatrix}x & y & zend{bmatrix} = egin{bmatrix} x\ y\ zend{bmatrix}^T)

基本原理

  • 对任意矩阵(M), ((M^T)^T = M)
  • 对于任意对角矩阵(D), 都有(D^T = D),包括单位矩阵(I)也是如此。

7.1.5 标量和矩阵的乘法

矩阵(M)和标量(k)相乘,结果是一个和(M)维数相同的矩阵。记法如下:

(kM = k egin{bmatrix} m_{11} & m_{12} & m_{13} \ m_{21} & m_{22} & m_{23} \ m_{31} & m_{32} & m_{33} \ end{bmatrix} = egin{bmatrix} km_{11} & km_{12} & km_{13} \ km_{21} & km_{22} & km_{23} \ km_{31} & km_{32} & km_{33} \ end{bmatrix})

7.1.6 矩阵乘法

(C = AB)
(c_{ij} = displaystylesum_{k=1}^na_{ik}b_{kj})

如:
(AB = egin{bmatrix} a_{11} & a_{12} \ a_{21} & a_{22} \ end{bmatrix} egin{bmatrix} b_{11} & b_{12} \ b_{21} & b_{22} \ end{bmatrix} = egin{bmatrix} a_{11}b_{11} + a_{12}b_{21} & a_{11}b_{12} + a_{12}b_{22} \ a_{21}b_{11} + a_{22}b_{21} & a_{21}b_{12} + a_{22}b_{22} \ end{bmatrix})

乘法规则

  • (MI = IM = M)
  • 不满足交换律:(AB e BA)
  • 结合律:((AB)C = A(BC))
  • 与标量的结合律:((kA)B = k(AB) = A(kB))
  • 转置: ((AB)^T = B^TA^T)

7.2 矩阵 - 几何解释

一般来说,方阵能描述任意线性变换

(egin{bmatrix}1 \ -3 \ 4 \ end{bmatrix} = egin{bmatrix}1 \ 0 \ 0 \ end{bmatrix} + egin{bmatrix}0 \ -3 \ 0 \ end{bmatrix} + egin{bmatrix}0 \ 0 \ 4 \ end{bmatrix})

一般来说:任意向量(v)都能写为“扩展”形式:
(v=egin{bmatrix}x \ y \ z \ end{bmatrix} = egin{bmatrix}x \ 0 \ 0 \ end{bmatrix} + egin{bmatrix}0 \ y \ 0 \ end{bmatrix} + egin{bmatrix}0 \ 0 \ z \ end{bmatrix})

(v=egin{bmatrix}x \ y \ z \ end{bmatrix} = xegin{bmatrix}1 \ 0 \ 0 \ end{bmatrix} + yegin{bmatrix}0 \ 1 \ 0 \ end{bmatrix} + zegin{bmatrix}0 \ 0 \ 1 \ end{bmatrix})
注意,右边的单位向量就是(x,y,z)轴,用向量重写上面的等式,分别用(p, g, r)定义为指向(+x, +y, +z)方向的单位向量
(v = xp + yp + zr)

将向量表示为基向量的线性组和

用三个向量(p, q, r)来构建一个(3 imes 3)的矩阵(M),可以得到如下公式

(M=egin{bmatrix}p \ q \ r \ end{bmatrix} = egin{bmatrix}p_x & p_y & p_z \ q_x & q_y & q_z \ r_x & r_y & r_z \ end{bmatrix})

用一个向量乘以该矩阵,得到:
(egin{bmatrix}x & y & zend{bmatrix}egin{bmatrix}p_x & p_y & p_z \ q_x & q_y & q_z \ r_x & r_y & r_z \ end{bmatrix} = egin{bmatrix}xp_x + yq_x + zr_x & xp_y + yq_y + zr_y & xp_z + yq_z + zr_zend{bmatrix} = xp + yq + zr)

如果把矩阵的行解释为坐标系的基向量,那么乘以该向量就相当于执行了一次坐标转换。若有(aM = b),我们就可以说,(M)(a)转换到(b)

以上是关于3d数学 7 矩阵的主要内容,如果未能解决你的问题,请参考以下文章

3D数学基础

3D数学基础矩阵

Unity3D C#数学系列之矩阵基础

OpenGL 六 - 3D数学基础 - 向量矩阵及OpenGL中的变换

[3D数学]矩阵 2017.8.16

3D游戏开发需要的数学基础(1) - 向量 Vector