矩阵(Matrix)
向量是标量的数组,而矩阵是向量的数组。
单位矩阵(Identity Matrix)
维度为n的单位矩阵,表示为In,是n×n矩阵,其对角线上的值为1,其他元素均为0。三维的单位矩阵如下:
I3=100010001
矩阵转置(Transpose)
给定r×c矩阵M,其转置表示为MT,是c×r矩阵,其中,列由M的行构成。
例如:
147258369T=123456789
一些结论:
- (MT)T=M
- (AB)T=BTAT
矩阵乘法
矩阵与标量相乘

两个矩阵相乘
两个可以相乘的矩阵AB,必须保证A中的列数和B中的行数相同,否则结果将是未定义的:

设C=AB,则C中的每一个元素cij等于A的行i与B的列j的向量点积:

矩阵行列式(Determinant)
方形矩阵M的行列式表示为∣M∣,也可以表示为det M。
2x2和3x3行列式
例如,一个2x2行列式如下:
∣M∣=m11m21m12m22=m11m22−m12m21
一个3x3行列式如下:
∣M∣=m11m21m31m12m22m32m13m23m33=m11(m22m33−m23m32)+ m12(m23m31−m21m33)+ m13(m21m32−m22m31)
如果将3x3行列式看成3个行向量,那么该行列式就是3个行向量的三重积/混合积:
axbxcxaybycyazbzcz=cx(aybz−azby)+cy(azbx−axbz)+cz(axby−aybx)=(a×b)⋅c
子矩阵行列式(Minor)和余子式(Cofactor)
假设M是具有r行和c列的矩阵,删除它的i行和j列,得到一个r-1行和c-1列的新矩阵。如果子矩阵是行列式,可记为M{ij},被称为M的子矩阵行列式。例如:
M=−401−3243−2−1⟹M{12}=01−2−1=2
而余子式则是在子矩阵行列式的基础上带上了符号:
C{ij}=(−1)i+jM{ij}
n x n行列式
已知2x2和3x3行列式是怎么计算的,那么就能根据余子式递归地求解nxn行列式。首先,从矩阵中任选一行/列。然后,对于行/列中的每个元素,将此元素乘以相应的余子式,然后求和即可得出矩阵的行列式。
例如,任意选择行i,行列式可以这样计算:
∣M∣=j=1∑nmijC{ij}=j=1∑nmij(−1)i+jM{ij}
以3x3矩阵为例:
m11m21m31m12m22m32m13m23m33=m11m22m32m23m33−m12m21m31m23m33+m13m21m31m22m32
一些特性
- 任何维度的单位矩阵的行列式为1
- ∣AB∣=∣A∣∣B∣
- ∣MT∣=∣M∣
- 如果矩阵某行/列都是0,则该矩阵行列式为0
- 交换任意行/列,会让行列式变负
- 将b行/列全部元素的k倍添加到a行/列,行列式值不会改变
逆矩阵(Inverse)
逆矩阵符合下式:
M(M−1)=M−1M=I
注意,并非所有矩阵都有逆矩阵。
如果某矩阵具有逆矩阵,那么它是 可逆的(Invertible) 或 非奇异的(Nonsingular);相反,没有逆矩阵的矩阵是不可逆或奇异的。
奇异矩阵的行列式为0。
伴随矩阵求逆
对于较大规模的矩阵求逆,可以通过高斯消元等方法实现;而对于2x2~4x4较小的矩阵,利用伴随矩阵求逆是比较简便的方法。其他方法详见:求逆矩阵的一些方法 - 知乎 (zhihu.com)
矩阵M的经典伴随矩阵,表示为adj M,被定义为M的余子式的矩阵的转置。
例如有个3x3矩阵,它的伴随矩阵如下:
adjM=C{11}C{21}C{31}C{12}C{22}C{32}C{13}C{23}C{33}T
可以通过伴随矩阵和行列式求得逆矩阵:
M−1=∣M∣adj M
一些特性
- (M−1)−1=M
- I−1=I
- (M−1)T=(MT)−1
- (AB)−1=B−1A−1
- ∣M−1∣=1/∣M∣
正交矩阵(Orthogonal Matrix)
当且仅当矩阵及其转置的乘积是单位矩阵时,方形矩阵M是正交的:
M 是正交矩阵⟺MMT=I
根据逆矩阵的定义,发现如下性质:
M 是正交矩阵⟺MT=M−1
该性质常用于快速求正交矩阵的逆。
如何判断
要使矩阵正交,必须满足以下条件:
可以对矩阵的列进行类似描述,因为如果矩阵正交,转置矩阵也正交。
正交化(Orthogonalize)
我们希望通过此操作得到一个矩阵,该矩阵具有相互垂直的单位矢量轴,并且尽可能地接近原矩阵。
(待补充,无偏差的递增正交化算法)
参考资料