矩阵是个神奇的东西,你可以用它来干这个,这个,还有这个。

数学上,一个 m×n 的矩阵是一个由 m 行 n 列元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式。

大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法。矩阵的乘法则较为复杂。两个矩阵可以相乘,当且仅当第一个矩阵的列数等于第二个矩阵的行数。矩阵的乘法满足结合律和分配律,但不满足交换律。

矩阵的基本运算

加减法

m×n 矩阵 A 和 B 的和(差):A±B 为一个 m×n 矩阵,其中每个元素是A和B相应元素的和(差),

(A±B)i,j=Ai,j±Bi,j(A ± B)_{i,j} = A_{i,j} ± B_{i,j}

其中 1 ≤ i ≤ m , 1 ≤ j ≤ n.

数乘

标量 c 与矩阵 A 的数乘:cA 的每个元素是 A 的相应元素与 c 的乘积,

(cA)i,j=cAi,j(cA)_{i,j} = c · A_{i,j}

转置

m×n 矩阵 A 的转置是一个 n×m 的矩阵,记为ATA^{T}(有些书中也记为AtrA^{tr}tA^{t}AAA'),其中的第i个行向量是原矩阵 A 的第 i 个列向量;或者说,转置矩阵 AT 第 i 行第 j 列的元素是原矩阵 A 第 j 行第 i 列的元素。

矩阵乘法

两个矩阵的乘法仅当第一个矩阵 A 的列数和另一个矩阵 B 的行数相等时才能定义。如 A 是 m×n 矩阵和B是 n×p 矩阵,它们的乘积 AB 是一个 m×p 矩阵,它的一个元素

[AB]i,j=Ai,1B1,j+Ai,2B2,j+...+Ai,nBn,j=r=1nAi,rBr,j[AB]_{i,j} = A_{i,1}B_{1,j} + A_{i,2}B_{2,j} + ... + A_{i,n}B_{n,j} = \sum^{n}_{r=1}A_{i,r}B_{r,j}

其中 1 ≤ i ≤ m, 1 ≤ j ≤ p。

矩阵的乘法满足结合律和对矩阵加法的分配律(左分配律和右分配律):

  • 结合律:(AB)C = A(BC),
  • 左分配律: (A + B)C = AC + BC,
  • 右分配律: C(A + B) = CA + CB.

矩阵的乘法与数乘运算之间也满足类似结合律的规律;与转置之间则满足倒置的分配律。

c(AB)=(cA)B=A(cB)c(AB) =(cA)B = A(cB)

(AB)T=BTAT(AB)^T = B^TA^T

矩阵乘法不满足交换律。一般来说,矩阵A及B的乘积AB存在,但BA不一定存在,即使存在,大多数时候 AB ≠ BA。

线性变换

这里的线性变换我们可以简单理解为:
给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置。操作有平移、缩放、翻转和旋转

平移

(10p01q001).(xy1)=(x+py+q1)\begin{pmatrix}1 & 0 & p\\ 0 & 1 & q\\ 0 & 0 & 1\end{pmatrix}.\begin{pmatrix}x \\ y \\ 1 \end{pmatrix}=\begin{pmatrix}x+p \\ y+q \\ 1 \end{pmatrix}

缩放

(L000L0001).(xy1)=(xLyL1)\begin{pmatrix}L & 0 & 0\\ 0 & L & 0\\ 0 & 0 & 1\end{pmatrix}.\begin{pmatrix}x \\ y \\ 1 \end{pmatrix}=\begin{pmatrix}x * L \\ y * L \\ 1 \end{pmatrix}

上下翻转

(100010001).(xy1)=(xy1)\begin{pmatrix}1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & 1\end{pmatrix}.\begin{pmatrix}x \\ y \\ 1 \end{pmatrix}=\begin{pmatrix}x \\ -y \\ 1 \end{pmatrix}

左右翻转

(100010001).(xy1)=(xy1)\begin{pmatrix}-1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\end{pmatrix}.\begin{pmatrix}x \\ y \\ 1 \end{pmatrix}=\begin{pmatrix}-x \\ y \\ 1 \end{pmatrix}

绕原点旋转

(cosαsinα0sinαcosα0001).(xy1)=(xcosαysinαxsinα+ycosα1)\begin{pmatrix}cos\alpha & -sin\alpha & 0\\ sin\alpha & cos\alpha & 0\\ 0 & 0 & 1\end{pmatrix}.\begin{pmatrix}x \\ y \\ 1 \end{pmatrix}=\begin{pmatrix}x*cos\alpha - y*sin\alpha \\ x*sin\alpha + y*cos\alpha \\ 1 \end{pmatrix}

常用矩阵

单位矩阵

单位矩阵是主对角线都为1,其余都为0的一个方阵。
性质: 任何矩阵与单位矩阵相乘都等于它本身。

E=(100010001)E=\begin{pmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\end{pmatrix}

逆矩阵

逆矩阵是与AA相乘得到单位矩阵EE的一个矩阵。记作A1A^{-1}
性质:AA1=EA·A^{-1}=E
求法:

  • 伴随矩阵法

如果矩阵AA可逆,则A1=AAA^{-1}=\frac{A^{ * }}{|A|}其中是的伴随矩阵。
注意:AA^{ * }中元素的排列特点是AA^{ * }的第kk列元素是AA的第kk行元素的代数余子式。要求得AA^{ * }即为求解AA的余因子矩阵的转置矩阵。

  • 初等变换法

初等变换求逆矩阵就是将原矩阵后再续写上一个同阶单位矩阵。然后将原矩阵化为单位矩阵,这个过程的同时就将单位矩阵化为了逆矩阵。

(101100111010211001)(100211010312001111)\begin{pmatrix}1 & 0 & 1 & 1 & 0 & 0 \\ -1 & 1 & 1 & 0 & 1 & 0 \\2 & -1 & 1 & 0 & 0 & 1\end{pmatrix}\rightarrow \begin{pmatrix}1 & 0 & 0 & 2 & -1 & -1 \\ 0 & 1 & 0 & 3 & -1 & -2 \\0 & 0 & 1 & -1 & 1 & 1\end{pmatrix}

  • Excel法
  1. 输入的矩阵值,例如在(A1:B2)
  2. 在工作表中【选取】(反白)另一块大小(例C1:D2)也是的空白格;
  3. 找到指令【公式】→【数学与三角函数】→【MINVERSE】(意为Matrix Inverse);
  4. 在【MINVERSE】→【函数引数】→【Array(=阵列)】中点一下鼠标,然后选取一开始已输入值的矩阵(A1:B2);
  5. 同时按下Ctrl+Shift+Enter,使已选取的空白格成为使用同一公式之矩阵;
  6. 便会得到逆矩阵A1A^{-1}.

参考文献