学习目标:
- 理解矩阵和与它相关的运算;
- 理解矩阵的乘法如何被看成是线性组合;
- 理解单位矩阵、转置矩阵、矩阵的行列式和逆矩阵;
- 熟悉DirectX Math库中矩阵相关的类和函数;
1 矩阵的定义
一个m x n的矩阵M是一个有实数组成的m行n列的矩阵。
- 两个具有相同行数和列数的矩阵,每个对应的元素都相等的情况下,两个矩阵相等;
- 两个矩阵具有相同的行和列时,才能相加;
- 矩阵可以和任意标量相乘;
- 矩阵的减法可以由矩阵的加法和矩阵与标量的乘法来定义。
因为矩阵的加法和标量乘法是按元素的,所以它们的一些属性可以继承自实数:
2 矩阵的乘法
2.1 矩阵乘法的定义
如果一个m x n的矩阵A和一个n x p的矩阵B相乘,结果是一个m x p的矩阵C,其第ij个元素的值是A矩阵中第i列向量与B矩阵第j行向量的点积:
C i j = A i , ∗ ⋅ B ∗ , j C_{ij} = A_{i,*} \cdot B_{*,j} Cij=Ai,∗⋅B∗,j
所以矩阵相乘需要A的列数和B的行数相等,否则点积运算则无法进行。比如上面例子中BA无法进行,所以也验证了AB != BA,矩阵运算不支持交换律。
2.2 向量与矩阵的乘法
考虑下面矩阵的乘法:
所以
上面等式是一个线性组合的例子,可以继续扩展到1 x n乘以 n x n的情况:
2.3 结合律
矩阵的乘法具有一些不错的代数特性,比如乘法分配率:A(B + C) = AB + AC)和(A + B)C = AC + BC,
后续我们将会经常使用乘法结合律,来选择矩阵相乘的顺序:
( A B ) C = A ( B C ) (AB)C = A(BC) (AB)C=A(BC)
3 转置矩阵
转置矩阵是由交换矩阵的行和列得到的,所以m x n的转置矩阵是n x m,我们使用 M T M^T MT来表示矩阵M的转置矩阵。
转置矩阵由一些有用的特性:
4 单位矩阵
单位矩阵是一类特殊的矩阵,其对角线上的元素值为1,其它元素值为0;
单位矩阵有一个特性:MI = IM = M
5 矩阵的行列式
矩阵的行列式是一个特殊的方法,输入一个方形矩阵,输出一个实数;矩阵的行列式用 det A 来表示。
行列式拥有描述盒子容积和在进行转变后的容积变化的几何解释,并且行列式被用来使用克莱姆法则解决线性方程式系统;
我们学习行列式的目的是用来证明一个矩阵是否可逆,一个方形矩阵A当且仅当 det A != 0时可逆。
5.1 Matrix Minors(子矩阵?)
给出一个m x n的矩阵A,其子矩阵 A ˉ i j \bar A_{ij} Aˉi