图形学知识基础:矩阵

概念

由 m\times n 个数排成的m行n列的数表称为m行n列的矩阵,简称 m\times n 矩阵。记作:

\mathbf{A}=\begin{bmatrix} a_{11} & a_{12} & ... &a_{1n} \\ a_{21} & a_{22} & ... &a_{2n} \\ ... & ... & ... &... \\ a_{m1} & a_{m2} & ... &a_{mn} \end{bmatrix}

这  m\times n 个数称为矩阵\mathbf{A}的元素,简称为元,数 a_{ij} 位于矩阵\mathbf{A}的第i行第j列,称为矩阵\mathbf{A}的 (i, j) 元。

元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵

若多个矩阵的行数和列数相同,我们称它们为同型矩阵

行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。若多个方阵的行数(行数=列数)相同,我们称它们为同阶矩阵

 

基本运算

矩阵的加减法和矩阵的数乘合称矩阵的线性运算

加法

只有同型矩阵之间才可以进行加法运算,将两个矩阵相同位置的元相加即可,m行n列的两个矩阵相加后得到一个新的m行n列矩阵,例如:

\begin{bmatrix} a_{11} & a_{12} & ... &a_{1n} \\ a_{21} & a_{22} & ... &a_{2n} \\ ... & ... & ... &... \\ a_{m1} & a_{m2} & ... &a_{mn} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} & ... &b_{1n} \\ b_{21} & b_{22} & ... &b_{2n} \\ ... & ... & ... &... \\ b_{m1} & b_{m2} & ... &b_{mn} \end{bmatrix} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & ... &a_{1n} + b_{1n} \\ a_{21} + b_{21} & a_{22} + b_{22} & ... &a_{2n} + b_{2n} \\ ... & ... & ... &... \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & ... &a_{mn} + b_{mn} \end{bmatrix}

\begin{bmatrix} 1 & 3 & 5 & 7 \\ 2 & 4 & 6 & 8 \end{bmatrix} + \begin{bmatrix} 4 & 3 & 1 & 4 \\ 5 & 3 & 1 & 6 \end{bmatrix} = \begin{bmatrix} 5 & 6 & 6 & 11 \\ 7 & 7 & 7 & 14 \end{bmatrix}

运算律

\mathbf{A} + \mathbf{B} = \mathbf{B} + \mathbf{A}

\left ( \mathbf{A} + \mathbf{B}\right ) + \mathbf{C} = \mathbf{A} + \left ( \mathbf{B} + \mathbf{C} \right )

 

减法

与加法类似,如下:

\begin{bmatrix} a_{11} & a_{12} & ... &a_{1n} \\ a_{21} & a_{22} & ... &a_{2n} \\ ... & ... & ... &... \\ a_{m1} & a_{m2} & ... &a_{mn} \end{bmatrix} - \begin{bmatrix} b_{11} & b_{12} & ... &b_{1n} \\ b_{21} & b_{22} & ... &b_{2n} \\ ... & ... & ... &... \\ b_{m1} & b_{m2} & ... &b_{mn} \end{bmatrix} = \begin{bmatrix} a_{11} - b_{11} & a_{12} - b_{12} & ... &a_{1n} - b_{1n} \\ a_{21} - b_{21} & a_{22} - b_{22} & ... &a_{2n} - b_{2n} \\ ... & ... & ... &... \\ a_{m1} - b_{m1} & a_{m2} - b_{m2} & ... &a_{mn} - b_{mn} \end{bmatrix}

\begin{bmatrix} 1 & 3 & 5 & 7 \\ 2 & 4 & 6 & 8 \end{bmatrix} - \begin{bmatrix} 4 & 3 & 1 & 4 \\ 5 & 3 & 1 & 6 \end{bmatrix} = \begin{bmatrix} -3 & 0 & 4 & 3 \\ -3 & 1 & 5 & 2 \end{bmatrix}

 

数乘

数乘即将矩阵乘以一个常量,矩阵中的每个元都与这个常量相乘,例如:

k * \begin{bmatrix} a_{11} & a_{12} & ... &a_{1n} \\ a_{21} & a_{22} & ... &a_{2n} \\ ... & ... & ... &... \\ a_{m1} & a_{m2} & ... &a_{mn} \end{bmatrix} = \begin{bmatrix} k * a_{11} & k * a_{12} & ... &k * a_{1n} \\k * a_{21} & k * a_{22} & ... &k * a_{2n} \\ ... & ... & ... &... \\ k * a_{m1} & k * a_{m2} & ... &k * a_{mn} \end{bmatrix}

5*\begin{bmatrix} 4 & 3 & -1 & 4 \\ 5 & -3 & 1 & 6 \end{bmatrix} = \begin{bmatrix} 20 & 15 & -5 & 20 \\ 25 & -15 & 5 & 30 \end{bmatrix}

运算律

k(v\mathbf{A}) = v(k\mathbf{A})

k(v\mathbf{A}) = (vk)\mathbf{A}

(k+v)\mathbf{A} = v\mathbf{A} + k\mathbf{A}

k(\mathbf{A} + \mathbf{B}) = k\mathbf{A} + k\mathbf{B}

 

转置

把矩阵A的行和列互相交换所产生的矩阵称为A的转置矩阵(\mathbf{A}^{T}),这一过程称为矩阵的转置。

 

\begin{bmatrix} a_{11} & a_{12} & ... &a_{1n} \\ a_{21} & a_{22} & ... &a_{2n} \\ ... & ... & ... &... \\ a_{m1} & a_{m2} & ... &a_{mn} \end{bmatrix}^{T} = \begin{bmatrix} a_{11} & a_{21} & ... &a_{m1} \\ a_{12} & a_{22} & ... &a_{m2} \\ ... & ... & ... &... \\ a_{1n} & a_{2n} & ... &a_{mn} \end{bmatrix}

\begin{bmatrix} 1 & 3 & 5 & 7 \\ 2 & 4 & 6 & 8 \end{bmatrix}^{T} = \begin{bmatrix} 1 & 2 \\ 3 & 4\\ 5 & 6\\ 7 & 8 \end{bmatrix}

运算律

(\mathbf{A}^{T})^{T}=\mathbf{A}

(k\mathbf{A})^{T}=k\mathbf{A}^{T}

(\mathbf{A}\mathbf{B})^{T}=\mathbf{B}^{T}\mathbf{A}^{T}

 

共轭

对于一个复数矩阵 \mathbf{A},我们对其做实部不变,虚部取负的操作即为共轭操作,记作 \bar{\mathbf{A}}。例如

\mathbf{A}=\begin{bmatrix} 3+i & 5\\ 2-2i & i \end{bmatrix}   则   \bar{\mathbf{A}}=\begin{bmatrix} 3-i & 5\\ 2+2i & -i \end{bmatrix}

 

乘法

两个矩阵的乘法仅当第一个矩阵的列数和另一个矩阵的行数相等时才能定义,m×n矩阵\mathbf{A} 和 n×p矩阵\mathbf{B} 相乘,会得到一个 m×p矩阵\mathbf{C},记为 \mathbf{C} = \mathbf{A}\mathbf{B}

\mathbf{C}中第 i 行 j 列的元即为:c_{ij} = a_{i1}b_{1j}+a_{i2}b_{2j}+\cdot \cdot \cdot +a_{in}b_{nj}=\sum_{r=1}^{n}a_{ir}b_{rj} ,即 \mathbf{C} 中第i行第j列的元素的值为,\mathbf{A}中第i行所有元素 与 \mathbf{B}中第j列的所有元素 从1到n下标相同的相乘,然后将相乘后的n个值相加

例如:

 

\small \begin{bmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{bmatrix} * \begin{bmatrix} 7 & 9 \\ 8 & 0 \\ -1 & 1 \end{bmatrix} = \begin{bmatrix} 1*7+3*8+5*-1 & 1*9+3*0+5*1 \\ 2*7+4*8+6*-1 & 2*9+4*0+6*1 \end{bmatrix} = \begin{bmatrix} 26 & 14 \\ 40 & 24 \end{bmatrix}

运算律

(\mathbf{A}\mathbf{B})\mathbf{C} = \mathbf{A}(\mathbf{B}\mathbf{C})

(\mathbf{A}+\mathbf{B})\mathbf{C} = \mathbf{A}\mathbf{C}+\mathbf{B}\mathbf{C}

\mathbf{C}(\mathbf{A}+\mathbf{B}) = \mathbf{C}\mathbf{A} + \mathbf{C}\mathbf{B}

不满足交换律,即\mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A}

 

矩阵与向量相乘

向量用矩阵表示的话,是属于一个n*1的矩阵,例如二维向量为 \begin{bmatrix} x\\ y \end{bmatrix} ,三维向量为 \begin{bmatrix} x\\ y\\ z \end{bmatrix} 。因此一个 m * 2的矩阵可以乘以一个二维向量,m * 3的矩阵可以乘以一个三维向量。

这点对于向量的变换运算非常的重要,例如我们想要将向量 (x, y) 做一个y轴的对称操作,即变为 (-x, y) ,只需要用下面的矩阵乘以这个向量即可:

\begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix} * \begin{bmatrix} x \\ y \end{bmatrix} =\begin{bmatrix} -x \\ y \end{bmatrix}

 

矩阵表示向量的点积

\vec{a} \cdot \vec{b} = \vec{a}^{T} \vec{b} = \begin{bmatrix} x_{a} & y_{a} & z_{a} \end{bmatrix} * \begin{bmatrix} x_{b} \\ y_{b} \\ z_{b} \end{bmatrix}= \begin{bmatrix} x_{a}x_{b}+y_{a}y_{b}+z_{a}z_{b} \end{bmatrix}

 

矩阵表示向量的叉积

\vec{a} \times \vec{b} = \begin{bmatrix} 0 & -z_{a} & y_{a}\\z_{a} & 0 & -x_{a}\\-y_{a} & x_{a} &0 \end{bmatrix} * \begin{bmatrix} x_{b} \\ y_{b} \\ z_{b} \end{bmatrix}= \begin{bmatrix} 0*x_{b}-z_{a}y_{b}+y_{a}z_{b}\\z_{a}x_{b}+0*y_{b}-x_{a}z_{b}\\-y_{a}x_{b}+x_{a}y_{b}+0*z_{b} \end{bmatrix}

这一点在旋转的推导上非常有用。

 

常用的特殊的矩阵

单位矩阵

单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1,除此以外全都为0,即当 i = j 时 a_{ij} = 1 , i \neq j 时 a_{ij} = 0 。

记为 I_{n} 或者 E_{n} ,通常用 \mathbf{I} 或者 \mathbf{E} 表示,例如

I_{2} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}     I_{3} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}

重要性质:矩阵 \mathbf{A} 乘以单位矩阵 \mathbf{I},或者单位矩阵 \mathbf{I} 乘以矩阵 \mathbf{A} 的结果都为 \mathbf{A}。记作:\mathbf{A}\mathbf{I} = \mathbf{A} 或 \mathbf{I}\mathbf{A} = \mathbf{A}

 

逆矩阵

\mathbf{A}是一个n阶矩阵,若存在另一个n阶矩阵\mathbf{B},使得: \mathbf{A}\mathbf{B} = \mathbf{B}\mathbf{A} = \mathbf{I} \mathbf{I}为单位矩阵),则称方阵\mathbf{A}可逆,并称方阵\mathbf{B}\mathbf{A}的逆矩阵。

若矩阵 \mathbf{A} 可逆,则其的逆矩阵是唯一的,记为 \mathbf{A}^{-1} ,则 \mathbf{A}\mathbf{A}^{-1} = \mathbf{I} 或 \mathbf{A}^{-1}\mathbf{A} = \mathbf{I}

一些性质:

若 \mathbf{A} 可逆,则 (\mathbf{A}^{-1})^{-1} = \mathbf{A}

若 \mathbf{A} 可逆,则其转置矩阵\mathbf{A}^{T}也可逆,且 (\mathbf{A}^{T})^{-1} = (\mathbf{A}^{-1})^{T}

若 \mathbf{A}\mathbf{B} 都可逆,则(\mathbf{A}\mathbf{B})^{-1} = \mathbf{B}^{-1}\mathbf{A}^{-1}

 

对角矩阵

当一个方阵上所有非对角线上的元素均为0时(即 i \neq j 时 a_{ij} = 0 ),该矩阵即为对角矩阵。例如:

\begin{bmatrix} 1 & 0 & 0 \\ 0 & 5 & 0 \\ 0 & 0 & 2 \end{bmatrix}

它可用于缩放变换,假如我们要将xy分别缩放m倍和n倍,那么就可以用下面矩阵来表达:

\begin{bmatrix} m & 0\\ 0 & n \end{bmatrix} * \begin{bmatrix} x\\ y \end{bmatrix} =\begin{bmatrix} m* x\\ n * y \end{bmatrix}

该对角矩阵也可称为缩放矩阵

 

正交矩阵

如果有个n阶实矩阵\mathbf{A},它满足 \mathbf{A} \mathbf{A}^{T} = \mathbf{I}\mathbf{I}为单位矩阵,\mathbf{A}^{T}表示\mathbf{A}的转置矩阵)或 \mathbf{A}^{T} \mathbf{A} = \mathbf{I},则称 \mathbf{A} 为正交矩阵,正交矩阵常用字母 \mathbf{Q} 来表示。

我们可以发现这和逆矩阵的定义(\mathbf{A}\mathbf{A}^{-1} = \mathbf{I})很像,因此正交矩阵的转置等于其逆矩阵,即 \mathbf{A}^{T} = \mathbf{A}^{-1}

除此之外,\mathbf{A} 或 \mathbf{A}^{T} 的各行都是单位向量且两两正交,且各列也都是单位向量且两两正交

推导:

假设 \mathbf{A} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} 为正交矩阵,那么 \mathbf{A}^{T} = \begin{bmatrix} a & c \\ b & d \end{bmatrix} ,可得 \mathbf{A} \mathbf{A}^{T} = \begin{bmatrix} aa+bb & ac+bd \\ ca+db & cc+dd \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}

可得 ac+bd=0,aa+bb=cc+dd=1。

若按照\mathbf{A}的行来取向量,我们可得到向量 \vec{i}=(a,b) 和 \vec{j}=(c,d) ,做点积得 \vec{i}\cdot \vec{j}=ac+bd,前面已得到ac+bd=0,所以\vec{i}\cdot \vec{j}=0 ,根据正交的定义可得,这两个向量正交。然后再来取模,可得 \left | \vec{i} \right |=\sqrt{aa+bb},前面得到aa+bb=1,因此 \vec{i} 的模长为1,为单位向量,\vec{j} 同理为单位向量。

上面我们验证了 \mathbf{A} 中各行都是单位向量且两两正交,要验证每列也是这样的情况只需要使用 \mathbf{A}^{T} \mathbf{A} = \mathbf{I} 来推导即可。同样的在三维空间也可以用此方法来推导,用 3*3的矩阵相乘即可。

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值