什么是矩阵? @

我们之前学过,向量是单个数字的扩展,可以表示一组相关的数。那矩阵又是什么呢?

其实矩阵是向量的扩展,它可以表示一组向量。简单来说,矩阵就是一个由数字排成的矩形表格。

举个生活中的例子:如果我们想记录三位同学的三次考试成绩,就可以用一个3×3的矩阵来表示:

| 第一次 | 第二次 | 第三次 |
|--------|--------|--------|
| 90     | 85     | 88     |  # 同学1的成绩
| 78     | 82     | 85     |  # 同学2的成绩
| 92     | 95     | 93     |  # 同学3的成绩

特别地,如果一个矩阵的行数和列数相等,我们就称它为"方阵"。比如上面的3×3矩阵就是一个方阵。

矩阵在现实生活中有很多用途,比如在经济系统中,可以用矩阵来表示IT、电子、矿产、房产等不同行业的投入产出关系,帮助分析整个经济系统的运行情况。

矩阵的转置 @

矩阵的转置是一个简单但重要的操作,就是把矩阵的行变成列,列变成行。

比如原矩阵是:$\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$

转置后就变成了:$\begin{pmatrix} 1 & 3 \\ 2 & 4 \end{pmatrix}$

矩阵转置的性质 @

$(A^T)^T = A$

$(A + B)^T = A^T + B^T$

$(k \cdot A)^T = k \cdot A^T$

$(A \cdot B)^T = B^T \cdot A^T$

矩阵的运算 @

矩阵的加法 @

矩阵的加法很简单,就是把两个形状相同的矩阵对应位置的元素相加,比如:$\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix}$

矩阵的数量乘法 @

数量乘法也不难理解,就是用一个数字(标量)去乘矩阵的每一个元素,比如:$2 \times \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 2 & 4 \\ 6 & 8 \end{pmatrix}$

矩阵的基本运算性质 @

矩阵的运算有一些基本性质,和我们熟悉的数字运算有些相似:

$(ck)A = c(kA)$

$k \cdot (A + B) = k \cdot A + k \cdot B$

$(c + k) \cdot A = c \cdot A + k \cdot A$

矩阵和向量的乘法 @

矩阵和向量相乘时,有个重要的规则:矩阵的列数必须和向量的元素个数一致。

矩阵与向量相乘的结果是一个新的向量,可以理解为矩阵把一个向量"转换"成了另一个向量。所以,矩阵有时也被看作是向量的一种"函数"。

$\begin{pmatrix} 1 & -0.2 & 0.1 & 0.5 \\ -0.5 & -1 & 0.2 & 0.1 \\ 0 & -0.4 & -1 & 0.3 \\ -0.2 & 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} x_{it} \\ x_{e} \\ x_{m} \\ x_{h} \end{pmatrix} = \begin{pmatrix} 100 \\ 50 \\ 20 \\ 666 \end{pmatrix}$

$A \cdot \vec{x} = \vec{b}$

$\begin{pmatrix} 1 & -0.2 & 0.1 & 0.5 \\ -0.5 & -1 & 0.2 & 0.1 \\ 0 & -0.4 & -1 & 0.3 \\ -0.2 & 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} x_{it} \\ x_{e} \\ x_{m} \\ x_{h} \end{pmatrix} = \begin{pmatrix} x_{it} - 0.2x_{e} + 0.1x_{m} + 0.5x_{h} \\ -0.5x_{it} - x_{e} + 0.2x_{m} + 0.1x_{h} \\ -0.4x_{e} - x_{m} + 0.3x_{h} \\ -0.2x_{it} + x_{h} \end{pmatrix}$

列向量与行向量相乘 @

设列向量 $\boldsymbol{a}=\begin{bmatrix}a_1\\\\a_2\\\\\vdots\\\\a_m\end{bmatrix}$,

行向量 $\boldsymbol{b} = [b_1,b_2,\cdots,b_n]$。

根据矩阵乘法规则,当列向量$\boldsymbol{a}$($m\times1$矩阵)与行向量$\boldsymbol{b}$($1\times n$矩阵)相乘时,要求前者的列数等于后者的行数,这里满足条件。

它们相乘的结果$\boldsymbol{a}\boldsymbol{b}=\begin{bmatrix}a_1b_1&a_1b_2&\cdots&a_1b_n\\\\a_2b_1&a_2b_2&\cdots&a_2b_n\\\\\vdots&\vdots&\ddots&\vdots\\\\a_mb_1&a_mb_2&\cdots&a_mb_n\end{bmatrix}$ ,是一个$m\times n$的矩阵。

而如果是行向量乘列向量,即$\boldsymbol{b}\boldsymbol{a} = [b_1,b_2,\cdots,b_n]\begin{bmatrix}a_1\\\\a_2\\\\\vdots\\\\a_m\end{bmatrix}$ ,当$m = n$时,结果是一个 $1\times1$ 的矩阵,也就是一个标量,值为$\sum_{i = 1}^{n}b_ia_i$ 。

行向量与列向量相乘 @

同样设$n$维列向量$\boldsymbol{\alpha}=\begin{bmatrix}a_1\\\\a_2\\\\\vdots\\\\a_n\end{bmatrix}$,$n$维行向量$\boldsymbol{\beta} = \begin{bmatrix}b_1&b_2&\cdots&b_n\end{bmatrix}$,此时运算要将行向量的各元素与列向量对应位置元素相乘,再把这些乘积相加,最终结果是一个标量(数值),即$\boldsymbol{\beta}\boldsymbol{\alpha} =a_1b_1 + a_2b_2 + \cdots + a_nb_n$ 。

矩阵和矩阵的乘法 @

矩阵和矩阵相乘是矩阵运算中比较复杂但也非常重要的运算。计算时,矩阵A的每一行与矩阵B的每一列进行点乘,得到结果矩阵中的对应元素。

进行矩阵乘法时,有个关键要求:矩阵A的列数必须和矩阵B的行数一致。

需要特别注意的是,矩阵的乘法不满足交换律,也就是说A×B通常不等于B×A。

$\begin{pmatrix} - & \vec{r_1} & - \\ - & \vec{r_2} & - \\ & \dots & \\ - & \vec{r_m} & - \end{pmatrix} \cdot \begin{pmatrix} | & | & & | \\ \vec{c_1} & \vec{c_2} & \dots & \vec{c_n} \\ | & | & & | \end{pmatrix} = \begin{pmatrix} \vec{r_1} \cdot \vec{c_1} & \vec{r_1} \cdot \vec{c_2} & \dots & \vec{r_1} \cdot \vec{c_n} \\ \vec{r_2} \cdot \vec{c_1} & \vec{r_2} \cdot \vec{c_2} & \dots & \vec{r_2} \cdot \vec{c_n} \\ & \dots & & \\ \vec{r_m} \cdot \vec{c_1} & \vec{r_m} \cdot \vec{c_2} & \dots & \vec{r_m} \cdot \vec{c_n} \end{pmatrix}$

矩阵A的列数必须和矩阵B的行数一致!

A是$m*k$的矩阵;B是$k*n$的矩阵,则结果矩阵为$m*n$的矩阵

$(A \cdot B) \cdot C = A \cdot (B \cdot C)$

$A \cdot (B + C) = A \cdot B + A \cdot C$

$(B + C) \cdot A = B \cdot A + C \cdot A$

对任意$r*c$的矩阵$A$,存在$c*x$的矩阵$O$,满足:$A \cdot O_{cx} = O_{rx}$

矩阵的幂 @

只有方阵(行数等于列数的矩阵)才能进行幂运算。矩阵的幂运算和数字的幂运算类似,表示同一个矩阵相乘多次。

比如,A²表示A×A,A³表示A×A×A,以此类推。

$$ \begin{align*} (A + B)^2&=(A + B)\cdot(A + B)\\ &=A\cdot(A + B)+B\cdot(A + B)\\ &=A\cdot A + A\cdot B + B\cdot A + B\cdot B\\ &=A^2 + A\cdot B + B\cdot A + B^2\quad\neq A^2 + 2AB + B^2 \end{align*} $$